home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1993 #2 / Image.iso / finance / tas515dm.zip / EXAMPLES.ZIP / BIG-CHG2.TAS < prev    next >
Text File  |  1992-12-12  |  6KB  |  149 lines

  1. { BIG-CHNG.TAS    JEC     03 JULY 1991           }
  2. { Rev.: December 5, 1992  Added Close price, IBD Vol % and 50dma of Vol
  3.                           Scott Cunningham, Prodigy ID RXVP06A}
  4. { Rev.: October 26, 1992   Added VOLCHEK and printout  }
  5. { Rev.: August 21, 1991       10:35 PM                }
  6. {}
  7. {
  8.   This script provides a fast way to check your watch list for any stocks
  9.   that have had more than $1.50 change in value since previous day.  It
  10.   also alerts you to stocks which have split, since their 'adjusted'
  11.   value will look like a BIG down change!
  12.  Most of the indexes have been skipped, since they will often be large
  13.  changes.  If you want to monitor them also, simply delete the appropriate
  14.       if TICKER =
  15.   line(s) from the next section.
  16.   This scrpt was written by:  Jim Cooper, P.O.Box 73, Paramus, NJ 07653.
  17.                                 Prodigy ID:  NSWF53C
  18.   If you find this utility useful, a shareware donation of $5 would
  19.   help assure further such utilities being released in the future.
  20.   (Send $10 if you would like to receive, in the mail, a disk with
  21.   the next revision/enhancement of this utility.)  Thank you.
  22. }
  23. {-------------------------------------------------------------------}
  24. #OUTPUT_FILE 'c:\TAS\lst\atasfile.lst'
  25. if TICKER = 'AMEX'  then return;
  26. if TICKER = 'DJ-65' then return;
  27. if TICKER = 'NSDQ' then return;
  28. if TICKER = 'OEX' then return;
  29. if TICKER = 'DJIA' then return;
  30. if TICKER = 'DJTA' then return;
  31. if TICKER = 'SP-500' then return;
  32. if TICKER = 'NYSE' then return;
  33. if TICKER = 'NYAD'  then return;
  34. if TICKER = 'NYDE'  then return;
  35. if TICKER = 'NYUC'  then return;
  36. if TICKER = 'UVDV'  then return;
  37. if TICKER = 'HI-LO' then return;
  38. {-------------------------------------------------------------------}
  39. #MAX_QUOTES 50
  40. if quote_count < 50 then return;
  41. if first_ticker then
  42.     begin
  43.     linez = 99;
  44.     pagez = 1;
  45.     gosub header;
  46.     end;
  47. MV50 : array;
  48. MV50 = mov(v,50,'s');
  49. pctv = ((v[0]-mv50)/mv50)*100;
  50. level = 1;
  51. {-----------------------------------------}
  52. {General conditions}
  53. PRCHNG = (C - C[-1]);                   {Change in price since yestday}
  54. PCTPRC = (PRCHNG * 100)/(C[-1])         { % change in price since ystdy}
  55. {}
  56. VOLCHNG = int(100*(V - V[-1])/V[-1]);  {Change in volume since yestday}
  57. {}
  58. {-------------------------------------------------------------------}
  59. {-------------------------------------------------------------------}
  60. :START
  61. {-------------------------------------------------------------------}
  62.     gosub PRC_CHNG;
  63.     gosub VOLCHEK;
  64.     gosub writedata;
  65. return;                 { Return for next ticker processing }
  66. {-------------------------------------------------------------------}
  67. {END                                                                }
  68. {-------------------------------------------------------------------}
  69. {                    SUBROUTINES
  70. {-------------------------------------------------------------------}
  71. {-------------------------------------------------------------------}
  72. :PRC_CHNG
  73. IF (PRCHNG > 1.5) OR (PRCHNG < -1.5)
  74.     THEN begin
  75.           pt = pt + 1;
  76.     writeln
  77. (trim(Ticker),' - Big Price Change of $',PRCHNG,' ',
  78. '(',trim(format(PCTPRC,'%5.1f')),'%)',' ','  to Close at $',c,'\n');
  79.     linez = (linez + 2);
  80.     end;
  81.     return;              { Return from sub-routine loop }
  82. {-------------------------------------------------------------------}
  83. :writedata
  84.     if pt = 0 then return;
  85.     else
  86.     begin
  87. writeln
  88. ('--------------------------------------------------------------------');
  89.     linez = (linez + 1);
  90.     pt = 0;
  91.     end;
  92.     return;              { Return from sub-routine loop }
  93. {-------------------------------------------------------------------}
  94. :header
  95. if linez >= 47 then
  96.   begin
  97.     write(dates[0],'       Page',int(pagez));
  98.     writeln('                 C:\\TAS\\BIG-CHG2.LST');
  99.     write('----------------------------------------');
  100.     writeln('-------------------------------');
  101.     linez = 5;
  102.     pagez = pagez + 1;
  103.   end;
  104. {-------------------------------------------------------------------}
  105. if first_ticker
  106.   THEN begin
  107.     linez = 13;
  108.     end;
  109. return;                   { Return from sub-routine loop }
  110. {-------------------------------------------------------------------}
  111. :VOLCHEK
  112. if (V[0] = 0) or (MV50 = 0) or (pt = 0) then return;
  113. else;
  114. if V[0] >= 4*MV50 then     { if vol. today > 4 times 50-day MA.... }
  115.     begin
  116.      writeln(ticker,' volume MORE THAN 4 TIMES 50-day MA ...');
  117.     linez = (linez + 1);
  118.     goto volume;
  119.     end;
  120. else;
  121. if V[0] >= 3*MV50 then     { if vol. today > triple 50-day mov.avg.... }
  122.     begin
  123.      writeln(ticker,' volume MORE THAN TRIPLE 50-day MA ...');
  124.     linez = (linez + 1);
  125.     goto volume;
  126.     end;
  127. else;
  128. if V[0] >= 2*MV50 then     { if vol. today > twice 50-day mov.avg.... }
  129.     begin
  130.      writeln(ticker,' volume MORE THAN DOUBLE 50-day MA ...');
  131.     linez = (linez + 1);
  132.     goto volume;
  133.     end;
  134. else;
  135. if V[0] <= MV50/2 then     { if vol. today < half 50-day mov.avg.s..}
  136.     begin
  137.      writeln(ticker,' volume LESS THAN HALF 50-day MA ...');
  138.     linez = (linez + 1);
  139.     goto volume;
  140.     end;
  141. :volume
  142. writeln
  143. ('Volume today of ',trim(format(V[0]*100,'%9.0f')),' is ',int(pctv),
  144. ' percent   of 50-day MA of ',trim(format(MV50[0]*100,'%9.0f')),'');
  145.     linez = (linez + 1);
  146.     pt = pt + 1;
  147. return;                   { Return from sub-routine loop }
  148. {-------------------------------------------------------------------}
  149.