lordlev:
При тестировании советника переменная opentime всё время выдаёт 0. Уже всю голову сломал. Помогите! Часть кода из OnTick:
Вот так попробуйте:
//+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { int i=0; ulong hd_ticket=0; datetime hd_time=0; if(HistorySelect(0,TimeCurrent())) // получим историю ордеров. Если история выбрана, то... { i=HistoryDealsTotal()-1; // получим порядковый номер последней сделки //--- if((hd_ticket=HistoryDealGetTicket((int)i))>0) // получим тикет ордера по его позиции в списке { hd_time=(datetime)HistoryDealGetInteger(hd_ticket,DEAL_TIME); //--- Print("hd_time: ",hd_time); } } }
tol64:
Спасибо, всё пашет. Но всё равно я не могу понять в чём ошибка была.
Вот так попробуйте:
lordlev:
Спасибо, всё пашет. Но всё равно я не могу понять в чём ошибка была.
Вы два раза пытались выбрать сделку, сначала по номеру, а потом ещё по тикету. Но это ладно, не в этом ошибка. Переменная opentime у Вас long, а нужно datetime.
Спасибо, всё пашет. Но всё равно я не могу понять в чём ошибка была.
Документация по MQL5: Торговые функции / HistoryDealSelect
- www.mql5.com
Торговые функции / HistoryDealSelect - Документация по MQL5
lordlev:
Спасибо, всё пашет. Но всё равно я не могу понять в чём ошибка была.
Спасибо, всё пашет. Но всё равно я не могу понять в чём ошибка была.
tol64:
Вы два раза пытались выбрать сделку, сначала по номеру, а потом ещё по тикету. Но это ладно, не в этом ошибка. Переменная opentime у Вас long, а нужно datetime.
Хотя я ошибся, поспешил с ответом (проверил). :) Тип переменной можно и в long указывать, тогда Вы будете получать значение времени в секундах от 1970 года. А чтобы лучше понять, что за ошибка, то всегда нужно проверять на ошибки. То есть, если история сделок выбрана, то идём дальше, если нет, то вывести последнюю ошибку. Вы два раза пытались выбрать сделку, сначала по номеру, а потом ещё по тикету. Но это ладно, не в этом ошибка. Переменная opentime у Вас long, а нужно datetime.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
При тестировании советника переменная opentime всё время выдаёт 0. Уже всю голову сломал. Помогите! Часть кода из OnTick: