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

 
SanAlex:

また、カメラを開くと閉じられなくなる、という実験もしました--プロセスを殺すまで。

https://www.gunsmoker.ru/2015/01/avoid-using-ShellExecuteEx.html

Почему вам не следует использовать ShellExecute(Ex)
  • 2015.01.05
  • GunSmoker
  • www.gunsmoker.ru
В прошлый раз мы узнали, почему вам никогда не следует использовать функцию . В этот раз я расскажу вам о том, почему вам не следует использовать функцию . Заголовки этого и предыдущего постов выбраны крайне тщательно. Предыдущий пост говорил о том, что если вы пишете код в 1995 году или позднее, то вы не должны использовать функцию . Поскольку...
 

何が問題なのか、教えていただけませんか?

     if(buy_lots>0||sell_lots>0)
      ChartSetSymbolPeriod(0,Symbol(),PERIOD_M15);
     if(buy_lots==0||sell_lots==0)
      ChartSetSymbolPeriod(0,Symbol(),PERIOD_M5);

未決済の注文がない場合は、M5が有効になり、すべてがうまくいきます。

しかし、注文が開くとすぐにM5,M15,M5,M15...とジャンプし始める。

 
MakarFX:

何が問題なのか、教えていただけませんか?

未決済の注文がない場合は、M5が有効になり、すべてがうまくいきます。

しかし、注文を出すとすぐにM5、M15、M5、M15でバウンドし始める...。

書いてある通り、そういうことなんです。

または、下の方をANDで置き換える

 
Valeriy Yastremskiy:

書いてある通り、そういうことなんです。

または、下をEに置き換える

ありがとうございます、やってみましたが結果は同じです

     if(buy_lots>0||sell_lots>0)
      ChartSetSymbolPeriod(0,Symbol(),PERIOD_M15);
     if(buy_lots+sell_lots==0)
      ChartSetSymbolPeriod(0,Symbol(),PERIOD_M5);
 
MakarFX:

ありがとうございます。交換しましたが、結果は同じです。

  
      Alert("1 buy_lots ",buy_lots," sell_lots " sell_lots);
    if(buy_lots>0||sell_lots>0)
      ChartSetSymbolPeriod(0,Symbol(),PERIOD_M15);
     Alert("2 buy_lots ",buy_lots," sell_lots " sell_lots);
     if(buy_lots==0 && sell_lots==0)
      ChartSetSymbolPeriod(0,Symbol(),PERIOD_M5);

だから、何かが足りないのです。つまり、buy_lots+sell_lotsの 合計=0と なります。

そして、加算よりも優れている。AlertかPrintのどちらかで対応します。

 
Valeriy Yastremskiy:

だから、何かが足りないのです。つまり、buy_lots+sell_lotsの 和は0に なる。

そして、加算よりも優れて いる。AlertかPrintのどちらかで対応します。

どう良くなったのでしょうか?

(0 == 0 かつ 1 == 0) - 条件を満たしていない。

(0 + 1 == 0) - 条件も満たされていません。

この例では、ANDと加算はどう違うのでしょうか?

 
MakarFX:

ありがとうございます、交換しましたが結果は同じです

そのため、buy_lotsとsell_lotsの 値をチェックしても、おそらくどこかで値が消えてしまうでしょう。
 
Alexey Viktorov:
そのため、buy_lotsとsell_lotsの 値を確認してください。おそらく、どこかで値が失われているのでしょう。

プリント


M5に切り替わる理由は不明です。

 
MakarFX:

プリント


M5で切り替わる理由は不明です。

TFが切り替わるとEAが再起動します。プリントを条件に入れて、スイッチとプリントを試してみて ください。あるいはその逆もしかり。

そして、その条件にピリオドチェックをぜひ加えるべきでしょう。M15に乗り換えた場合、なぜまた乗り換えるのか?

 
Igor Makanu:

だから、EAの仕事はマジシャンと二人だけでやるようにしたほうがいい。

1日1回、ある時刻に注文を出すというタスクの場合、アルゴリズムは次のようになる。

- EAを起動すると、オープンオーダーの数をチェックし、もし私たちのマジシャンの注文がオープンであれば、次のティックまで終了します。

- 注文がない場合、EAは現在の時間と分が指定されたものより大きくなるまで待ちます。

- この時間が来て、EAは注文履歴を チェックし、過去24時間のために私たちの魔術師と注文が置かれていない場合、それは注文を入れて終了します - 終了は、サーバーのエラーを処理しないために便利です、注文が置かれていない場合は、次のティックで我々は再びそれをやろうとする、すなわち、このティックで複数の注文オープンのサイクルを整理する必要はありません...。が、これは好みや目的の問題で、最も簡単な実装です)))

EAとはどういう意味なのか、教えてください。もっと詳しく探したい、読みたい......。
以下のサイトで探して、もっと詳しく知りたいです:ありがとうございました。