home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1993 #2 / Image.iso / finance / tas515dm.zip / EXAMPLES.ZIP / GAPS.TAS < prev    next >
Text File  |  1991-11-30  |  4KB  |  124 lines

  1. { Written by Jim Camenos, May 29, 1991
  2.   Prodigy code VNGH10A
  3.   Lists tickers that Gapped Open and stayed Gapped for the day }
  4. {
  5. June 6, 1991 revision 1 - Its important to know where the gap
  6.   occurred.  I'm using '+'s to identify the gap. +++ = gap happened
  7.   the day after a peak or trough, ++ = the gap less than 3% from the
  8.   peak or trough and + = a gap which is greater than 3% from the
  9.   peak or trough.  A + may be a runaway gap or exhaustion gap.
  10.   A ++ might be a runaway gap or breakout gap.  A +++ might be
  11.   a breakout gap.
  12.  
  13.   The BUY and SELL remarks in the report are
  14.   purely based on pricing theory.  Check your charts before
  15.   making any trading decisions.
  16.  
  17.   The price to the left of the full name is what this program determined
  18.   as the trough or peak price.  The price to the right of the full name
  19.   is todays closing, then the price gap and percentage.
  20.  
  21.   June 7, 1991 revision 2 - Relating to the size of the gap.  I dont know
  22.   if the size of the gap is important.  The word 'GAP' appears with an
  23.   '*' following or no '*'.  The '*' indicates that the move, eg, yesterdays
  24.   low to today high or vice versa for a down move, is greater than the
  25.   average trading range + 1 standand deviation.
  26.  
  27.   June 7 1991 - Volume strength indicator is adding a 'V' to the word 'GAP'
  28.   which apprears on the analysis 'GAP*V' or 'GAP V'.  The "V" indicates
  29.   that the volume on the day of the gap was greater than or equal to the
  30.   average daily volume + 2 standard deviations.
  31.  }
  32. #max_quotes 50
  33. #OUTPUT_FILE 'gaps.LST'
  34. #scan_date 910610;
  35. tday = date;
  36. trd := '    ';
  37.  
  38. q = quote_count;
  39. vx = sum(v,q)/q;
  40. vs = std(v,q);
  41. vs2 =vs+vs+vx;
  42. if v >= vs2 then
  43.   vi = 'V' else
  44.   vi = ' ';
  45.  
  46. if first_ticker = 1 then
  47.   begin
  48.   writeln('\n','P/T  : Peak or Trough from the Gap');
  49.        writeln('SV   : "*" under "S" = gap > avg trading range + 1 Std Deviation');
  50.        writeln('      "V" under "V" = volume strength > avg daily volume + 2 Std Deviations');
  51.        writeln('123  : could be +, ++, +++. Refer to script documentation',);
  52.        writeln('Alert: Refer to script documentation','\n');
  53.   writeln('Dir Ticker       P/T Full Name            Gap    SV  Length123     Move Alert');
  54.   end;
  55.  
  56. gosub true_range;
  57.  
  58. if h[-1] > h[-2] and l[-1] > l[-2] and h > h[-1] and l > l[-1] then
  59.    begin
  60.    if (h[-1]-l[-1])>(h[-2]-l[-2]) then
  61.    a = (((h[-1]-l[-1])*1.40)+h[-1]) else
  62.    a = (((h[-2]-l[-2])*1.40)+h[-1]);
  63.    if h >= a and (c < h[-1] or c = l) then trd ='SELL';
  64.    end;
  65. if h < h[-1] and l < l[-1] and l < l[-2] then
  66.   begin
  67.   a = l[-1]-((h[-1]-l[-1])*1.40);
  68.   if l <= a and (c > l[-1] or c = h) then trd='BUY ';
  69.   end;
  70. if h[-1] <= h[-2] and l[-1] >= l[-2] then
  71.   if h < h[-1] and l < l[-1] and c < l[-1] then
  72.      trd = 'SELL' else
  73.   if h > h[-1] and l >= l[-1] and c > h[-1] then
  74.      trd = 'BUY ';
  75.  
  76. if l > h[-1] then begin
  77.  xtr1 = trough(l,1);
  78.  xtr2 = trough(l,2);
  79.  xtr1c = h[xtr1]*1.03;
  80.  if l[xtr1] > l[xtr2] and l > xtr1c then
  81.     xtrf = '+  '
  82.     if l > xtr1c then
  83.     xtrf = '+  ' else
  84.     xtrf = '++ ';
  85.  if xtr1 = -1 then
  86.     xtrf = '+++';
  87.  if (h-l[-1]) >= over_sd then
  88.     xsd = '*' else
  89.     xsd = ' ';
  90.  
  91.  gap = l-h[-1];
  92.  gap_perc = (gap/h[-1])*100;
  93.  writeln(' UP ',ticker,l[xtr1],' ',fullname,c[0],' Gap',xsd,vi,gap,xtrf,' ',gap_perc,'%',' ',trd);
  94. end;
  95. if h < l[-1] then begin
  96.  xtr1 = peak(h,1);
  97.  xtr2 = peak(h,2);
  98.  xtr1c = l[xtr1]-(l[xtr1]*.03);
  99.  if h[xtr1] > h[xtr2] and h < xtr1c then
  100.     xtrf = '+  ' else
  101.     if h < xtr1c then
  102.     xtrf = '+  ' else
  103.     xtrf = '++ ';
  104.  if xtr1 = -1 then
  105.     xtrf = '+++';
  106.  if (h[-1]-l) >= over_sd then
  107.     xsd = '*' else
  108.     xsd = ' ';
  109.  gap = l[-1]-h;
  110.  gap_perc =(gap/l[-1])*100;
  111.  writeln(' DN ',ticker,h[xtr1],' ',fullname,c[0],' Gap',xsd,vi,gap,xtrf,' ',gap_perc,'%',' ',trd,);
  112. ;
  113. end;
  114.  
  115. :true_range
  116. tx : array;
  117. tx = tr();
  118. x = quote_count;
  119. avg_tx = sum(tx,x)/x;
  120. sd = std(tx,x);
  121. over_sd = avg_tx+sd;
  122. return;
  123. 
  124.