Ошибка при iCustom - подскажите пожалуйста. - страница 2

 
Vitaly Muzichenko #:

Кстати, вот ещё одна причина, по которой "падает"


---

Буквально вчера с этим столкнулся.

Индикатор с таймеров отлично работает онлайн, но если его вызывать в советнике - то "всё"

Да я тоже так думаю. Так как там про отсутствие файлов лишь предупреждение, а тут ошибка уже.
Поэтому и думаю, может быть есть иной способ получить данные буфера кроме iCustoms
 
Natalya Smirnova #:
Да я тоже так думаю. Так как там про отсутствие файлов лишь предупреждение, а тут ошибка уже.
Поэтому и думаю, может быть есть иной способ получить данные буфера кроме iCustoms

Предупреждение - жёлтеньким, а это ошибка :)

 
Vitaly Muzichenko #:

Кстати, вот ещё одна причина, по которой "падает"


---

Буквально вчера с этим столкнулся.

Индикатор с таймеров отлично работает онлайн, но если его вызывать в советнике - то "всё".

Лечение: убрать таймер, если вызов с советника.


===

Ещё вчера у меня возник вопрос, как определить, что индикатор вызывается в советнике, чтобы отключить таймер и перенести программно в OnCalculate

Это вопрос к знатокам, кто знает - ответьте!

Сейчас вывел в настройки, но это как-то некрасиво.

В коде такие штуки

если есть таймер, то вовсе не факт что он запустится по первому свистку в OnInit :-( жизнь жестока

поэтому в OnInit(): bool hasTimer=EventSetXXXTimer();

далее во всех OnYY : if (!hasTimer) hasTimer=.... else EmulateTimer()

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

 
Maxim Kuznetsov #:

если есть таймер, то вовсе не факт что он запустится по первому свистку в OnInit :-( жизнь жестока

поэтому в OnInit(): bool hasTimer=EventSetXXXTimer();

далее во всех OnYY : if (!hasTimer) hasTimer=.... else EmulateTimer()

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

Это решит проблему запуска индикатора в советнике?

 
Vitaly Muzichenko #:

Это решит проблему запуска индикатора в советнике?

это отчасти пролечит проблему вызова таймера из вызываемого индикатора.Из советника вызываемого в терминале, "в доме который построил Джек" :-)

 
Maxim Kuznetsov #:

это отчасти пролечит проблему вызова таймера из вызываемого индикатора.Из советника вызываемого в терминале, "в доме который построил Джек" :-)

Речь не об этом :)

Да и есть проверка

  while(!EventSetMillisecondTimer(Speed) ) {
    Print(StringFormat("EST:%i", _LastError));
    Sleep(1000);
  }
 
Maxim Kuznetsov #:

не у начальника, значит у учителя спросите.. :-)

Не зря говорят «Не буди лихо, пока оно тихо.» или «Помяни дьявола всуе, он и появится.»
Причина обращения: