Флаги или контроль количества типов ордеров или если тикет есть контроль времени закрытия рыночного ордера, если не равно нулю, то ордер закрылся и флаг открытия ордера ложь.
if(OrderSelect(Ticket, SELECT_BY_TICKET)==true)
{
if(OrderCloseTime()==0) // Если наш рыночный ордер не закрыт
{
if(flagAlert == true)
Alert("Наш рыночный ордер жив, Модифицируем его если нужно ", Text,Ticket,". Ждём ответ..");
ModifyTral(); // Модифицируем если нужно
}
if(OrderCloseTime()!=0) // Если наш рыночный ордер закрылся
{
OpnOr=false; // Флаг открытия рыночного ордера после его закрытия делаем ЛОЖЬ
Ticket=0; // Тикет ордера рыночного, он может быть только одинAlert("Наш рыночный ордер закрылся. Работа Советника продолжается ","Прибыль/убыток = ",OrderProfit(),
" Своп = ", OrderSwap(), " Комиссия = ", OrderCommission());
return;
}
}
else
{ Alert("OrderSelect() нашего рыночного ордера вернул ошибку - ",GetLastError()); return;}
}
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Флаги или контроль количества типов ордеров или если тикет есть контроль времени закрытия рыночного ордера, если не равно нулю, то ордер закрылся и флаг открытия ордера ложь.
А программно это как ???
Для учета по тикету.
При открытии ордера необходимо запомнить тикет.
Если честно не понятно что Вам нужно. Напишите в формулах как Вы понимаете что выводится, и что Вам нужно.
Нужно время в миллисекундах между 4-мя последними тиками. Обновление значений при появлении нового тика.
Индикатор пишет время последнего тика (GetTickCount()) в буфер.
Советник берет значения из индикатора и считает разницу во времени.
Вроде все считается, но Alert поочередно выдает значения как на картинке.
Не понимаю почему.
Нужно время в миллисекундах между 4-мя последними тиками. Обновление значений при появлении нового тика.
Индикатор пишет время последнего тика (GetTickCount()) в буфер.
Советник берет значения из индикатора и считает разницу во времени.
Вроде все считается, но Alert поочередно выдает значения как на картинке.
Не понимаю почему.
потому что не читаете документацию
в справке про GetTickCount про это написано - это целочисленное переполнение счётчика
потому что не читаете документацию
в справке про GetTickCount про это написано - это целочисленное переполнение счётчика
Вы про uint? В алерте то почему выскакивает? Я же его там не прописывал.
Вы про uint? В алерте то почему выскакивает? Я же его там не прописывал.
в первом Alerte вы выводите неверно(без учёта переполнений) посчитанную разницу,
второй Alert, там где большое целое значение ищите в коде, в приведённом вами фрагменте его нет :-)
В том то и дело, в коде нет.
Весь код индикатора.
Весь код советника.
В том то и дело, в коде нет.
Весь код индикатора.
Весь код советника.
смотрите что там у вас ещё поназапущенно.
time.mq4 посмотрите - может он алерты шлёт
В том то и дело, в коде нет.
Весь код индикатора.
Весь код советника.
В индикаторе в структуре алерт. 5 строка снизу Alert(b);
Cудя по всему это количество миллисекунд, прошедших со старта системы)
Как отследить состояние кнопок быстрой торговли?
То есть присутствуют они на чарте или нет.
Подскажите функцию или другой метод какой.