home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-387-Vol-3of3.iso / t / tas501.zip / SCAN1.TAS < prev    next >
Text File  |  1993-02-25  |  4KB  |  109 lines

  1. #TITLE Screen for Price, Stochastic, or RSI breakouts                 
  2. {
  3.    SCRIPT : SCAN1.TAS
  4.    Screen for various conditions and create a report with
  5.    BUY/SELL Signals
  6.       x day price breakout
  7.       y day volume breakout
  8.       Stochastics buy/sell
  9.       RSI breakout
  10.    Author : Martin Moore
  11.    Date   : 11/9/91
  12. }
  13. #MAX_QUOTES 100
  14. #OUTPUT_FILE SCAN1.LST
  15. { SCAN Parameter settings follow.
  16.    These parameters can be changed to suit you
  17. }
  18. PRICE_BREAKOUT_PERIOD = 50;     { Price breakout lookback period}
  19. VOL_BREAKOUT_PERIOD = 30;       { Volume breakout lookback period}
  20. STOCH_PERIOD        = 14;       { Stoch %K period}
  21. STOCH_SLOW          = 3;        { Stoch %D slowing}
  22. RSI_PERIOD          = 14;       { RSI period}
  23. VOL_PERCENT         = 300;      { Percentage for VOLUME BREAKOUT}
  24. { Declare various arrays to hold the results of indicators  }
  25. HHV_A : ARRAY;    { Place to save HHV}
  26. VOL_A : ARRAY;    { Place to save Volume Moving average}
  27. STK_A : ARRAY;    { Place to save Stochastic %K}
  28. STD_A : ARRAY;    { Place to save Stochastic %D}
  29. RSI_A : ARRAY;    { Place to save RSI        }
  30. HHV_A = HHV(C,PRICE_BREAKOUT_PERIOD);
  31. VOL_A = MOV(V,VOL_BREAKOUT_PERIOD,'S');
  32. { Use STOCH_PERIOD day stoch with 3 day slowing}
  33. STK_A = STOCH(STOCH_PERIOD,3);
  34. { Compute %D as 3 day EMA of %K}
  35. STD_A = MOV(STK_A,STOCH_SLOW,'E');
  36. { RSI_PERIOD Day RSI}
  37. RSI_A = RSI(RSI_PERIOD);
  38. PRICE_BREAKOUT = 0;
  39. VOL_BREAKOUT   = 0;
  40. STOCH_BUY      = 0;
  41. STOCH_SELL     = 0;
  42. RSI_BUY        = 0;
  43. RSI_SELL       = 0;
  44. if  CLOSE OF TODAY IS GREATER THAN HHV_A OF YESTERDAY THEN
  45.     begin
  46.       PRICE_BREAKOUT = 1;
  47.     end;
  48. if VOLUME OF TODAY IS GREATER THAN
  49.    VOL_PERCENT/100 * VOL_A OF YESTERDAY THEN
  50.     begin
  51.       VOL_BREAKOUT = (VOLUME OF TODAY/VOL_A OF YESTERDAY) * 100;
  52.     end;
  53. if  STD_A OF YESTERDAY IS LESS THAN OR EQUAL TO 20 AND
  54.     STK_A OF YESTERDAY IS LESS THAN STD_A OF YESTERDAY AND
  55.     STK_A OF TODAY IS GREATER THAN STD_A OF TODAY THEN
  56.     begin
  57.        STOCH_BUY = 1;
  58.     end;
  59. if  STD_A OF YESTERDAY IS GREATER THAN OR EQUAL TO 80 AND
  60.     STK_A OF YESTERDAY IS GREATER THAN STD_A OF YESTERDAY AND
  61.     STK_A OF TODAY IS LESS THAN STD_A OF TODAY THEN
  62.     begin
  63.        STOCH_SELL = 1;
  64.     end;
  65. if  RSI_A of YESTERDAY IS LESS THAN OR EQUAL TO 30 AND
  66.     RSI_A OF TODAY IS GREATER THAN 30 THEN
  67.     begin
  68.        RSI_BUY    = 1;
  69.     end;
  70. if  RSI_A of YESTERDAY IS GREATER THAN 70 and RSI_A of TODAY
  71.     IS LESS THAN 70 THEN
  72.     begin
  73.        RSI_SELL   = 1;
  74.     end;
  75. IF FIRST_TICKER THEN
  76. begin
  77. WRITELN(
  78. '                           CURR     PREV   CURR        STOCH '
  79. );
  80. WRITELN(
  81. 'TICKER  NAME              CLOSE    CLOSE  Vol %    %K       %D       RSI'
  82. );
  83. WRITELN(
  84. '------------------------ ------- ------- ------- ------- ------- -------'
  85. );
  86. end;
  87. IF PRICE_BREAKOUT OR VOL_BREAKOUT OR STOCH_BUY OR STOCH_SELL OR
  88.    RSI_BUY OR RSI_SELL THEN
  89. BEGIN
  90.    WRITELN(ticker,fullname,close, close of yesterday,
  91.          ((volume/VOL_A[-1]))*100,'%%',stk_a,std_a,
  92.          RSI_A);
  93.    IF PRICE_BREAKOUT THEN
  94.         WRITELN('\t\t* PRICE BREAKOUT ABOVE ',
  95.         INT(PRICE_BREAKOUT_PERIOD), ' DAY HIGH OF CLOSE');
  96.    IF VOL_BREAKOUT THEN
  97.         WRITELN('\t\t* VOLUME BREAKOUT ',VOL_BREAKOUT,
  98.         ' PERCENT OVER LAST',
  99.         INT(VOL_BREAKOUT_PERIOD), ' DAYS');
  100.    IF STOCH_BUY THEN
  101.         WRITELN('\t\t* STOCH BUY');
  102.    IF STOCH_SELL THEN
  103.         WRITELN('\t\t* STOCH SELL');
  104.    IF RSI_BUY THEN
  105.         WRITELN('\t\t* RSI BUY');
  106.    IF RSI_SELL THEN
  107.         WRITELN('\t\t* RSI SELL');
  108. END;
  109.