初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 519

 
Vasyl Nosal:

なぜ、そのようなことをするのか、お聞かせください。

int total=OrdersTotal();

注文が多い場合、ループの繰り返しごとに関数が呼ば れることになり、経済的でないことを付け加えておく。
 
Sergey Gritsay:
ループの実行中にOrdersTotal();の値が変化して、注文を見落としたり、ループ本体が不具合を起こしたりする可能性があるからです

アレクセイ・コジツィン
付け加えると、注文が多い場合、ループの繰り返しごとに、関数が呼ば れることになり、経済的ではありません。

お二人とも冗談なのか本気なのか?

 
Vasyl Nosal:

アレクセイ・コジツィン
付け加えると、注文が多い場合、ループの繰り返しごとに関数が呼ば れることになり、経済的ではありません。

お二人とも冗談なのか本気なのか?

他の視点はないのか?
 

Alexey Kozitsyn:
У Вас другая точка зрения?

for(int i=OrdersTotal()-1; i>=0; i--)

int i=OrdersTotal()-1

このアクションは、最初の反復処理の前に一度だけ実行されます。これ以上、何かを追加する意味はない。コードが大きくなるだけです。

 
Vasyl Nosal:

可能ですが、このデザインでは不具合が発生する可能性があります。

for(int i=0; i<total; i++)
 
Sergey Gritsay:

このデザインでは可能だが、このデザインでは不具合が発生する可能性がある

:)))))))

どんな根拠で?

А.

だから、必ず端からやり直す。

 
Vasyl Nosal:

この場合は、そうですね。そして、この場合

for(int i=0; i<OrdersTotal(); i++)
{

}

が違います。先ほどは、どういう意味か明記されていませんでしたね。

 
Vasyl Nosal:

:)))))))

どんな根拠で?

А.

だから、必ず端からやり直す。

この方法は必ずしも適切ではありません。例えば、一番早い順番からやり直したい場合。
 
kashi_ann:
そう、だから論理の問題なんだ。それよりも気になったのは、動作の順番とは別に、サーバー上のデータの更新時間も考慮しなければならないことです。

止まり木はもちろん使っています。

全部書き直さなきゃいけないのかな、意味ないよね。

やっと意味がわかった)))))))))))))))))))))))))))))))))))))))))))

いつものように、とんでもなくシンプルに))

価格が下がり、買値の指値注文が高くなっただけです)))保留注文 の適用を誤っただけです。)ただ、その条件下では置けなかったのです)

ストップオーダー」の設定を追加して、ほら、すべて思い通りになりました))))

 
Alexey Kozitsyn:
この方法は必ずしも適切ではありません。例えば、一番早いオーダーからオーバーシュートする必要がある場合。
また、どのような場合に必要とされるのでしょうか?
理由: