Пользовательские символы. Ошибки, баги, вопросы, предложения. - страница 32

 

CustomTicksReplace и CustomTicksAdd не сохраняют флаги TICK_FLAG_BUY и TICK_FLAG_SELL. Соответственно на пользовательском символе не будут работать индикаторы типа Дельты. Почему разработчики решили не  сохранять эти флаги?

 

MT5 3041. Сервис создает и обновляет котировки пользовательского инструмента (и тики, и бары).

Наткнулся на то, что SymbolInfoDouble и SymbolInfoTick, вызываемые в советнике, работающем на этом чарте, в какой-то момент "зависают": в обзоре рынка котировки меняются, график обновляется, iClose и CopyTicksRange получают актуальные данные, а SymbolInfoXXX дает устаревшую информацию.

В процессе разбора дошел до простейшего кода, который был призван обнаружить эти "зависания", но намного раньше продемонстрировал проблему с другой стороны: SymbolInfoXXX просто безбожно тормозит по сравнению с iClose! Это видно просто невооруженным глазом:


Запустите у себя на кастумном графике такого советника, пожалуйста:

int OnInit(void)
{
        EventSetMillisecondTimer(10);
        return(INIT_SUCCEEDED);
}

void OnDeinit(const int reason)
{
        EventKillTimer();
        Comment("");
}

void OnTimer(void)
{
        MqlTick tick;
        SymbolInfoTick( _Symbol, tick );

        Comment( "SymbolInfoInteger( _Symbol, SYMBOL_TIME ) = ", TimeToString( SymbolInfoInteger( _Symbol, SYMBOL_TIME ), TIME_SECONDS ),
                                        "\nSymbolInfoDouble( _Symbol, SYMBOL_BID ) = ", SymbolInfoDouble( _Symbol, SYMBOL_BID ),
                                        "\ntick.time = ", TimeToString( tick.time, TIME_SECONDS ),
                                        "\ntick.bid = ", tick.bid,
                                        "\niClose[0] = ", iClose( _Symbol, PERIOD_CURRENT, 0 ) );
}

(OnTimer можно заменить на OnTick, сути не меняет)

Есть ли у вас подобные тормоза?

 
Andrey Khatimlianskii #:

Есть ли у вас подобные тормоза?

Не могу проверить, т.к. не имею обновляемых кастомных символов.

 
Alain Verleyen #:

Уже обсуждали.

Установите сначала SYMBOL_VOLUME_MAX

 
Andrey Khatimlianskii # :

MT5 3041. Сервис создает и обновляет котировки пользовательского инструмента (и тики, и бары).

Наткнулся на то, что  SymbolInfoDouble и SymbolInfoTick , вызываемые в советнике, работающем на этом чарте, в какой-то момент " зависают ": в обзоре рынка котировки меняются, график обновляется, iClose и CopyTicksRange получают актуальные данные, а SymbolInfoXXX дает устаревшую информацию.

В процессе разбора дошел до простейшего кода, который был призван обнаружить эти "зависания", но намного раньше продемонстрировал проблему с другой стороны:  SymbolInfoXXX просто безбожно тормозит по сравнению с iClose! Это видно просто невооруженным глазом:


Запустите у себя на кастумном графике такого советника, пожалуйста:

(OnTimer можно заменить на OnTick, сути не меняет)

Есть ли у вас подобные тормоза?

Сообщите, пожалуйста, какой сервис вы используете для обновления тиков? Я надеюсь, что смогу чем-то помочь и могу помочь вам.

 
Slava #:

Слава, SymbolInfoDouble и SymbolInfoTick должны тормозить/зависать?

У вас воспроизводится?

Написать код с замером тормозов, визуального эффекта не достаточно?

 
Andrey Khatimlianskii #:

SymbolInfoXXX просто безбожно тормозит по сравнению с iClose! Это видно просто невооруженным глазом

Видимо, сказал какую-то глупость, раз никто не отвечает.

Временами все работает отлично, информация на чарте обновляется почти синхронно. А иногда SymbolInfoXXX подвисает на десятки секунд, это видно без всяких замеров.

Что-то в механизме получения данных кастумного инструмента не так.. При чем, проблема только в SymbolInfoXXX функциях, iClose и CopyTicksRange работают нормально.

 
Andrey Khatimlianskii #:

  А иногда SymbolInfoXXX подвисает на десятки секунд, это видно без всяких замеров.

Что-то в механизме получения данных кастумного инструмента не так.. При чем, проблема только в SymbolInfoXXX функциях, iClose и CopyTicksRange работают нормально.

видимо SymbolInfoXXX что то тянет с сервера, раз плавающая скорость выполнения. Вообще конечно путаницу такое поведение функции вносит. Получается, что какие то способы напрямую лезут, а какие то через назад. У меня  iTime то работает то нет на Custom. Не могу пока понять, по какому принципу 

 
Andrey Khatimlianskii #:

  При чем, проблема только в SymbolInfoXXX функциях, iClose и CopyTicksRange работают нормально.

я попробовал ваш тест, все точно также - отстает на пару секунд. причем не на custom, а на фьюче на серебро

Инструмент Silv-12.21.  ММВБ, брокер БКС. Но думаю, это не важно

 
RusPro #:

видимо SymbolInfoXXX что то тянет с сервера, раз плавающая скорость выполнения. Вообще конечно путаницу такое поведение функции вносит. Получается, что какие то способы напрямую лезут, а какие то через назад. У меня  iTime то работает то нет на Custom. Не могу пока понять, по какому принципу 

Про обычные инструменты речь не шла, про кастум. По ним вся информация доступна в терминале по определению, на сервер лезть ничего не должно.