Рестарт советников при компиляции

 

Только что заметил пренеприятнейшую вещь :

одновременно работают 9 экземпляров советника на разных парах, но с одинаковыми настройками (это торговая панель)

при (мелких правках и)компиляции исходника, рестартуют не все запущенные экземпляры.

а только лишь 4 штуки :-( Видимо по чартам/вкладкам справа-налево..

Чем вызвано, не знаю, скорее особенности билда (1160) и возможно будет когда-нить исправлено.

А пока опрос идей - как на прикладном уровне гарантировать рестарт советников при компиляции ?

 
Maxim Kuznetsov:

Только что заметил пренеприятнейшую вещь :

одновременно работают 9 экземпляров советника на разных парах, но с одинаковыми настройками (это торговая панель)

при (мелких правках и)компиляции исходника, рестартуют не все запущенные экземпляры.

а только лишь 4 штуки :-( Видимо по чартам/вкладкам справа-налево..

Чем вызвано, не знаю, скорее особенности билда (1160) и возможно будет когда-нить исправлено.

А пока опрос идей - как на прикладном уровне гарантировать рестарт советников при компиляции ?

Спред валютной пары никак не участвует в перезапуске советника? 

 
aleger:

Спред валютной пары никак не участвует в перезапуске советника? 

как он может там участвовать ? ...

картина маслом - запущены 9 панелей, вношу мелкие правки, компиляю - получаю 4 панели рестартовали и об этом отписались в журнал, 5 нет и несут старые баги

если интересно, то код OnInit OnDeinit:

int OnInit()
{
   panel=new Panel("panel");
   if (panel==NULL) return INIT_FAILED;
   if (panel.OnInit()!=INIT_SUCCEEDED) {
      delete panel;
      return INIT_FAILED;
   }
   hasTimer=EventSetTimer(1);
   panel.SetCallback(MyCallback);
   PrintFormat("TradePanel %s started",_Symbol);
   return(INIT_SUCCEEDED);
}
void OnDeinit(const int reason)
{
   if (panel!=NULL) {
      panel.OnDeinit(reason);
      delete panel;
   }
   if (hasTimer) EventKillTimer();
   ObjectsDeleteAll(0,"panel.");
   PrintFormat("TradePanel %s exited",_Symbol);
}

никаких торговых функций или попыток доступа к торговому окружению в OnInit/OnDeinit не делается. Даже на чарте ничего не рисуется (не создаются объекты).

 
Maxim Kuznetsov:

как он может там участвовать ? ...

картина маслом - запущены 9 панелей, вношу мелкие правки, компиляю - получаю 4 панели рестартовали и об этом отписались в журнал, 5 нет и несут старые баги

если интересно, то код OnInit OnDeinit:

никаких торговых функций или попыток доступа к торговому окружению в OnInit/OnDeinit не делается. Даже на чарте ничего не рисуется (не создаются объекты).

На каких парах сбои?

 
aleger:

На каких парах сбои?

пытаюсь понять логику сбоя,

получается так - нормально рестартуют те 4 которые при загрузке терминала на вкладках самые правые.

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

PS. При рестартах билд обновился до 1170, так вот на нём то-же самое..

 
Maxim Kuznetsov:

пытаюсь понять логику сбоя,

получается так - нормально рестартуют те 4 которые при загрузке терминала на вкладках самые правые.

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

PS. При рестартах билд обновился до 1170, так вот на нём то-же самое..

А если на другом компе или терминале (физически) воспроизвести эту же ситуацию?

 
aleger:

А если на другом компе или терминале (физически) воспроизвести эту же ситуацию?

на разъездном нотебуке не воспроизводится блин, ничего уже не понимаю уже..

нотебук старый, нагружен всяким, он даже визуально тормознее VDS.

На нотебуке ткнул компиляцию, переключился в терминал и приходится ждать пока всё рестартует и напишутся логи. Зато всё срабатывает правильно

На VDS (подключение через RDP) - вообще ничего лишнего нет, всё работает моментально, но рестартуют только панели на крайних справа вкладках

Версия Win ещё отличается (на ноуте Win10, на VDS серверная Win 2012R2), но это тут совсем вряд-ли причём..

 
Maxim Kuznetsov:

на разъездном нотебуке не воспроизводится блин, ничего уже не понимаю уже..

нотебук старый, нагружен всяким, он даже визуально тормознее VDS.

На нотебуке ткнул компиляцию, переключился в терминал и приходится ждать пока всё рестартует и напишутся логи. Зато всё срабатывает правильно

На VDS (подключение через RDP) - вообще ничего лишнего нет, всё работает моментально, но рестартуют только панели на крайних справа вкладках

Версия Win ещё отличается (на ноуте Win10, на VDS серверная Win 2012R2), но это тут совсем вряд-ли причём..

Обычный тестовый режим с Print-ом никак нельзя использовать? Выборочно или группами или ещё как, но чтобы логи просмотреть? Всё равно должны быть какие-то зацепки

 
aleger:

Обычный тестовый режим никак нельзя использовать? Выборочно или группами или ещё как, но чтобы логи просмотреть?

сейчас не до этого - буквально последние часы в этом году когда алгоритм ТС можно на живую отлаживать, к тому-же движуха пошла

буду считать сей глюк фичей :-) и о нём помнить..

 
Maxim Kuznetsov:

сейчас не до этого - буквально последние часы в этом году когда алгоритм ТС можно на живую отлаживать, к тому-же движуха пошла

буду считать сей глюк фичей :-) и о нём помнить..

Удачи!

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