Ошибки, баги, вопросы - страница 1807
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
@Slawa, синхронизация распространяется на TimeCurrent()? Сейчас получаю такую картину: вчера вечером в 22.45 выключил терминал. Сегодня утром включил. Рынок еще закрыт. ФОРТС. До открытия рынка в 10:00 мск приходят тики. У меня обрабатывается информация с каждого пришедшего тика в OnBookEvent(). Проблема в том, что несмотря на избыточную проверку синхронизации:
{
//--- Проверка переданного значения
if( rates_total > 0 ) // Если передано корректное значение
return( true ); // Возвращаем истину
//--- Проверка синхронизации
bool isSync = SymbolIsSynchronized( _Symbol );
bool sync = (bool)SeriesInfoInteger( _Symbol, _Period, SERIES_SYNCHRONIZED );
//---
if( !isSync || !sync ) // Если история не синхронизирована
{
Print( __FUNCTION__,": ОШИБКА РАССИНХРОНИЗАЦИИ! isSync = ",isSync,", sync = ",sync,", rt = ",rates_total );
return( false ); // Выходим с ошибкой
}
//--- Определим число просчитанных баров
rates_total = Bars( _Symbol, _Period ); // Определяем число баров
if( rates_total <= 0 ) // Если синхронизация не произведена
{
Print( __FUNCTION__,": ОШИБКА #",GetLastError(),": Синхронизация по Bars() не пройдена!" );
return( false ); // Возвращаем ложь
}
else // Если значение получено
return( true ); // Возвращаем истину
}
после которой идет запрос времени и текущего SYMBOL_SESSION_... значения - ВРЕМЯ ПРИХОДИТ НЕ КОРРЕКТНОЕ = ВРЕМЕНИ ЗАКРЫТИЯ ТЕРМИНАЛА, т.е. 22:45! Соответственно, запись в файл идет кривая и показания сбиваются. Проверьте, пожалуйста, работу функции TimeCurrent() на синхронизацию!
Добавлено:
Значение аргумента rates_total, передаваемое в функцию всегда = 0! Т.е. синхронизация проверяется!
ВРЕМЯ ПРИХОДИТ НЕ КОРРЕКТНОЕ = ВРЕМЕНИ ЗАКРЫТИЯ ТЕРМИНАЛА, т.е. 22:45
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Ошибки, баги, вопросы
fxsaber, 2017.02.14 15:40
Если на Metaquotes-Demo оставить в Обзоре рынка только MOEX-символы, то TimeCurrent будет отставать на 15 минут. Стоит только добавить один FOREX-символ, как TimeCurrent разом прыгает вперед на 15 минут.Тут реал открытия, врят ли туда можно добавить FOREX-символы... Но раз так, видимо, TimeCurrent() реально кривое сейчас, и даже синхронизовать его нельзя всеми доступными средствами!
Опять таки, если бы к SYMBOL_SESSION_... данным дописывалось бы их реальное время прихода, такой проблемы бы не было! И не нужно было бы городить костыли через TimeCurrent().
Кстати, описанный Вами случай вполне логичен, т.к. задержка котировок с биржи идет 15-минутная. А с форекса задержки нет, так что время подтягивается по форексному. Но, это, конечно, ошибка. Т.е. TimeCurrent() "не ориентируется" между разными рынками.
А, еще возможно, что TimeCurrent() идет от поставщика ликвидности. А ликвидность собирается из разных мест.
Кстати, описанный Вами случай вполне логичен, т.к. задержка котировок с биржи идет 15-минутная. А с форекса задержки нет, так что время подтягивается по форексному. Но, это, конечно, ошибка. Т.е. TimeCurrent() "не ориентируется" между разными рынками.
А, еще возможно, что TimeCurrent() идет от поставщика ликвидности. А ликвидность собирается из разных мест.
Спасибо за идею, надо будет сравнить SYMBOL_TIME и TimeCurrent(). Возможно будут отличия...
Ууу... не думал, что так быстро все произойдет:
2017.02.16 12:47:37.575 GetTimeCurrent: ВНИМАНИЕ! timeCurrent < timeSymbol (2017.02.16 10:47:35 2017.02.16 10:47:36)
2017.02.16 12:47:37.575 GetTimeCurrent: ВНИМАНИЕ! timeCurrent < timeSymbol (2017.02.16 10:47:35 2017.02.16 10:47:36)
2017.02.16 12:47:37.575 GetTimeCurrent: ВНИМАНИЕ! timeCurrent < timeSymbol (2017.02.16 10:47:35 2017.02.16 10:47:36)
2017.02.16 12:47:37.575 GetTimeCurrent: ВНИМАНИЕ! timeCurrent < timeSymbol (2017.02.16 10:47:35 2017.02.16 10:47:36)
2017.02.16 12:47:37.575 GetTimeCurrent: ВНИМАНИЕ! timeCurrent < timeSymbol (2017.02.16 10:47:35 2017.02.16 10:47:36)
2017.02.16 12:47:52.889 GetTimeCurrent: ВНИМАНИЕ! timeCurrent < timeSymbol (2017.02.16 10:47:51 2017.02.16 10:47:52)
2017.02.16 12:47:52.890 GetTimeCurrent: ВНИМАНИЕ! timeCurrent < timeSymbol (2017.02.16 10:47:51 2017.02.16 10:47:52)
2017.02.16 12:47:52.890 GetTimeCurrent: ВНИМАНИЕ! timeCurrent < timeSymbol (2017.02.16 10:47:51 2017.02.16 10:47:52)
2017.02.16 12:47:52.890 GetTimeCurrent: ВНИМАНИЕ! timeCurrent < timeSymbol (2017.02.16 10:47:51 2017.02.16 10:47:52)
2017.02.16 12:47:52.890 GetTimeCurrent: ВНИМАНИЕ! timeCurrent < timeSymbol (2017.02.16 10:47:51 2017.02.16 10:47:52)
2017.02.16 12:47:52.890 GetTimeCurrent: ВНИМАНИЕ! timeCurrent < timeSymbol (2017.02.16 10:47:51 2017.02.16 10:47:52)
2017.02.16 12:48:06.890 GetTimeCurrent: ВНИМАНИЕ! timeCurrent < timeSymbol (2017.02.16 10:48:05 2017.02.16 10:48:06)
2017.02.16 12:48:06.890 GetTimeCurrent: ВНИМАНИЕ! timeCurrent < timeSymbol (2017.02.16 10:48:05 2017.02.16 10:48:06)
2017.02.16 12:48:06.890 GetTimeCurrent: ВНИМАНИЕ! timeCurrent < timeSymbol (2017.02.16 10:48:05 2017.02.16 10:48:06)
2017.02.16 12:48:06.890 GetTimeCurrent: ВНИМАНИЕ! timeCurrent < timeSymbol (2017.02.16 10:48:05 2017.02.16 10:48:06)
2017.02.16 12:48:06.891 GetTimeCurrent: ВНИМАНИЕ! timeCurrent < timeSymbol (2017.02.16 10:48:05 2017.02.16 10:48:06)
2017.02.16 12:48:06.891 GetTimeCurrent: ВНИМАНИЕ! timeCurrent < timeSymbol (2017.02.16 10:48:05 2017.02.16 10:48:06)
При включении терминала, слету. Явная ошибка TimeCurrent()!
Тут, действительно, пока только так обойти. Выбором наибольшего времени. Но это дополнительные затраты на получении на каждом OnBookEvent() двух значений времени...
Заявка в СД #1674783
Пожалуйста, решите как можно скорее!