грабли в init() - страница 4

 
Itso писал (а) >>
MarketInfo не работает хорошо в init. Решение - проверяйте значение на первом тике.

У меня в init советник узнает размер минимального и максимального лота, спрэд, цену пункта и пр. вроде проблем не было

2008.06.15 19:06:08 AssistantTrader v02 AUDUSD,M15: Минимальный лот: 0.01 Шаг изменения размера лота: 0.01 Залоговая сумма: $1.8782 Цена пункта: $0.1 ExpertMagic 11008 (из расчета на базовый лот)


 
Rosh писал (а) >>

Посмотрите как пример индикатор Specification. Если вопросы останутся, то не могли бы Вы приложить код своего индикатора или выслать его по почте на rosh AT metaquotes DOT ru.

Rosh, спасибо за ссылку, индикатор Specification посмотрел, очень аккуратно написан. Сейчас буду пробовать переложить свой по подобной концепции. А пока выкладываю типовой образец, весь лишний код убрал, чтобы его разбор не отвлекал, оставил минимум. Может правда я где-то и протупил, в программировании еще далеко не профи. Если что, сильно ногами не пинать. Думал уже что может проблема в индикаторах с которых получаю данные, проверил, там все нормально. В iCastom можно пробовать получить значения других индикаторов, суть проблемы не меняется.

Файлы:
 
StSpirit писал (а) >>

Rosh, спасибо за ссылку, индикатор Specification посмотрел, очень аккуратно написан. Сейчас буду пробовать переложить свой по подобной концепции. А пока выкладываю типовой образец, весь лишний код убрал, чтобы его разбор не отвлекал, оставил минимум. Может правда я где-то и протупил, в программировании еще далеко не профи. Если что, сильно ногами не пинать. Думал уже что может проблема в индикаторах с которых получаю данные, проверил, там все нормально. В iCastom можно пробовать получить значения других индикаторов, суть проблемы не меняется.

Предалагаю добавить одну строчку в функцию init()

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
 
   IndicatorShortName("CollData");
   Win_ind = WindowFind("CollData");
   
   if (Win_ind==-1) Print("Indicator 'CollData' not found!");
Тогда сразу станет видно, что укатель на окно индикатора не определен сразу после запуска индикатора на графике. Кроме того, желательно вставить обработку таких ошибок как отсутствие графического объекта в окне индикатора.
 
Rosh писал (а) >>

Предалагаю добавить одну строчку в функцию init()

Тогда сразу станет видно, что укатель на окно индикатора не определен сразу после запуска индикатора на графике. Кроме того, желательно вставить обработку таких ошибок как отсутствие графического объекта в окне индикатора.

Спасибо за оперативный ответ, переписал индикатор, все дышит на ура! :))