iCastom запаздывает - страница 2

 
storm:
Как вариант, индюк рассчитывается по Close советник тестируется по Open

Советник у меня и так тестируется по приходу нового бара,

а как привязать "индюка" к Close - подскажите, пожалуйста!

 
Eugene1:

int i, // Индекс бара

Counted_bars=IndicatorCounted(); // Количество просчитанных баров
i=Bars-Counted_bars; // Индекс первого непосчитанного

if (i>1) i=i-1; else return(0);

while(i>=0) // Цикл по непосчитанным барам
{

}

Если я правильно понял - это имеется в виду

Растолкуйте, пожалуйста, подробнее!

Я не могу понять самостоятельно.

В моём понимании это исправление приведёт лишь к тому, что индикатор не будет пересчитываться на каждом тике - только и всего.

Он пересчитатся только с приходом нового бара.

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

Или (скорее всего) я по-крупному чего-то не понимаю.


Индикатор должен обрабатывать не до конца обработанный первый бар и нулевой. В вашем варианте обрабатывался только нулевой, Но если результат зависел от предыдущего расчета, то возникала погрешность вычисления, так как не был до конца обработан первый бар

Обычно

if (i>1) i=Bars-period-1;

где period - период расчета индикатора

Хотя можно использовать и другие варианты

 
Vinin:


Индикатор должен обрабатывать не до конца обработанный первый бар и нулевой. В вашем варианте обрабатывался только нулевой, Но если результат зависел от предыдущего расчета, то возникала погрешность вычисления, так как не был до конца обработан первый бар

Обычно

где period - период расчета индикатора

Хотя можно использовать и другие варианты


А вот такой вариант:

int i, // Индекс бара
Counted_bars=IndicatorCounted(); // Количество просчитанных баров
i=Bars-Counted_bars; // Индекс первого непосчитанного

if (i>0) i=i-1; else return(0);

while(i>=0) // Цикл по непосчитанным барам
{

}

А вот так, с нулём?

Нормально?
 

 
Eugene1:

Советник у меня и так тестируется по приходу нового бара,

Если выложенный Вами текст функции распознавания нового бара полон, то Ваш советник не распознает новый бар, а работает на каждом тике. Следствие - зависимость от перерисовки индикатора, будь он внешним,или встроенным в Вашу программу.
 
tara:
Если выложенный Вами текст функции распознавания нового бара полон, то Ваш советник не распознает новый бар, а работает на каждом тике. Следствие - зависимость от перерисовки индикатора, будь он внешним,или встроенным в Вашу программу.

Чего не хватает в моём тексте распознавания нового бара?

Разве что объявления переменной хранящей время прихода прежнего бара статической?

Это объявление есть.

Что ещё исправить, чтобы работал по новым барам? 

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