Как узнать выполнился ли отложенный ордер?

 

Добрый день.

Помогите пожалуйсто. Вопрос по MQL4.
Как узнать выполнился ли отложенный ордер

 
присвой отложнику магик, на каждом тике делай перебор ордеров, если найдутся с этим магиком и тип будет 0 или 1, значит выполнился.
 
Techno >>:
присвой отложнику магик, на каждом тике делай перебор ордеров, если найдутся с этим магиком и тип будет 0 или 1, значит выполнился.
Лучше запоминать тикет, а магик присваивать одинаковый для всех ордеров данного эксперта.
 

Дело в том что я так и делаю. Смотрю по тикету равно ли значение OP_BUY или OP_SELL.
Но происходит что то не понятное. IF-инструкция не срабатывает так как когда я добавляю это условие (оно третье)  код не работает так как должен. Он всегда считает что есть сделка  типа OP_BUY (или наоборот если строки кода поменять местами). Хотя это не так.

Вот код: if ((lastBuyOrderType != OP_BUY) && (hasSignal(MODE_LOWER) && lastSignalToMyMod(MODE_LOWER))) 

в момент выполнение  lastBuyOrderType не равен OP_BUY а два других условия истинны. но код не выполняется.
Что может быть не так? Где можно достать по больше информации?

 
Rico010 >>:

Дело в том что я так и делаю. Смотрю по тикету равно ли значение OP_BUY или OP_SELL.
Но происходит что то не понятное. IF-инструкция не срабатывает так как когда я добавляю это условие (оно третье) код не работает так как должен. Он всегда считает что есть сделка типа OP_BUY (или наоборот если строки кода поменять местами). Хотя это не так.

Вот код: if ((lastBuyOrderType != OP_BUY) && (hasSignal(MODE_LOWER) && lastSignalToMyMod(MODE_LOWER)))

в момент выполнение lastBuyOrderType не равен OP_BUY а два других условия истинны. но код не выполняется.
Что может быть не так? Где можно достать по больше информации?

код ф студию!
 
Rico010 >>:

Дело в том что я так и делаю. Смотрю по тикету равно ли значение OP_BUY или OP_SELL.
Но происходит что то не понятное. IF-инструкция не срабатывает так как когда я добавляю это условие (оно третье) код не работает так как должен. Он всегда считает что есть сделка типа OP_BUY (или наоборот если строки кода поменять местами). Хотя это не так.

Вот код: if ((lastBuyOrderType != OP_BUY) && (hasSignal(MODE_LOWER) && lastSignalToMyMod(MODE_LOWER)))

в момент выполнение lastBuyOrderType не равен OP_BUY а два других условия истинны. но код не выполняется.
Что может быть не так? Где можно достать по больше информации?

тикет лучше не использовать, тк если отложник открыт долго, дц может сменить тикет, такое случается. Кстати выложи полностью код, это только часть, откуда нам знать что такое lastBuyOrderType или lastSignalToMyMod ?
 

Попробуйте глянуть сюда - https://www.mql5.com/ru/forum/107476/page20

Функция GetTypeLastOpenPos(). Стп.20

Эта функция возвращает тип последней открытой позиции или -1.

 
Rico010 >>:

Дело в том что я так и делаю. Смотрю по тикету равно ли значение OP_BUY или OP_SELL.
Но происходит что то не понятное. IF-инструкция не срабатывает так как когда я добавляю это условие (оно третье) код не работает так как должен. Он всегда считает что есть сделка типа OP_BUY (или наоборот если строки кода поменять местами). Хотя это не так.

Вот код: if ((lastBuyOrderType != OP_BUY) && (hasSignal(MODE_LOWER) && lastSignalToMyMod(MODE_LOWER)))

в момент выполнение lastBuyOrderType не равен OP_BUY а два других условия истинны. но код не выполняется.
Что может быть не так? Где можно достать по больше информации?

Чудес на свете не бывает, значит какое то из условий не выполняется. Напишите условия лесенкой, в каждом if () по одному условию и после каждого условия выводите принт. И Вы увидите какое условие не выполняется

if(...)
  {
   Print("условие №1");
   if(...)
    {
     Print("условие №2");
     if(...)
       {
        Print("условие №3");
        // ваш код
       }
    } 
  }
 

Всем большое спасибо за участие. Оказалось ошибка совсем в другом месте. Уже разобрался.

Вот только не понял на счет OrderTicket(). Это точно что значение тикета может поменятся? Можете привести пример брокеров у которых так делается?
Ведь магические номера советуют использовать для распознавания сделок текущего эксперта, значить и Тикеты по идее должны были бы быть гарантированными что бы можно было распознать конкретную сделку. Или нет?

 
Rico010 >>:

Или нет?

Нет.

Тикет и магик -- разные вещи.

Магик -- ваш.

Тикет -- ДЦ.

 
Swetten >>:

Нет.

Тикет и магик -- разные вещи.

Магик -- ваш.

Тикет -- ДЦ.



Тогда какой смысл возвращать нам Тикет из ОрдерСенд если он бесполезен? 
Я не могу уловить логику :)
Причина обращения: