Сбой работы советника

 

Всем известно, что советник работает в зависимости от изменения цены, а точнее от тика. Так вот я столкнулся с проблемкой: у меня советник тестируется нормально, но после установки работает только на первом тике каждого часа, а последующие тики игнорирует, кроме тех случаев когда устанавливаю советник - срабатывает при установке не в начале часа, но опять только на первом тике.

Что посоветуете ? Может логику сбора советника подскажете? 

И, если не трудно, скажите можно ли вставить функцию подсчёта баров из индикатора в советник, если да то в какой последовательности ? 

Пример  :

 

 int start()

int    counted_bars=IndicatorCounted();   int limit;  if (counted_bars==0)   limit=Bars-1;   if (counted_bars>0)   limit=Bars-counted_bars-1;  

for(int i=limit;i>=0;i--)    

  {

 
axe44:

Всем известно, что советник работает в зависимости от изменения цены, а точнее от тика. Так вот я столкнулся с проблемкой: у меня советник тестируется нормально, но после установки работает только на первом тике каждого часа, а последующие тики игнорирует, кроме тех случаев когда устанавливаю советник - срабатывает при установке не в начале часа, но опять только на первом тике.

Что посоветуете ? Может логику сбора советника подскажете? 

И, если не трудно, скажите можно ли вставить функцию подсчёта баров из индикатора в советник, если да то в какой последовательности ? 

Пример  :

 

 int start()

int    counted_bars=IndicatorCounted();   int limit;  if (counted_bars==0)   limit=Bars-1;   if (counted_bars>0)   limit=Bars-counted_bars-1;  

for(int i=limit;i>=0;i--)    

  {

Во первых это код четвёрошный, спрашивать лучше на профильном форуме.

Во вторых это участок кода индикатора а не советника.

Ну а по факту, чтоб последний бар пересчитывался на каждом тике нужно отступить limit на один бар от правого края.

например вот так: limit=(Bars-1)-(counted_bars-1); ну можно лишнее убрать -> limit=Bars-counted_bars;

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