Индикатор NRTR в AmiBroker

  • Автор темы SV
  • Дата начала

SV

New member
Кто нибудь пытался закодить NRTR Копыркина в Амиброкере???
Помогите, плиз!
В процессе попыток получился такой вот код:
*************************
_SECTION_BEGIN("NRTR");
Max_bars=100;
k=10;
NRTR[0]=C[0];

up=IIf(C>NRTR,1,0);
down=IIf(C<NRTR,1,0);
if (up[BarCount-1])
{
period=IIf(BarsSince(Cross(C,NRTR))>Max_bars,Max_bars,BarsSince(Cross(C,NRTR)));
NRTR=Ref(HHV(C,period),-1)*(1-k/100);
}
if (down[BarCount-1])
{
period=IIf(BarsSince(Cross(NRTR,C))>Max_bars,Max_bars,BarsSince(Cross(NRTR,C)));
NRTR=Ref(LLV(C,period),-1)*(1+k/100);
}
Plot(NRTR,"NRTR",colorRed);

_SECTION_END();
*************************

Все бы наверно заработало еслиб не необходимость инициализировать переменную NRTR - в результете чего она просто "пепеинициализируется" на начальное значение на каждом баре.
А может есть возможность инициализировать переменную только один раз? или еще какие методы есть

Поделитесь мыслями кто-нить.... а то у меня, пока, закончились:(( ... а нарисовать такой индюк хотся
 

SV

New member
Ладно, сам себе отвечу:))
На досуге вспомнил, что Ами это тотже Си... почти ;)
*******************************
_SECTION_BEGIN("NRTR");
k=10; //ширина стопа в %

for (i=0; i<BarCount; i++)
{
if (i==0)
NRTR=C*(1+k/100); //начальное значение
if (i>0)
{
if (C[i-1]>NRTR[i-1]) //up-trend
{
if (C>NRTR[i-1]) //up-trend продолжается
if (C>NRTR[i-1]/(1-k/100))
NRTR=C*(1-k/100);
else
NRTR=NRTR[i-1];
if (C<=NRTR[i-1]) NRTR=C*(1+k/100); //up-trend закончился...
}
if (C[i-1]<NRTR[i-1]) //down-trend
{
if (C<NRTR[i-1]) //down-trend продолжается
if (C<NRTR[i-1]/(1+k/100))
NRTR=C*(1+k/100);
else
NRTR=NRTR[i-1];
if (C>=NRTR[i-1]) NRTR=C*(1-k/100); //down-trend закончился...
}

}
}
Plot(NRTR,"NRTR",colorRed);
_SECTION_END();


_SECTION_BEGIN("Price");
SetChartOptions(0,chartShowArrows|chartShowDates);
_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ));
Plot( C, "Close", ParamColor("Color", colorBlack ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() );
_SECTION_END();
*******************************

Может кому еще пригодится
 

SV

New member
Теперь возникла другая проблемка...
Как бы описать... эээ...
При изменения горизонтального масштаба графика начинает меняться и индикатор (значения и конфигурация). При масштабе, когда на экран помещается меньше ~200 баров этот глюк особо заметен :(
Тоже самое можно заметить при перемещении по графику "стрелочками"

Спецы по Амиброкеру, гляньте на это, плиз... и дайте заключение... мне или Ами
 

SV

New member
Интересные пироги... печёт Амиброкер...

Вставил простую строчку:
printf("%g",BarCount);

Именяю масштаб->кликаю на график->вижу количество баров... снова меняю масштаб->кликаю на график->вижу... другое количество баров... а в честь чего оно другое спрашивается????

Может кто нибудь все-таки подскажет че с этим делать???
Или куда обратиться еще можно с этой проблемой????
 

SV

New member
баркаунт графика в размере окна показывается.
Я так и понял уже. Тогда возникают вопросы:
Это так и должно быть (так и задумано)??
Как построить индюк по размеру графика а не окна??

Ведь индикаторы типа HHV(H,20) не зависят от размера окна!!! Как Ами его рассчитывает, интересно, если не таким же последовательным перебором как и я делал
 

mehanizator1

New member
баркаунт графика в размере окна показывается.
Я так и понял уже. Тогда возникают вопросы:
Это так и должно быть (так и задумано)??
Как построить индюк по размеру графика а не окна??

Ведь индикаторы типа HHV(H,20) не зависят от размера окна!!! Как Ами его рассчитывает, интересно, если не таким же последовательным перебором как и я делал
напиши им, попроси объяснить :)
 

cowboy

New member
баркаунт графика в размере окна показывается.
Я так и понял уже. Тогда возникают вопросы:
Это так и должно быть (так и задумано)??
Как построить индюк по размеру графика а не окна??

Ведь индикаторы типа HHV(H,20) не зависят от размера окна!!! Как Ами его рассчитывает, интересно, если не таким же последовательным перебором как и я делал
напиши им, попроси объяснить :)
а что это ваще за индикатор?
 

mehanizator1

New member
Ведь индикаторы типа HHV(H,20) не зависят от размера окна!!! Как Ами его рассчитывает, интересно, если не таким же последовательным перебором как и я делал
напиши им, попроси объяснить :)
а что это ваще за индикатор?
hhv? максимальное значение за какое-то число баров.
 

SV

New member
баркаунт графика в размере окна показывается.
Я так и понял уже. Тогда возникают вопросы:
Это так и должно быть (так и задумано)??
Как построить индюк по размеру графика а не окна??

Ведь индикаторы типа HHV(H,20) не зависят от размера окна!!! Как Ами его рассчитывает, интересно, если не таким же последовательным перебором как и я делал
напиши им, попроси объяснить :)
Хорош мысля... я об этом подумаю... ток надыть сначала походить на курсы англ.языка, а то понимать понимаю а написать вряд ли смогу :/
 
Your email address will not be publicly visible. We will only use it to contact you to confirm your post.
Сверху