MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 625

 
Igor Makanu:

このようなコードで実験し、EAログのメッセージを読む(TFを切り替える、変数を入力する、EAを閉じずにターミナルをリロードする...)。

という変数と、グローバルスコープに静的修飾子を 持つ変数を記述する方法があります。

まず、これはmql4です。

次に、Expert Advisorの変数が変更されたときにOnInit()を実行する必要があります。

以上、よろしくお願いします

はい、ターミナルを再起動してテキストを変更すると解決しますが、変数を変更するとOnInit()が動作しなくなり、そのためにすべての問題が発生します!!!!

 
Игорь:

まず、mql4です。 次に、EAの変数を変更するためにOnInit()を実行する必要があります。

次に、Expert Advisorの変数が変更されたときにOnInit()を実行させる必要があります。

以上、よろしくお願いします

ターミナルを再起動し、テキストを変更すると解決しますが、変数を変更するとOnInit()が動作しなくなり、そのためにすべての問題が発生します!!!!!!!!!!!!!!!!!!!!!!!?

私は次のように解決しています。OnInit()は、EAの1回目の実行時に変数をコピーします。MT4のCalc...()などでは、変数とそのコピーが同一かどうかをチェックします。もし変数が一致しない場合は、強制的にOnInit()を実行し、必要であればその前に別のものを実行してEAを更新することになります。そして最後に、リターン。

 
Игорь:

まず、mql4です。 次に、EAの変数を変更するためにOnInit()を実行する必要があります。

次に、Expert Advisorの変数が変更されたときにOnInit()を実行させる必要があります。

以上、よろしくお願いします

たしかにターミナルを再起動したり、セーフティを変更したりすると解決しますが、変数を変更するとOnInit()が動作しなくなり、そのせいで問題ばかり発生します!!!!

私が提供したコードをご覧になりましたか? それはMT4で、すべてがあなたが尋ねたように動作します。

ドキュメントを読むhttps://docs.mql4.com/ru/runtime/event_fire

私は提案したコードを実行し、外部変数varを2回変更し、ここにExpert Advisorのログがあります。

0       15:36:39.736    Compiling 'test'
0       15:37:37.573    Expert test EURUSD,H1: loaded successfully
0       15:37:39.101    test EURUSD,H1 inputs: var1=1; 
0       15:37:39.130    test EURUSD,H1: Вызов OnInit(), var1=1
0       15:37:39.130    test EURUSD,H1: initialized
0       15:37:51.341    test EURUSD,H1: uninit reason 5
0       15:37:51.343    test EURUSD,H1: Вызов OnInit(), var1=34567
0       15:37:51.343    test EURUSD,H1: initialized
0       15:37:51.366    test EURUSD,H1 inputs: var1=34567; 
0       15:38:04.124    test EURUSD,H1: uninit reason 5
0       15:38:04.126    test EURUSD,H1: Вызов OnInit(), var1=-9999
0       15:38:04.126    test EURUSD,H1: initialized
0       15:38:04.149    test EURUSD,H1 inputs: var1=-9999; 

以下は「バグがある」ところのコードです。

MQLプログラムのどこからでも任意の関数を呼び出すことができます。 Expert Advisorを初期化する機能は関数であり、OnInit() を強制的に呼び出すことができますが、通常は必要ありません。

События клиентского терминала - Программы MQL4 - Справочник MQL4
События клиентского терминала - Программы MQL4 - Справочник MQL4
  • docs.mql4.com
Сразу же после того, как клиентский терминал загрузит программу (эксперт или пользовательский индикатор) и запустит процесс инициализации глобальных переменных, будет послано событие Init, которое обрабатывается функцией OnInit(), если она есть. Это событие также генерируется после смены финансового инструмента и/или периода графика, после...
 
Igor Makanu:

には、コードに多くの誤りが あります。

価格を正規化した方が良い、そうすれば動作する、そうすればサーバーは "間違った価格 "のエラーを出す、StopLoss_SELLを 正規化するのが望ましいです。

で、ほとんどの場合、StopLossが0に等しいかどうかをチェックする必要があり、実数を比較して等しくなることは望ましくなく、実数を比較して>または<になるようにする必要があります。

エラーが多い場合は、すべてご指摘いただけますか?

 
Igor Makanu:

私が提供したコードをご覧になりましたか? それはMT4で、すべてがあなたの言うとおりに動きます。

その後、ドキュメントを読むhttps://docs.mql4.com/ru/runtime/event_fire

私は提案したコードを実行し、外部変数varを2回変更し、ここにExpert Advisorのログがあります。

以下は「バグがある」ところのコードです。

MQLプログラムのどこからでも関数を呼び出すことができ、Expert Advisorを初期化する関数も関数です。 OnInit()を強制的に呼び出すこともできますが、通常は必要ありません - ターミナルが勝手にOnInit()を呼び出すのです。

私が見つけたエラーのあなたのコードのおかげでたくさんありがとうございます!!!!!!!GOOD LUCK !!!!そして、ありがとうございました !!!!!!!!

 
アドバイスをお願いします。標準のMAインジケータを履歴全体ではなく、指定したローソク足の数だけ表示させるにはどうしたらいいですか?お聞きしたいことがあります。
 
prom18:
アドバイスをお願いします。標準のMAインジケータを履歴全体ではなく、指定したローソク足の数だけ表示させるにはどうしたらいいですか?ありがとうございます。
ヒストリーの深さを設定して、自分だけのMAインディケータを書こう
 

EAをテスト するために手動でクォートを設定するにはどうすればよいですか?

解決策があるはずなのですが、見つけられませんでした

 
Galim_V:

ポーズ後のF12はどうしたんですか?

具体的に値動きを設定するという意味です

 
Andrey Sokolov:

EAをテスト するために手動でクォートを設定するにはどうすればよいですか?

解決策があるはずなのですが、見つかりませんでした。

自分でティックを書いて、ストラテジーテスターに 入れる。