home *** CD-ROM | disk | FTP | other *** search
- USES APROCEDU;
-
- {STOCHASTICS %K ( %D = RE-SMOOTHED %K )}
-
- TYPE HIGHNLOW = ARRAY[1..30] OF REAL;
-
- CONST datafilename='STOCAS-P.05I'; {DONT CHANGE!}
- PERCENTK =0.05; { << ENTER K SMOTHING VALUE}
- BARS =29 ; { << ENTER NUMBER OF BARS 1..10}
-
- VAR CLOSE,HIGH,LOW,STOCHASTIC,SMOOTH,OS,oss,OLDOS:REAL;
- HH,LL:REAL;
- A,I,COLOR,ncolor:BYTE;
- HIGHA:HIGHNLOW;
- LOWA:HIGHNLOW;
-
- PROCEDURE FINDHIGHNLOW;
- BEGIN
- HH:=1e-38;
- LL:=1e38;
- FOR A := 1 TO BARS DO
- BEGIN
- IF A<BARS THEN
- BEGIN
- HIGHA[A]:=HIGHA[A+1];
- LOWA[A]:=LOWA[A+1];
- END
- ELSE
- BEGIN
- HIGHA[A]:=HIGH;
- LOWA[A]:=LOW;
- END;
- IF HIGHA[A]>HH THEN HH:=HIGHA[A];
- IF LOWA[A]<LL THEN LL:=LOWA[A];
- END;{FOR}
- IF I<BARS THEN
- BEGIN
- INC(I); HH:=HIGH; LL:=LOW;
- END;
- END;
-
- {------------------------------------------------}
- BEGIN
- Howtochart(line,HUNDREDPERCENT,datafilename);
- FOR I := 1 TO 10 DO BEGIN HIGHA[I]:=0; LOWA[I]:=0; END;
- I:=0;ncolor:=yellow;
- SMOOTH:=50;OS:=50;OLDOS:=50;
- REPEAT
- READMARKETFILE;
- CLOSE:=MARKETDATA.LAST;
- HIGH:=MARKETDATA.HIGH;
- LOW:=MARKETDATA.LOW;
- FINDHIGHNLOW;
- STOCHASTIC:=100*(CLOSE-LL)/(HH-LL+0.0005);{ 0.0005 TO STOP DIVISION BY ZERO}
- SMOOTH:=(SMOOTH*(1-PERCENTK))+(PERCENTK*STOCHASTIC);
- IF (SMOOTH>50) THEN {COLORS}
- BEGIN
- IF (SMOOTH>70) THEN COLOR:=LIGHTRED ELSE COLOR:=GREEN;
- END
- ELSE
- BEGIN
- IF (SMOOTH<17) THEN COLOR:=lightGREEN ELSE COLOR:=RED;
- END;
- OS:=OS+SMOOTH-50;
- {IF OS>OLDOS THEN COLOR:=GREEN ELSE COLOR:=RED;}
- OLDOS:=OS;
- if color=lightgreen then ncolor:=green;
- if color=lightred then ncolor:=red;
- indicatordata.data:=SMOOTH;
- indicatordata.color:=nCOLOR;
- Writechartdatafile;
- Nexttime;
- UNTIL Alldone;
- Done;
- END.