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

 
Nerd Trader:
ログが追加されたので見た。こちらもメッセージの重複があります :)
時間を見ると、何も重複しておらず、シグナルがあるときだけ新しいバーにプリントされることがわかります。
 
законопослушный гражданин:

機能の違いについて教えてください。

for (int j = OrdersHistoryTotal()-1; j >= 0; j--)

{

if(OrderSelect(j, SELECT_BY_POS,MODE_HISTORY))

и

int i=OrdersHistoryTotal();

for(int pos=0; pos<i; pos++)

{

if(OrderSelect(pos, SELECT_BY_POS,MODE_HISTORY))

いいえ

 
MakarFX:
時間を見ると、何も重複しておらず、シグナルがあるときだけ新しいバーにプリントされることがわかります。
OnTick()の中だけでPrint() をしているからです。isCrossing()内の各条件に入れる。
 
MakarFX:

いいえ

まあ、正確には違うんですけどね。1サイクルはリストの先頭から、もう1サイクルは最後から。

 
MakarFX:

いいえ

どちらの機能も、クローズした注文を履歴から「取得」するのですか?

 
Artyom Trishkin:

まあ、正確には違うんですけどね。1サイクルはリストの先頭から、もう1サイクルは最後から。

確かに、ループの順番を気にせず、OrdersHistoryTotal()の定義だけを見ていたのですが
 
законопослушный гражданин:

どちらの機能も履歴からクローズした注文を「取得」するのですか?

しかし、一つは歴史の始まりから、もう一つは終わりからです。
 
MakarFX:
しかし、一方は物語の冒頭から、もう一方は終盤からです。

ありがとうございます。この機能、端から「スルー」でよかったのでしょうか?

int i=OrdersHistoryTotal();

for(int pos=0; pos<i; pos++)

{

if(OrderSelect(pos, SELECT_BY_POS, MODE_HISTORY))

 
законопослушный гражданин:

ありがとうございます。この機能、端から「スルー」でよかったのでしょうか?

int i=OrdersHistoryTotal();

for(int pos=0; pos<i; pos++)

{

if(OrderSelect(pos, SELECT_BY_POS, MODE_HISTORY))

 
законопослушный гражданин:

ありがとうございます。この機能、端から「スルー」でよかったのでしょうか?

int i=OrdersHistoryTotal();

for(int pos=0; pos<i; pos++)

{

if(OrderSelect(pos, SELECT_BY_POS, MODE_HISTORY))

これは、ゼロインデックスから、 つまり最初から検索するものです。