void collectNecessaryDataOnTick()
{
//--- считать последние цены на тикеSymbolInfoTick(Symbol(),last_tick);
ArrayFree(buf_CCI);
if(CopyBuffer(handle_CCI,0,0,bars_4_tr_cur,buf_CCI) < 0 ) // копируем данные из индикаторного массива в статический массив buf_CCI для дальнейшей работы с ними
{ // если есть ошибкиComment("Не удалось скопировать данные из индикаторного буфера"); // то выводим сообщениеreturn; // и выходим из функции
}
bars_4_tr_cur = 10;
return;
}
ResetLastError();
if(CopyBuffer(handle_CCI,0,0,33,buf_CCI) < 0 ) // копируем данные из индикаторного массива в статический массив buf_CCI для дальнейшей работы с ними
{ // если есть ошибкиComment("Не удалось скопировать данные из индикаторного буфера"); // то выводим сообщение об ошибкеPrint(GetLastError());
return; // и выходим из функции
}
//--- активируем хендл индикатора CCI
handle_CCI = iCCI(Symbol(),0,14,PRICE_TYPICAL);
if(handle_CCI==INVALID_HANDLE) // проверяем наличие хендла индикатора
{
Comment("Не удалось получить хендл индикатора"); // если хендл не получен, то выводим сообщение об ошибкеreturn(-1); // завершаем работу с ошибкой
}
ArraySetAsSeries(buf_CCI,true); // устанавливаем индексацию для массива buf_CCI как в таймсерии
ポイントは、INIT_PARAMETERS_INCORRECTを使用して、非論理的/不要な値を除外して検索領域を絞り込むことが多いため、完全な列挙を使用した場合に最適 化が大幅に高速化される点です。もしINIT_PARAMETERS_INCORRECTがなかったら、遺伝子が不要な変種に遭遇していじくるだけなので、変数値を除外しないのは選択肢に入らない。そういうわけで、プロとして、この問題をあまり苦労せずに解決するにはどうしたらいいのか、ということです。正しい変数をすべて手動で列挙し、隙間なく列挙し、承知の上で INIT_PARAMETERS_INCORRECT 値を除外することは、オプションではありません - 非常に長いです。スマートカウンターの使用は万人向けではなく、また遺伝子を害する可能性もあります。
では、1日にすべてのパラメータを渡し、その正しい値をコードに書き込むことで、遺伝子の選別を行うにはどうすればよいのでしょうか?
上記の私の説明をお読みください。
あなたの描く世界観は、遺伝的アルゴリズムと相容れないものです。否定によって人口の4分の1を殺す - 遺伝は損なわれてもまだ生き残る。人口の98%を殺す-それは進化の終わりです。あなたの希望や好みの 操作方法にかかわらず。
上にリンクした資料を読んでみてください。
啓蒙はもういいや、ごめんね。INIT_PARAMETERS_INCORRECTスレッドの継続は終了し、すべてのコメントが削除されます。
今日のアップデート前は、すべてうまくいっていました。現在、エラーメッセージが 表示されています。
今日のアップデート前は、すべてうまくいっていました。今、エラーメッセージが 出ました。
GetLastError()はどのような値を返すのですか?
CopyBufferを呼び出す前の変数bars_4_tr_curの値は何ですか?
handle_CCIがカウントされる時系列は何本ですか?
GetLastError()はどのような値を返すのですか?
CopyBufferを呼び出す前の変数bars_4_tr_curの値は何ですか?
handle_CCI インジケータがカウントされるタイムシリーズのバー数は?
変数 = 33
М15
4003 -システム関数を呼び出すと、パラメーターが不正に なります。
変数 = 33
М15
4003 -システム関数を呼び出すと、パラメーターが不正に なります。
次の質問です。CCIインジケーターからデータを取っているという理解で合っていますか?
このインジケーターを作成した際のパラメータを教えてください。
次の質問です。CCIインジケーターからデータを取っているという理解で合っていますか?
このインジケーターを作成した際のパラメータを教えてください。
変数 = 33
М15
4003 -システム関数を呼び出すときに、パラメーターが無効 です。
ちょうど33?これは、エラー4003を返す33の直接値を使用した直接コールですか?
もう一度確認する
ちょうど33?エラー4003を返すのは、33の直接値を使用した所定の直接呼び出しでしょうか?
もう一度確認する
もう一度。アップデート前は、3つのブローカーのデモ口座でEAが問題なく動作していましたが、アップデート後は、3つのブローカーのデモ口座でEAが問題なく動作するようになりました。
インジケーターを以前のバージョンから入れ替えようとしたこともありました。今も叫んでいます。
もう、わかったから。
保存されたパラメータファイルの読み込みにエラーが発生しました。
そうでした。
変更後、動作するようになりました。
もう一度言います。アップデート前は、3つのブローカーのデモ口座でEAが問題なく動作していましたが、アップデート後は、3つのブローカーのデモ口座でEAが問題なく動作するようになりました。
インジケーターを以前のバージョンから入れ替えようとしたこともありました。悪態をついて、それでおしまい。
このEAを実行してください。
iCCIインジケータの データを受信するのは、あえて毎ティックではなく、0から33までのバーをループで受信するように設定しました。