home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1993 #2 / Image.iso / finance / tas515dm.zip / EXAMPLES.ZIP / DOTDASH.TAS < prev    next >
Text File  |  1992-10-30  |  2KB  |  51 lines

  1.     Dot-Dash system 
  2.     The Dot-Dash system is rather simple. For each date in the 
  3.     price data, a "dot" is indicated 
  4.         when the current close is higher than the previous close 
  5.             OR
  6.         when the current close is the same as the previous close AND
  7.         the previous day had a "dot".
  8.     Accumulate the "dots" over a period specified by the caller
  9.     for a "Count" period. 
  10.     Take a simple moving average of the number of "dots" over a
  11.     second range called the "Average".
  12.     To run this script with the default Count(50) and Average(8), just 
  13.     type 
  14.         TAS DOTDASH tickerListName
  15.         where tickerListName is the name of the "Ticker List" to run
  16.     To run this script with the custom Count and Average, just 
  17.     type 
  18.         TAS DOTDASH tickerListName @Count=cc;Average=pp;Dump=d
  19.             where
  20.                 cc is the "Count" over which to sum the "dots"
  21.                 pp is the "Average" over which to average the count of dots
  22.                 d  is 1 if you want the values 'dumped' to the output file
  23. }
  24. #Output_File DotDash.Lst
  25. If Count = 0 Then
  26.     Count = 50;         { ** Change this to change default Count **}
  27. If Average = 0 Then
  28.     Average = 8;        { ** Change this to change default Average **}
  29. Dots is an Array;       { An array of "dots" }
  30. ACount is an Array;     { An array of Count of "dots" over Count period }
  31. AAverage is an Array;    { An SMA of Count over Average period }
  32. Dots = Roc(C,1,'$');
  33. Dots = Div(Dots,Abs(Dots)); { Make the dots +1, -1 or 0 }
  34. For i = 2; i <= Quote_Count; i = i+1;
  35. Begin
  36.     if (Dots[i] = -1) then Dots[i] =0.0 { Down Day }
  37.     else
  38.     if (Dots[i] = 0 and Dots[i-1] = 1) then Dots[i] = 1.0;
  39. End;
  40. ACount = Sum(Dots,Count);
  41. AAverage = Mov(Acount,Average,'S');
  42. OpenGraph(2);
  43. Graph(1,'Close '+Format(C[0],'%8.3f'));
  44. Graph(Acount,Format(Count,'%3.0f Bar Count - '+Format(Acount[0],'%4.0f')),
  45.       AAverage,Format(Average,'%3.0f Bar Moving Average - '+
  46.       Format(AAverage[0],'%5.2f')));
  47. CloseGraph();
  48. if Dump <> 0 Then
  49.     Dump_Array(o,h,l,c,Dots,Acount,AAverage);
  50.