Любые вопросы новичков по 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:
Если посмотришь на время, то увидишь что ничего не дублируется, печатает только на новом баре при наличии сигнала
Потому что у тебя Print() только в OnTick(). Размести его в каждое условие в isCrossing()
 
MakarFX:

Никакой

Ну не совсем так. Один цикл от начала списка, второй - от конца.

 
MakarFX:

Никакой

обе функции "перебирают" из истории закрытые ордера ?

 
Artyom Trishkin:

Ну не совсем так. Один цикл от начала списка, второй - от конца.

Ты прав, я не обратил внимания на порядок цикла, посмотрел только на определение 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))

Эта перебирает с нулевого индекса, т.е. с начала.

Причина обращения: