Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
но в любом случае надо делать проверку на ошибки после OrderSelect...
Если всё ОК, тогда и клозтайм должен быть правильный.
А если всё равно получаться не будет, попробуй просто попринтить клозтайм в логи, и посмотри, что там пишется..
И, кстати, orderclose у тебя как объявляется? Как datetime?)
но в любом случае надо делать проверку на ошибки после OrderSelect...
Если всё ОК, тогда и клозтайм должен быть правильный.
А если всё равно получаться не будет, попробуй просто попринтить клозтайм в логи, и посмотри, что там пишется..
И, кстати, orderclose у тебя как объявляется? Как datetime?)
я его по-всякому пробовал: и через присвоение переменной datetime orderclose=OrderCloseTime() и вживую -
if(OrderCloseTime()==0) - один пень - не сравнивается
кстати, если переменную объявить int orderclose то тоже работает... очевидно потому что datetime автоматически конвертится в количество секунд - но всё равно не сравнивает с 0
и посмотри - что там за время.
И вообще - подобные вещи надо сначала самому поотлавливать - вывести инфу в логи, а потом уже с этой инфой - на форум ;)
00:48:30 MyExpert EURUSD,H1: Время закрытия ордера 1484852 по символу EURUSD = 1970.01.01
01:00:06 MyExpert EURUSD,H1: Время закрытия ордера 1484856 по символу EURUSD = 0
01:00:08 MyExpert EURUSD,H1: Время закрытия ордера 1484897 по символу EURUSD = 0
то, что ты советуешь, я сделал сразу и ДАВНО (ну я немножко программирую...)
Print("Время закрытия ордера "+DoubleToStr(NOrd,0)+" по символу "+Symbol()+" = "+TimeToStr(orderclose,TIME_DATE));
Print("Время закрытия ордера "+DoubleToStr(NOrd,0)+" по символу "+Symbol()+" = "+DoubleToStr(orderclose,4));
Мы сегодня специально проверяли сделки (открывая, закрывая) с контролем Close Time и все было абсолютно точно.
DoubleToStr(NOrd,0) - можно просто NOrd - переменные типа int принтятся нормально.
а ты говоришь, всегда > 0 - неправда =) или условие срабатывает? тогда можно попробовать принтить без тайм_ту_стр()...
сейчас попробую сам на своих позициях....скажу, что получилось
скрипт для проверки:
пишешь _OrderTicket = нужный тикет - всё равно, из истории или из открытых позиций, и он тебе говорит, клозтайм больше нуля или нет - смотри логи.