home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1993 #2 / Image.iso / finance / tas515dm.zip / EXAMPLES.ZIP / VOLBRK.TAS < prev    next >
Text File  |  1992-03-22  |  3KB  |  86 lines

  1. {
  2.    SCRIPT : VOLBRK.TAS
  3.    Author : Peter Ross
  4.      Date : 12/12/91
  5. This script will SCREEN for volume breakouts of stocks that closed at the
  6. same or higher than yesterday, and are 15% or less from their 52 week high.
  7. In addition, it will ALERT you to those stocks that have had a 30 day price
  8. breakout, and when a new high has been reached.
  9. NOTE: STOCKS IN DATABASE WITH LESS THAN 262 QUOTES WILL NOT BE FLAGGED.
  10. }
  11. #MAX_QUOTES 262
  12. #OUTPUT_FILE 'VOLBRK.LST' N
  13. { Parameter settings follow.
  14.   These parameters can be changed to suit you.
  15. }
  16. PRICE_BREAKOUT_PERIOD = 30;     { Price breakout lookback period}
  17. VOL_BREAKOUT_PERIOD = 30;       { Volume breakout lookback period}
  18. VOL_PERCENT         = 150;      { Percentage for VOLUME BREAKOUT}
  19. { Declare various arrays to hold the results of indicators  }
  20. HHV_A : ARRAY;    { Place to save HHV}
  21. VOL_A : ARRAY;    { Place to save Volume Moving average}
  22. HHV_A = HHV(C,PRICE_BREAKOUT_PERIOD);
  23. VOL_A = MOV(V,VOL_BREAKOUT_PERIOD,'S');
  24. PRICE_BREAKOUT = 0;
  25. VOL_BREAKOUT   = 0;
  26. {The next few values are for finding the percentage from the 52 week high.
  27. }
  28. high_value := HHV(h,52*5);        { compute high over 52 weeks }
  29. off_high_value := ((high_value - c[0]) / high_value) * 100;
  30. if  CLOSE OF TODAY IS GREATER THAN HHV_A OF YESTERDAY THEN
  31.     begin
  32.       PRICE_BREAKOUT = 1;
  33.     end;
  34. if VOLUME OF TODAY IS GREATER THAN
  35.    VOL_PERCENT/100 * VOL_A OF YESTERDAY THEN
  36.     begin
  37.       VOL_BREAKOUT = (VOLUME OF TODAY/VOL_A OF YESTERDAY) * 100;
  38.     end;
  39. IF FIRST_TICKER THEN
  40. begin
  41. TOTAL := 0;               {Total Companys in your Directors}
  42. VOL_COUNT = 0;            {Total Volume Breakouts}
  43. PRICE_COUNT = 0;          {Total Price Breakouts}
  44. NH_COUNT = 0;             {Total New Highs}
  45. writeln(DATE,'\n');
  46. WRITELN(
  47. '                            CURR    PREV    CURR   % OFF'
  48. );
  49. WRITELN(
  50. 'TICKER  NAME               CLOSE   CLOSE   Vol %    HIGH'
  51. );
  52. WRITELN(
  53. '------------------------  ------  ------  -------  -----'
  54. );
  55. end;
  56. TOTAL := TOTAL + 1;
  57. IF VOL_BREAKOUT
  58.    AND OFF_HIGH_VALUE < 16
  59.    AND CLOSE OF TODAY >= CLOSE OF YESTERDAY
  60.     THEN BEGIN
  61.      VOL_COUNT = VOL_COUNT + 1;
  62.      WRITE(ticker,fullname,close, close of yesterday,' ',
  63.          ((volume/VOL_A[-1]))*100,'%',INT(off_high_value),'%');
  64.     IF high_value <= h     { today's high is new high  }
  65.      then
  66.     write('      New High ');
  67.     writeln();             { end the line with a 'newline'}
  68.     IF PRICE_BREAKOUT
  69.      THEN BEGIN
  70.         WRITELN('\t\t* PRICE BREAKOUT *');
  71.         writeln('          ~~~~~~~~~~~~~~');
  72.         PRICE_COUNT = PRICE_COUNT + 1;
  73.         END;
  74.     IF HIGH_VALUE <= H THEN
  75.     NH_COUNT = NH_COUNT + 1;
  76.  
  77. end;
  78. IF LAST_TICKER
  79.  THEN BEGIN
  80. WRITELN('\n','Total Companies Processed','  ',INT(TOTAL));
  81. WRITELN('         Volume Breakouts','  ',INT(VOL_COUNT));
  82. WRITELN('          Price Breakouts','  ',INT(PRICE_COUNT));
  83. WRITELN('                New Highs','  ',INT(NH_COUNT));
  84. writeln();
  85. END;