Ошибки, баги, вопросы - страница 1807
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
чтоб было понятно:
открываю сделку Buy
2017.02.15 15:16:40.944 Trades '5246495': accepted instant buy 1.00 EURUSD at 1.05572
2017.02.15 15:16:40.944 Trades '5246495': deal #117730573 buy 1.00 EURUSD at 1.05572 done (based on order #134121208)
2017.02.15 15:16:40.944 Trades '5246495': order #134121208 buy 1.00 / 1.00 EURUSD at 1.05572 done in 1284.090 ms
эксперт ее множит
2017.02.15 15:16:41.720 Trades '5246495': failed instant buy 1.00 EURUSD at 1.05574 (deviation: 16) [No prices]
2017.02.15 15:16:42.735 Trades '5246495': failed instant buy 1.00 EURUSD at 1.05575 (deviation: 16) [No prices]
2017.02.15 15:16:43.749 Trades '5246495': failed instant buy 1.00 EURUSD at 1.05575 (deviation: 16) [No prices]
2017.02.15 15:16:44.760 Trades '5246495': failed instant buy 1.00 EURUSD at 1.05577 (deviation: 16) [No prices]
2017.02.15 15:16:45.774 Trades '5246495': failed instant buy 1.00 EURUSD at 1.05577 (deviation: 16) [No prices]
2017.02.15 15:16:46.789 Trades '5246495': failed instant buy 1.00 EURUSD at 1.05575 (deviation: 16) [No prices]
2017.02.15 15:16:47.804 Trades '5246495': failed instant buy 1.00 EURUSD at 1.05577 (deviation: 16) [No prices]
2017.02.15 15:16:48.818 Trades '5246495': failed instant buy 1.00 EURUSD at 1.05577 (deviation: 16) [No prices]
2017.02.15 15:16:49.831 Trades '5246495': instant buy 1.00 EURUSD at 1.05577 (deviation: 18)
2017.02.15 15:16:49.891 Trades '5246495': accepted instant buy 1.00 EURUSD at 1.05577 (deviation: 18)
2017.02.15 15:16:49.892 Trades '5246495': order #134121233 buy 1.00 / 1.00 EURUSD at 1.05577 done in 61.372 ms
2017.02.15 15:16:49.893 Trades '5246495': deal #117730596 buy 1.00 EURUSD at 1.05577 done (based on order #134121233)
чтоб было понятно:
Хорошо, дополнил в СД.
Торговые баги больше всего настораживают. Обновитесь до 1531+, чтобы логи полнее были.
2017.02.16 08:53:03.285 MQL5 wrong type, loading of Test failed
2017.02.16 08:53:03.813 Network '5122740': authorized on MetaQuotes-Demo through Access Point EU Amsterdam (ping: 50.93 ms)
Что это?
На единственном чарте ничего не запущено. При любом переключении счетов выскакивает это сообщение.
@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()!