home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PASCAL / ABACKTST.ZIP / STOCAS-P.05I < prev    next >
Encoding:
Text File  |  1991-10-31  |  2.1 KB  |  76 lines

  1. USES APROCEDU;
  2.  
  3. {STOCHASTICS %K   ( %D = RE-SMOOTHED %K )}
  4.  
  5. TYPE  HIGHNLOW = ARRAY[1..30] OF REAL;
  6.  
  7. CONST datafilename='STOCAS-P.05I'; {DONT CHANGE!}
  8.       PERCENTK =0.05; { << ENTER K SMOTHING VALUE}
  9.       BARS     =29  ; { << ENTER NUMBER OF BARS 1..10}
  10.  
  11. VAR CLOSE,HIGH,LOW,STOCHASTIC,SMOOTH,OS,oss,OLDOS:REAL;
  12.     HH,LL:REAL;
  13.     A,I,COLOR,ncolor:BYTE;
  14.     HIGHA:HIGHNLOW;
  15.     LOWA:HIGHNLOW;
  16.  
  17. PROCEDURE FINDHIGHNLOW;
  18.        BEGIN
  19.         HH:=1e-38;
  20.         LL:=1e38;
  21.         FOR A := 1 TO BARS DO
  22.           BEGIN
  23.            IF A<BARS THEN
  24.              BEGIN
  25.               HIGHA[A]:=HIGHA[A+1];
  26.               LOWA[A]:=LOWA[A+1];
  27.              END
  28.              ELSE
  29.               BEGIN
  30.                HIGHA[A]:=HIGH;
  31.                LOWA[A]:=LOW;
  32.               END;
  33.            IF HIGHA[A]>HH THEN HH:=HIGHA[A];
  34.            IF LOWA[A]<LL THEN LL:=LOWA[A];
  35.           END;{FOR}
  36.         IF I<BARS THEN
  37.              BEGIN
  38.               INC(I); HH:=HIGH; LL:=LOW;
  39.              END;
  40.        END;
  41.  
  42. {------------------------------------------------}
  43.  BEGIN
  44.   Howtochart(line,HUNDREDPERCENT,datafilename);
  45.   FOR I := 1 TO 10 DO BEGIN HIGHA[I]:=0; LOWA[I]:=0; END;
  46.   I:=0;ncolor:=yellow;
  47.   SMOOTH:=50;OS:=50;OLDOS:=50;
  48.   REPEAT
  49.    READMARKETFILE;
  50.      CLOSE:=MARKETDATA.LAST;
  51.      HIGH:=MARKETDATA.HIGH;
  52.      LOW:=MARKETDATA.LOW;
  53.    FINDHIGHNLOW;
  54.    STOCHASTIC:=100*(CLOSE-LL)/(HH-LL+0.0005);{ 0.0005 TO STOP DIVISION BY ZERO}
  55.    SMOOTH:=(SMOOTH*(1-PERCENTK))+(PERCENTK*STOCHASTIC);
  56.    IF (SMOOTH>50) THEN  {COLORS}
  57.         BEGIN
  58.          IF (SMOOTH>70) THEN COLOR:=LIGHTRED ELSE COLOR:=GREEN;
  59.         END
  60.         ELSE
  61.         BEGIN
  62.          IF (SMOOTH<17) THEN COLOR:=lightGREEN ELSE COLOR:=RED;
  63.         END;
  64.    OS:=OS+SMOOTH-50;
  65.    {IF OS>OLDOS THEN COLOR:=GREEN ELSE COLOR:=RED;}
  66.    OLDOS:=OS;
  67.    if color=lightgreen then ncolor:=green;
  68.    if color=lightred then ncolor:=red;
  69.    indicatordata.data:=SMOOTH;
  70.    indicatordata.color:=nCOLOR;
  71.    Writechartdatafile;
  72.    Nexttime;
  73.   UNTIL Alldone;
  74.   Done;
  75.  END.
  76.