home *** CD-ROM | disk | FTP | other *** search
- USES APROCEDU;
-
- CONST datafilename='VOLITL-P.05I'; {DONT CHANGE!}
- BUY=1;SELL=2;
-
- VAR HH,LL,RANGE,DISTANCE,HHCLOSE,LLCLOSE,SHORTSTOP,LONGSTOP,VOLITILITYSTOP:REAL;
- MBARS,CBARS,ICOLOR,BUYSELL:WORD;
-
- PROCEDURE RESETHHLL;
- BEGIN
- HH:=-5E20;
- LL:=5E20;
- END;
-
- BEGIN
- Howtochart(line,FOLLOWMARKET,datafilename);
- MBARS:=50;CBARS:=2;
- WITH MARKETDATA DO
- BEGIN
- READMARKETFILE;
- RESETHHLL;
- RANGE:=(HIGH-LOW);LLCLOSE:=LOW;HHCLOSE:=HIGH;
- IF LAST>((HIGH-LOW)/2) THEN
- begin
- BUYSELL:=sell;
- volitilitystop:=llclose+range*(19);
- end ELSE
- begin
- BUYSELL:=SELL;
- volitilitystop:=hhclose-range*(19);
- end;
- REPEAT
- READMARKETFILE;
- IF HH<high THEN HH:=high;
- IF LL>low THEN LL:=Low;
- RANGE:=(RANGE*(MBARS-1)+HIGH-LOW)/MBARS;
- LLCLOSE:=(LLCLOSE*(CBARS-1)+low)/CBARS;
- HHCLOSE:=(HHCLOSE*(CBARS-1)+high)/CBARS;
- DISTANCE:=19{*(HHCLOSE-LLCLOSE)};
- SHORTSTOP:=LLCLOSE+RANGE*DISTANCE;
- LONGSTOP:=HHCLOSE-RANGE*DISTANCE;
- CASE BUYSELL OF
- BUY:BEGIN
- IF LONGSTOP>VOLITILITYSTOP THEN VOLITILITYSTOP:=LONGSTOP;
- ICOLOR:=GREEN;
- IF LAST<VOLITILITYSTOP THEN
- BEGIN
- BUYSELL:=SELL;
- VOLITILITYSTOP:=SHORTSTOP;
- RESETHHLL;
- END;
- END;
- SELL:BEGIN
- IF SHORTSTOP<VOLITILITYSTOP THEN VOLITILITYSTOP:=SHORTSTOP;
- ICOLOR:=RED;
- IF LAST>VOLITILITYSTOP THEN
- BEGIN
- BUYSELL:=BUY;
- VOLITILITYSTOP:=LONGSTOP;
- RESETHHLL;
- END;
- END;
- END;
- indicatordata.data:=VOLITILITYSTOP;
- indicatordata.color:=ICOLOR;
- Writechartdatafile;
- Nexttime;
- UNTIL Alldone;
- END;
- Done;
- END.