door acp010107 » zo 02 maart 2003, 10:03
Hoi Chris,
Hierbij denk ik een betere oplossing. Hij is misschien wat lang geworden, maar als je hem opneemt in een systeem of i.d. kunnen o.m. het commentaar, de plots en de printregels verwijderd worden.
{-------------------------------------------------------
[INFO]
Author= aad c. pronk
Created=2003-03-02
Modified=2003-03-02
Reference=
Usage=
[PLOTS]
PLOT1=1,-3,8421504,8421504,0,0,1
PLOT2=1,-2,8421504,8421504,0,0,1
PLOT3=1,-2,8421504,8421504,0,0,1
PLOT4=1,-2,8421504,8421504,0,0,1
[INPUTS]
[DESCRIPTION]
[END]
-------------------------------------------------------}
value function xHoogLaagDag
{indicator voor het bepalen van de hoogste High, de ?
laagste Low, de hoogste Close
en de laagste Close van een dag}
begin
{---------- variabelen ----------}
value xDatumLopendeDag,
? ? ? xHoogsteHigh,
? ? ? xLaagsteLow,
? ? ? xHoogsteClose,
? ? ? xLaagsteClose;
{---------- verwerking ----------}
? ? {---------- eerste bar ----------}
? ? ? ? ?{op de eerste bar worden de diverse gegevens ?
die vastgehouden moeten
? ? ? ? ? worden gelijk gemaakt aan de
corresponderende ?gegevens van die bar}
? ? ? ? ? if CurrentBAR = 1
? ? ? ? ? then begin
? ? ? ? ? ? ?xDatumLopendeDag := Date;
? ? ? ? ? ? ?xHoogsteHigh := High;
? ? ? ? ? ? ?xLaagsteLow := Low;
? ? ? ? ? ? ?xHoogsteClose := Close;
? ? ? ? ? ? ?xLaagsteClose := Close;
? ? ? ? ? end;
? ? {---------- volgende bars ----------}
? ? ? ? ? {als de Date (datum in de lopende bar) hoger is
dan
? ? ? ? ? ?de Date in de vorige bar (m.a.w. de datum is
een dag opgeschoven),
? ? ? ? ? ?dan worden de diverse gegevens die
vastgehouden worden gewijzigd in
? ? ? ? ? ?de corresponderende gegevens van die dag }
? ? ? ? ? if CurrentBar > 1 and Date > xDatumLopendeDag
? ? ? ? ? then begin
? ? ? ? ? ? ?xDatumLopendeDag := Date;
? ? ? ? ? ? ?xHoogsteHigh := High;
? ? ? ? ? ? ?xLaagsteLow := Low;
? ? ? ? ? ? ?xHoogsteClose := Close;
? ? ? ? ? ? ?xLaagsteClose = Close;
? ? ? ? ? end;
? ? ? ? ? {als de Date (datum in de lopende bar) gelijk is
aan ?
? ? ? ? ? ?de Date in de vorige bar (m.a.w. het is dezelfde
datum) dan worden
? ? ? ? ? ?de diverse gegevens die vastgehouden worden
aangepast indien de nieuwe
? ? ? ? ? ?waarden, al naar gelang, hoger of lager zijn}
? ? ? ? ? if CurrentBar > 1 and Date = xDatumLopendeDag
? ? ? ? ? then begin
? ? ? ? ? if High > xHoogsteHigh then xHoogsteHigh := ?
High;
? ? ? ? ? if Low < xLaagsteLow then xLaagsteLow := Low;
? ? ? ? ? if Close > xHoogsteClose then xHoogsteClose :=
Close; ?
? ? ? ? ? if Close < xLaagsteClose then xLaagsteClose :=
Close;
? ? ? ? ? end;
?
{---------- printregels ----------}
? ? ?{voor controledoeleinden, als je in de grafiek
een "report" opneemt
? ? ? kun je onder "samenvatting" een overzicht van de
gegevens per bar zien}
? ? ? ? Print
? ? ? ? ? ? ? ? ? ?("|Dag ",xDatumLopendeDag,
? ? ? ? ? ? ? ? ? ? "|Tijd ",Time,
? ? ? ? ? ? ? ? ? ? "|H ",High:4:0,
? ? ? ? ? ? ? ? ? ? "|HH ",xHoogsteHigh:4:0,
? ? ? ? ? ? ? ? ? ? "|L ",Low:4:0,
? ? ? ? ? ? ? ? ? ? "|LL ",xLaagsteLow:4:0,
? ? ? ? ? ? ? ? ? ? "|C ",Close,
? ? ? ? ? ? ? ? ? ? "|HC ",xHoogsteClose:4:0,
? ? ? ? ? ? ? ? ? ? "|LC ",xLaagsteClose:4:0);
{---------- plot ----------} ? ? ? ? ? ?
? ? ?{kan eveneens gebruikt worden bij de controle van
de uitkomst van deze
? ? ? indicator}
? ? ? Plot1(xHoogsteHigh,'High van de dag');
? ? ? Plot2(xLaagsteLow,'Low');
? ? ? Plot3(xHoogsteClose,'Hoogste Close');
? ? ? Plot4(xLaagsteClose,'Laagste Close');
? ?end;;
Wellicht heeft iemand anders een betere oplossing.
Eventuele reacties worden met belangstelling
tegemoet gezien.
M.vr.gr.,
Aad