Ошибки, баги, вопросы - страница 1807

 

чтоб было понятно:

открываю сделку Buy

 

2017.02.15 15:16:39.662 Trades  '5246495': instant buy 1.00 EURUSD at 1.05572
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)
 
Vladislav Andruschenko:

чтоб было понятно:

Хорошо, дополнил в СД.

Торговые баги больше всего настораживают. Обновитесь до 1531+, чтобы логи полнее были.

 
2017.02.16 08:53:03.158 Network '2250': disconnected from FXOpen-MT5
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(). Проблема в том, что несмотря на избыточную проверку синхронизации:

bool GetRatesTotal( int& rates_total )                          // Количество просчитанных баров (out)
        {
         //--- Проверка переданного значения
         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! Т.е. синхронизация проверяется!

 
Alexey Kozitsyn:

ВРЕМЯ ПРИХОДИТ НЕ КОРРЕКТНОЕ = ВРЕМЕНИ ЗАКРЫТИЯ ТЕРМИНАЛА, т.е. 22:45

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

fxsaber, 2017.02.14 15:40

Если на Metaquotes-Demo оставить в Обзоре рынка только MOEX-символы, то TimeCurrent будет отставать на 15 минут. Стоит только добавить один FOREX-символ, как TimeCurrent разом прыгает вперед на 15 минут.
 
fxsaber:

Тут реал открытия, врят ли туда можно добавить FOREX-символы... Но раз так, видимо, TimeCurrent() реально кривое сейчас, и даже синхронизовать его нельзя всеми доступными средствами!

Опять таки, если бы к SYMBOL_SESSION_... данным дописывалось бы их реальное время прихода, такой проблемы бы не было! И не нужно было бы городить костыли через TimeCurrent().

 
fxsaber:

Кстати, описанный Вами случай вполне логичен, т.к. задержка котировок с биржи идет 15-минутная. А с форекса задержки нет, так что время подтягивается по форексному. Но, это, конечно, ошибка. Т.е. TimeCurrent() "не ориентируется" между разными рынками.

А, еще возможно, что TimeCurrent() идет от поставщика ликвидности. А ликвидность собирается из разных мест. 

 
Alexey Kozitsyn:

Кстати, описанный Вами случай вполне логичен, т.к. задержка котировок с биржи идет 15-минутная. А с форекса задержки нет, так что время подтягивается по форексному. Но, это, конечно, ошибка. Т.е. TimeCurrent() "не ориентируется" между разными рынками.

А, еще возможно, что TimeCurrent() идет от поставщика ликвидности. А ликвидность собирается из разных мест. 

_TimeCurrent = MathMax(SymbolInfoInteger(Symbol1, SYMBOL_TIME), SymbolInfoInteger(Symbol2, SYMBOL_TIME), ...);
 
fxsaber:
_TimeCurrent = MathMax(SymbolInfoInteger(Symbol1, SYMBOL_TIME), SymbolInfoInteger(Symbol2, SYMBOL_TIME), ...);
Спасибо за идею, надо будет сравнить SYMBOL_TIME и TimeCurrent(). Возможно будут отличия...
 
Alexey Kozitsyn:
Спасибо за идею, надо будет сравнить 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: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()!

Причина обращения: