//--- input parameters
sinput int Param1=4; // хитрый параметр
sinput int Param2=30; // хитрый параметр
sinput bool Param3=false; // хитрый параметр
sinput long Counter=1; // а вот этот параметр мы и будем оптимизировать (синтетический счетчик)
//--- на основе Param1, Param2 и Param3 высчитаем хитрое количество проходов счетчика Counter
ParameterSetRange("Counter",true,0,0,1,1+long(Param3 ? (Param1*Param2):(Param1*2));
この条件から、3つのシチュエーションで性能を発揮することがわかります。
1)テスターが動作している場合
2)テスターが動作していない場合
3)ビジュアルテスターが動作した場合
のように、関数が常に動作するようにするには、2番目の条件を削除して、1番目と3番目の条件を && で接続する必要があります。
むしろ、こうです。
2または(1および2)。それが私には必要なのです。テスターではなく、ビジュアルテスターモードにすること。
申し訳ないのですが、端末を混同して間違ったコードをテストしてしまったようです。私の状態は正常に動作しているようです。
のように、関数が常に動作するようにするには、2番目の条件を削除して、1番目と3番目の条件を && で接続する必要がある場合がほとんどです。
この条件で十分ということですね。
if(MQL5InfoInteger(MQL5_TESTER)!=1 || MQL5InfoInteger(MQL5_VISUAL_MODE)==1)
そのような条件があれば十分ということですね。
if(MQL5InfoInteger(MQL5_TESTER)!=1 || MQL5InfoInteger(MQL5_VISUAL_MODE)==1)
最適化されるパラメータの範囲が他の最適化されるパラメータに依存する場合、どのように影響を与えることができますか? パラメータが適切でない場合、oninit で expertremove を呼び出しますか? 最適化を高速化する最善の方法は何でしょうか?
ParameterSetRange 関数とParameterGetRange 関数について見てみましょう。これらは、先に設定した非数値条件をもとに、列挙するパラメータを書き換えることができる。
例えば、こんな風に。
inputの代わりにsinput(静的入力)を使用し、GUIでこのパラメータ「から」「に」ブロック化された変化を与えることに注意してください。また、ParameterSetRange関数で変更ロックされているCounterパラメータも同様に、計算限界値を設定することでロックが解除されます。
この仕組みを利用して、非常に複雑な入力条件を作り、合成課金カウンターを回転させることができます。パラメータ設定機能は、OnTesterInitの中でしか動作しないことだけは忘れないでください。
現在の状況:
1.Expert Advisorを最適化 するために、コマンドラインでターミナルを起動させています。
2.ターミナルが起動し、最適化され、結果がxmlファイルに保存されます。
3.手動でターミナルを閉じる
4.iniファイルを編集する(テスト期間などを変更する)。
5.1のポイントに移ります。
質問:与えられたリストからiniファイルのパラメータを自動的に選択し、ターミナルを閉じるなど、このプロセスを自動化できた方はすでにいらっしゃいますか?どのような方法があるか、ご意見をお聞かせください。最良の選択肢は、上記のプロセスを自動化するソリューションをすぐに提供することでしょう。きっと、私より先に誰かが考えているのでしょう。
レナート、じゃあ、4つのためのストレージを作ってください、お願いします。Expert Advisorをノートパソコンにダウンロードしたのですが、すべての付属品を忘れてしまいました。今は、Expert Advisorのデバッグをする代わりに、単純な :) プログラマーとしてここに座り、関数を書いています。
私のフラッシュドライブは、私たちの信頼できるSTORAGEです :)
SZY、まあ、時々メールも。
フラッシュドライブは、私たちの信頼できるSTORAGEです :)
ZS、そして時にはメールも。
フラッシュドライブ......論外、よく壊れる。
外付けHDDで1日1回自動同期しています(約300ギガの仕事用ファイル)どこかに行くときは、バッグに放り込んでおけばOKです。
ssdドライブは事実上破壊不可能と言われています。しかし、非常に高価です。