PROFIからSUPER PROFIへの質問-1. - ページ 20 1...131415161718192021222324252627...45 新しいコメント Alexey Subbotin 2011.04.16 16:53 #191 与えられた。 EAのinit()関数では、MQL PSPジェネレータが初期化されます:MathSrand(...)です。ターミナルが起動すると、テンプレートから Expert Advisor のコピーが複数(わかりやすいように 3 つとします)読み込まれます。読み込みが速いので、TimeLocal() とTimeCurrent()関数が すべてのコピーで同じ値を返す可能性が非常に高い(ほとんどそうである)。 質問です。 EAのコピーごとに異なる数値をPRNGに初期化させるには、どのような仕掛けがあるのでしょうか?つまり、ランダム性の要素をどこで(最小限のプログラミングで)得るか? --- 2011.04.16 17:16 #192 alsu:与えられた。EAのinit()関数では、MQL PSPジェネレータが初期化されます:MathSrand(...)です。ターミナルが起動すると、テンプレートから Expert Advisor のコピーが複数(わかりやすいように 3 つとします)読み込まれます。読み込みが速いので、TimeLocal()とTimeCurrent()関数がすべてのコピーで同じ値を返す可能性が非常に高い(ほとんどそうである)。質問です。EAのコピーごとに異なる数値をPRNGに初期化させるには、どのような仕掛けがあるのでしょうか?つまり、ランダム性の要素をどこで(最小限のプログラミングで)得るか?GetTickCount? Alexey Subbotin 2011.04.16 17:41 #193 sergeev: GetTickCount ? が効くかもしれませんが、確実ではありません...。 プログラムにとっては1ミリ秒が永遠になることもある)。 --- 2011.04.16 17:43 #194 alsu: が効くかもしれませんが、確実ではありません...。 オプション 2 -グローバル変数を使って「セマフォ」を作成し、EA を順番に初期化する。 Alexey Subbotin 2011.04.16 18:22 #195 sergeev: オプション 2 - グローバル変数を使って「セマフォ」を作成し、エキスパートを順番に初期化する。 その方が近いですね、ありがとうございます。 --- 2011.05.15 15:47 #196 mqlでdllから行をフェッチすることについての質問です。 libmysql.dll の関数mysql_fetch_row はMYSQL_ROW 型を返します。 この型は次のように定義される: typedef char** MYSQL_ROW この返された文字列の配列にアクセスするにはどうすればよいのでしょうか? Vadim Zhunko 2011.05.15 16:23 #197 配列の寸法は 既知ですか? --- 2011.05.15 16:24 #198 Zhunko: 配列の寸法は既知ですか? はい、行数はわかっています。 が、各行の長さはそうではない。 そのリンクの 例にはもう一つ、*lengthsポインタを取得することがあります。 それも配列であることが判明し...。でも、どうやって行くのか...。 unsigned long *lengths;lengths = mysql_fetch_lengths(result); for(i = 0; i < num_fields; i++) { printf("[%.*s] ", (int)lengths[i], 行[i]?row[i] : "NULL"); }.MQLでmysql_fetch_rowの 結果を文字列に渡すと、以下のようになります。 p0ƒu0ƒ;1;a どこ p0ƒu0ƒ は文字列のアドレス(8バイト)です。 1;aは使用可能なデータです。 が、intにすると、p0ƒの代わりに、42152040のアドレスになります。 Vadim Zhunko 2011.05.15 17:12 #199 declspec (dllexport) char* WINAPI Func(const char* szBufString, const int nSizeBuf) { MYSQL_ROW aszString; memcpy_s(szBufString, nSizeBuf + 1, aszString[номер ячейки], strlen(aszString[номер ячейки])); return(szBufString); } プログラム実行中に文字列へのポインタが変化しない場合は、バッファにコピーすることなく文字列へのポインタを返すことができます。 declspec (dllexport) char* WINAPI Func() { MYSQL_ROW aszString; return(aszString[номер ячейки]); } --- 2011.05.15 17:15 #200 では、MQLではどうしようもないのですか? MQL5でもだめなのですか? Zhunko: プログラム実行中に文字列へのポインタが変化しない場合は、バッファにコピーすることなく文字列へのポインタを返すことができます。 単純に return aszString[номер ячейки] 1...131415161718192021222324252627...45 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
与えられた。
EAのinit()関数では、MQL PSPジェネレータが初期化されます:MathSrand(...)です。ターミナルが起動すると、テンプレートから Expert Advisor のコピーが複数(わかりやすいように 3 つとします)読み込まれます。読み込みが速いので、TimeLocal() とTimeCurrent()関数が すべてのコピーで同じ値を返す可能性が非常に高い(ほとんどそうである)。
質問です。
EAのコピーごとに異なる数値をPRNGに初期化させるには、どのような仕掛けがあるのでしょうか?つまり、ランダム性の要素をどこで(最小限のプログラミングで)得るか?
与えられた。
EAのinit()関数では、MQL PSPジェネレータが初期化されます:MathSrand(...)です。ターミナルが起動すると、テンプレートから Expert Advisor のコピーが複数(わかりやすいように 3 つとします)読み込まれます。読み込みが速いので、TimeLocal()とTimeCurrent()関数がすべてのコピーで同じ値を返す可能性が非常に高い(ほとんどそうである)。
質問です。
EAのコピーごとに異なる数値をPRNGに初期化させるには、どのような仕掛けがあるのでしょうか?つまり、ランダム性の要素をどこで(最小限のプログラミングで)得るか?
GetTickCount ?
が効くかもしれませんが、確実ではありません...。
プログラムにとっては1ミリ秒が永遠になることもある)。
が効くかもしれませんが、確実ではありません...。
オプション 2 - グローバル変数を使って「セマフォ」を作成し、エキスパートを順番に初期化する。
mqlでdllから行をフェッチすることについての質問です。
libmysql.dll の関数mysql_fetch_row はMYSQL_ROW 型を返します。
この型は次のように定義される: typedef char** MYSQL_ROW
この返された文字列の配列にアクセスするにはどうすればよいのでしょうか?
配列の寸法は既知ですか?
が、各行の長さはそうではない。
そのリンクの 例にはもう一つ、*lengthsポインタを取得することがあります。
, 行[i]?row[i] : "NULL"); }.それも配列であることが判明し...。でも、どうやって行くのか...。
MQLでmysql_fetch_rowの 結果を文字列に渡すと、以下のようになります。
p0ƒu0ƒ;1;a
どこ
p0ƒu0ƒ は文字列のアドレス(8バイト)です。
1;aは使用可能なデータです。
が、intにすると、p0ƒの代わりに、42152040のアドレスになります。
プログラム実行中に文字列へのポインタが変化しない場合は、バッファにコピーすることなく文字列へのポインタを返すことができます。
では、MQLではどうしようもないのですか? MQL5でもだめなのですか?
プログラム実行中に文字列へのポインタが変化しない場合は、バッファにコピーすることなく文字列へのポインタを返すことができます。
単純に