Grupy dyskusyjne   »   pl.biznes.wgpw   »   Rysowanie lini wyznaczaj?cej poziom - AFL.

Rysowanie lini wyznaczaj?cej poziom - AFL.

Data: 2011-02-20 16:19:37
Autor: Endriu
Rysowanie lini wyznaczaj?cej poziom - AFL.
Ostatnio kolega DJ(Dominik) zapodał kawałek kodu wyznaczający np. maksimum z ostatniego miesiąca.
"Kodowo" wygląda to mniej więcej tak:

"[...]
MaxOstMiesiaca=TimeFrameGetPrice("H",1*inMonthly,0);
Plot(MaxOstMiesiaca,"",colorRed,styleStaircase);
_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();
[...]"

Ja chciałbym sobie troszkę zmodyfikować kodzik, tak aby w/w wykres miesięcznych maxów nie wyglądał jako wstęga, którą Amibroker ciągnie od poczatku do końca wykresu...:

http://www.fotosik.pl/pokaz_obrazek/pelny/8a2daeb63c15b8c2.html

.... tylko linią poziomą mającą poczatek w wpunkcie wystąpienia ostatniego maksa,  a koniec w ostatnim ticku wykresu:

http://www.fotosik.pl/pokaz_obrazek/pelny/087d91e5e026ce12.html

Rozumiem, że należało by wykorzystać Line Array:
http://www.amibroker.com/guide/afl/afl_view.php?id=250

gdzie y0 i y1 będa równe tyle samo:

y0=MaxOstMiesiaca=TimeFrameGetPrice("H",1*inMonthly,0);
y1=MaxOstMiesiaca=TimeFrameGetPrice("H",1*inMonthly,0);

Problem w tym, że nie wiem jak zabrać się za "zaczepienie" x0 i x1 ......


--
Pozdrawiam
Endriu
http://drendriu.ovh.org/

Data: 2011-02-20 23:19:09
Autor: Architekt
Rysowanie lini wyznaczaj?cej poziom - AFL.
Dnia Sun, 20 Feb 2011 16:19:37 +0100, Endriu napisał(a):

należało by wykorzystać Line Array:

należałoby użyć trochę kombinacji podstawowych funkcji.
na początek:

MaxOstMiesiaca=TimeFrameGetPrice("H",1*inMonthly,0);
Plot(ValueWhen(H>=Maxostmiesiaca,Maxostmiesiaca),"",colorRed,styleLine);

_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();

--
Pozdrawiam, Wojciech_Filipek
www.amizone.prv.pl

Data: 2011-02-21 08:03:04
Autor: Endriu
Rysowanie lini wyznaczaj?cej poziom - AFL.
MaxOstMiesiaca=TimeFrameGetPrice("H",1*inMonthly,0);
Plot(ValueWhen(H>=Maxostmiesiaca,Maxostmiesiaca),"",colorRed,styleLine);

Jeżeli ValueWhen miałoby "aktualizować" MaxOstMiesiaca to chyba nie działa tak jak trzeba...

http://www.fotosik.pl/pokaz_obrazek/pelny/23d42696d258527a.html



--
Pozdrawiam
Endriu
http://drendriu.ovh.org/

Data: 2011-02-21 08:32:40
Autor: Endriu
Rysowanie lini wyznaczaj?cej poziom - AFL.
Jeśli mogę to wrzucę taki kawałek kodu:

"[...]
MaxOstMiesiaca=TimeFrameGetPrice("H",1*inMonthly,0);
Plot(MaxOstMiesiaca,"",colorRed,styleStaircase);
y0=MaxOstMiesiaca;
y1=y0;
x0=ValueWhen( Cross(Maxostmiesiaca,H), 1);
x1=BarCount-1;
Line = LineArray( x0, y0, x1, y1,0);
Plot(C, "C", colorWhite, styleCandle);
Plot( Line, "Trend line", colorBlue );

_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();

[...]"

Wywala błąd na Line array. Jeśli mogę prosić o korektę iw skazanie przyczyny wywalania errora...

--
Pozdrawiam
Endriu
http://drendriu.ovh.org/

Data: 2011-02-21 21:13:13
Autor: Endriu
Rysowanie lini wyznaczaj?cej poziom - AFL.
x0=ValueWhen( Cross(Maxostmiesiaca,H), 1);

Jakby ten ValueWhen zamienić na jakiś taki  "ThickWhen" - dobrze kombinuję ..... ?.


--
Pozdrawiam
Endriu
http://drendriu.ovh.org/

Data: 2011-03-05 22:30:13
Autor: Endriu
Rysowanie lini wyznaczaj?cej poziom - AFL.
Jakby ten ValueWhen zamienić na jakiś taki  "ThickWhen" - dobrze kombinuję .... ?.

Jakby ktoś kiedyś szukał.....

"
[...]
MaxOstRok=HHV(H,290);
y0= LastValue(MaxOstRok);
y1= LastValue(MaxOstRok);
x0= BarCount-LastValue(HHVBars(H, 74))-1;
x1= BarCount-1;
Line = LineArray( x0, y0, x1, y1,0);
Plot( Line, "Max 290", colorBlue );
_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();

[...]".


--
Pozdrawiam
Endriu
http://drendriu.ovh.org/

Rysowanie lini wyznaczaj?cej poziom - AFL.

Nowy film z video.banzaj.pl więcej »
Redmi 9A - recenzja budżetowego smartfona