Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 503

 
Vitaly Muzichenko:

Работает отменно!

С двух позиций выбрал последнюю, а именно на 11 баре, что видно на скрине:


Проверочный код

решил изменить условие для входа в позицию, поставил просто сел лимит на Low[2] заработало, но когда условие как при моем первом обращении сегодня, не работает, значит дело в самом условии до вызова функции

 
Вадим Мотеюнас:

решил изменить условие для входа в позицию, поставил просто сел лимит на Low[2] заработало, но когда условие как при моем первом обращении сегодня, не работает, значит дело в самом условии до вызова функции

Это вы установили ордер, а не вход в позицию(Buy, Sell).

Ладно, разобрались - значит хорошо.

 
Vitaly Muzichenko:

Это вы установили ордер, а не вход в позицию(Buy, Sell).

Ладно, разобрались - значит хорошо.

я имел ввиду что сначало было условие  для входа if(Open[2]>Close[2] && Open[1]>Close[1] && Close[1]<Low[2]

потом вызов этой функции для возврата индекса бара, а теперь просто убрал это и в OrderSend поставил Low[2] и заработало

да всетаки не зря потратил день на это, немного сдвинулся с мертвой точки

 
все, забарол я эту проблему, всем спасибо кто давал обратную связь
 
if(takelimit=OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
      Print(takelimit,GetLastError());//здесь возвращает число 11, получается ошибка код 11, но не нашел расшифровку нигде?
      {if(iBarShift(Symbol(),0,OrderOpenTime())==1)
        
      deletelimit=OrderDelete(ticket);
      if(!deletelimit)
         Comment(GetLastError());
         }
 
Вадим Мотеюнас:

может 1 и 1 ?/т.е. true и код ошибки 1

ERR_NO_RESULT1Нет ошибки, но результат неизвестен
bool takelimit;

if(takelimit=OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
      Print(string(takelimit)+"   :",GetLastError());//здесь возвращает число 11, получается ошибка код 11, но не нашел расшифровку нигде?
      {if(iBarShift(Symbol(),0,OrderOpenTime())==1)
        
      deletelimit=OrderDelete(ticket);
      if(!deletelimit)
         Comment(GetLastError());
         }
 
Вадим Мотеюнас:

У вас весь код неверный.

bool takelimit;

if(takelimit?=OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
      Print(string(takelimit)+"   :",GetLastError());//здесь возвращает число 11, получается ошибка код 11, но не нашел расшифровку нигде?
      {if(iBarShift(Symbol(),0,OrderOpenTime())==1) // <<< что это, почему сравнивать с единицей? OrderOpenTime() может вернуть "1"???
        
      deletelimit=OrderDelete(ticket);
      if(!deletelimit)
         Com
 
Vitaly Muzichenko:

У вас весь код неверный.

он проверяет номер бара по времени там...

int ticket;

void Fn()
  {
   ResetLastError();
   if(!OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)){Print(GetLastError());}
   else
     {
      if(iBarShift(Symbol(),0,OrderOpenTime())==1 && !OrderDelete(ticket)){Comment(GetLastError());}
     }
  }
 
Nikolay Gaylis:

он проверяет номер бара по времени там...

Да, не заметил скобку.

 
Nikolay Gaylis:

он проверяет номер бара по времени там...

Nikolay Gaylis:

может 1 и 1 ?/т.е. true и код ошибки 1

ERR_NO_RESULT1Нет ошибки, но результат неизвестен

получается фраза Print(takelimit,GetLastError()) возвращает два значения так как 1-ая переменная типа bool и ей не нужен GetLastError, и т.к. есть запятая ,GetLastError возвращает последнюю ошибку в коде в момент вызова GetLastError?