door Paul M » do 27 mei 2004, 22:42
Hallo Dirk,
Turtle Soup:
Indicator:
INPUT:LENGTH(20),PREV(4),ENTRYADD(10 POINTS);
VAR:HH(0),LL(0),NEWH(999),NEWL(999),Z(0),LEN(0),CDAYS(0),
?TSSELL(0),TSBUY(0);
ARRAY:HI[40](0),LO[40](99999);
{==== DAILY DATA ====}
IF DATACOMPRESSION=2 THEN BEGIN
?NEWH=NEWH+1;
?NEWL=NEWL+1;
?IF HH>0 AND NEWH>=PREV AND H>HH THEN BEGIN
? ?TSSELL=HH-ENTRYADD;
? ?PLOT1(TSSELL,"TS-Sell");
?END;
?IF LL>0 AND NEWL>=PREV AND L<LL THEN BEGIN
? ?TSBUY=LL+ENTRYADD;
? ?PLOT2(TSBUY,"TS-Buy");
?END;
?HH=HIGHEST(H,LENGTH);
?LL=LOWEST(L,LENGTH);
?IF H=HH THEN NEWH=0;
?IF L=LL THEN NEWL=0;
END;
{==== INTRADAY DATA ====}
IF DATACOMPRESSION=1 THEN BEGIN
?IF CURRENTBAR=1 THEN BEGIN
? ?LEN=MINLIST(LENGTH,39);
? ?IF LEN<1 THEN LEN=1;
?END; ? ?
?if D>D[1] then begin
? ?for value1=LEN downto 1 begin
? ? ?HI[value1]=HI[value1-1];
? ? ?LO[value1]=LO[value1-1];
? ?end;
?end;
?HI[0]=zzidhigh;
?LO[0]=zzidlow;
?IF D>D[1] THEN BEGIN
? ?CDAYS=CDAYS+1;
? ?NEWH=NEWH+1;
? ?NEWL=NEWL+1;
? ?HH=HI[LEN];LL=LO[LEN];
? ?FOR Z=1 TO LEN-1 BEGIN
? ? ?IF HI[Z]>HH THEN HH=HI[Z];
? ? ?IF LO[Z]<LL THEN LL=LO[Z];
? ?END;
? ?IF HI[1]=HH THEN NEWH=1;
? ?IF LO[1]=LL THEN NEWL=1;
?END;
?IF CDAYS>LEN THEN BEGIN
? ?IF HH>0 AND NEWH>=PREV AND zzIDHIGH>HH THEN BEGIN
? ? ?TSSELL=HH-ENTRYADD;
? ? ?PLOT1(TSSELL,"TS-Sell");
? ?END;
? ?IF LL>0 AND NEWL>=PREV AND zzIDLOW<LL THEN BEGIN
? ? ?TSBUY=LL+ENTRYADD;
? ? ?PLOT2(TSBUY,"TS-Buy");
? ?END;
?END;
END;
80-20:
Functie;
INPUT:PCNT(NUMERICSIMPLE);
VAR:SET(0),FACT(0);
FACT=MAXLIST(PCNT,100-PCNT)*.01;
SET=0;
IF OPEN>=(FACT*H)+((1-FACT)*L) AND C<=(FACT*L)+((1-FACT)*H) THEN SET=1;
IF OPEN<=(FACT*L)+((1-FACT)*H) AND C>=(FACT*H)+((1-FACT)*L) THEN SET=-1;
zz8020SETUP=SET;
Functie:
vars:htoday(0);
htoday=htoday[1];
if date>date[1] then htoday=0;
if h>htoday then htoday=h;
zzIDhigh=htoday;
Functie:
vars:lowtoday(99999);
lowtoday=lowtoday[1];
if date>date[1] then lowtoday=99999;
if l<lowtoday then lowtoday=l;
zzIDlow=lowtoday;
Indicator:
INPUT:PCNT(80),SETUPADD(15 POINTS),ENTRYADD(1 POINTS);
VAR:BSET(0),SSET(99999),BBUY(99999),SSELL(0),SET(0),
?POPEN(OPEN),FACT(0);
IF DATACOMPRESSION=2 THEN BEGIN
?SET=zz8020SETUP(PCNT);
?SSELL=0;
?SSET=99999;
?IF SET[1]=-1 THEN BEGIN
? ?SSET=H[1]+SETUPADD;
? ?IF H>=SSET THEN SSELL=H[1]-ENTRYADD;
? ?IF SSET<99999 THEN PLOT2(SSET,"SellSet");
? ?IF SSELL>0 THEN PLOT1(SSELL,"Sell8020");
?END;
?BBUY=99999;
?BSET=0;
?IF SET[1]=1 THEN BEGIN
? ?BSET=L[1]-SETUPADD;
? ?IF L<=BSET THEN BBUY=L[1]+ENTRYADD;
? ?IF BBUY<99999 THEN PLOT3(BBUY,"Buy8020");
? ?IF BSET>0 THEN PLOT4(BSET,"BuySet");
?END;
END;
IF DATACOMPRESSION=1 THEN BEGIN
?IF D>D[1] THEN BEGIN
? ?FACT=MAXLIST(PCNT,100-PCNT)*.01;
? ?SET=0;
? ?IF POPEN>=(FACT*zzIDHIGH[1])+((1-FACT)*zzIDLOW[1]) AND
? ? ? C[1]<=(FACT*zzIDLOW[1])+((1-FACT)*zzIDHIGH[1]) THEN SET=1;
? ?IF POPEN<=(FACT*zzIDLOW[1])+((1-FACT)*zzIDHIGH[1]) AND
? ? ? C[1]>=(FACT*zzIDHIGH[1])+((1-FACT)*zzIDLOW[1]) THEN SET=-1;
? ?POPEN=OPEN;
? ?SSELL=0;
? ?SSET=99999;
? ?IF SET=-1 THEN BEGIN
? ? ?SSET=zzIDHIGH[1]+SETUPADD;
? ? ?SSELL=zzIDHIGH[1]-ENTRYADD;
? ?END;
? ?BBUY=99999;
? ?BSET=0;
? ?IF SET=1 THEN BEGIN
? ? ?BSET=zzIDLOW[1]-SETUPADD;
? ? ?BBUY=zzIDLOW[1]+ENTRYADD;
? ?END;
?END;
?IF SSET<99999 THEN BEGIN
? ?PLOT2(SSET,"SellSet");
? ?IF zzIDHIGH>=SSET THEN BEGIN
? ? ?IF SSELL>0 THEN PLOT1(SSELL,"Sell8020");
? ?END;
?END;
?IF BSET>0 THEN BEGIN
? ?PLOT4(BSET,"BuySet");
? ?IF zzIDLOW<=BSET THEN BEGIN
? ? ?IF BBUY<99999 THEN PLOT3(BBUY,"Buy8020");
? ?END;
?END;
?IF D=D[1] THEN BEGIN
? ?IF zzIDHIGH[1]>=SSET[1] AND L<=SSELL[1] THEN SSET=99999;
? ?IF zzIDLOW[1]<=BSET[1] AND H>=BBUY[1] THEN BSET=0;
?END;
END;
Paul