home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1993 #2 / Image.iso / finance / tas515dm.zip / EXAMPLES.ZIP / SUMMARY.TAS < prev    next >
Text File  |  1992-07-20  |  26KB  |  584 lines

  1. {
  2. SUMMARY.TAS
  3. Script written to show advance/decline/unchanged figures of your ticker
  4. list, as well as corresponding volume level and average advance and
  5. decline percent. Also shows where the masses of stocks are migrating
  6. relative to their 52 week highs- a good market quality indicator. Market
  7. conditions which are improving will be confirmed by the masses of leading
  8. stocks migrating to the high side of their range. Similarly, a market
  9. which is deteriorating will show the leading stocks begin to move away
  10. from their highs.
  11. The latest days ticker list activity is displayed at the top of the
  12. summary- advances, declines and unchanged stocks. The 50 day average volume
  13. is computed for each stock, and what percent of average each traded today.
  14. The percentages each stock traded is added up, and then at the end the
  15. big figure is divided by the total number of tickers counted to get the
  16. "cumulative volume" percent shown at the top of the summary. The
  17. percentage traded today of all stocks advancing are added up separately,
  18. and divided by the total number of advancers to get the average
  19. volume percentage for all advancing stocks. The same is done for the
  20. decliners and the unchanged. For the advancing and declining stocks, the
  21. percentage lost or gained is computed and added to a tally. At the end
  22. the two tallys are divided by their respective number of advances or
  23. declines, to get the "average advance" and "average decline." The sum of
  24. all declining stocks tally is then subtracted from the sum af all
  25. advancing stocks tally, and the result is divided by the total number of
  26. tickers (yes including the unchanged ones). The result is the "average
  27. gain/loss" of the average stock on your ticker list that day. Combine
  28. that with the cumulative volume figure and you have a pretty good idea
  29. of how the "average" stock on your list behaved that day. Not a bad
  30. market indicator.
  31. If you wanted to create ticker lists composed of stocks in a particular
  32. industry or market sector, this script could be useful in tracking the
  33. wellbeing of that sector.
  34. In the off high percentages table, the "NH" row is also reflected in the
  35. "0-5" row. So if 3% of your stocks are making new highs, and 10% are
  36. 5-10% off their high, stocks making up the new high percentage will also
  37. be counted in the 0-5% off high percentage figure.
  38. Stocks with less than 51 days of data are passed. Also stocks which
  39. closed today at least 20% lower than yesterday are passed; the assumption
  40. being that these stocks probably split and have not yet been adjusted
  41. in your charting software. These stocks would significantly affect the
  42. average advance/decline figure in the summary if they were included.
  43. The summary report is saved in a file named "summary.lst".
  44. *
  45. SUMMARY.TAS written 4/6/92 by Tom Rategan. Prodigy PMGV10A.
  46. *
  47. Modified 4/17/92 to include columns indicating the number of tickers
  48. lost or gained for each percent figure in the table. Also tells the
  49. cumulative average volume for the past 5 days. This is computed by taking
  50. the average volume each ticker traded for the past 5 days and comparing
  51. the 5 day average to the 50 day average. Each 5 vs 50 percentage is added
  52. to a tally and at the end the tally is divided by the total number of
  53. tickers. The average 5 day gain/loss is also computed, taking the
  54. percentage change of each stock today from 5 days ago, tallying those
  55. which advanced and those which declined. At the end the decline tally
  56. is subtracted from the advancing tally and the result is divided by the
  57. total number of tickers. The five day average volume combined with the
  58. 5 day gain/loss indicates what the average ticker on your list has done
  59. in the past 5 days- a good general market indicator.
  60. *
  61. 4/20/92- Added 5 day a/d/u with coresponding volume and average percent
  62. adv and dec. Intended to give a slightly broader snapshot of market
  63. direction.
  64. If a stock closed higher today than it did 5 days ago, it is counted as
  65. an advance. Declines and unchanged stocks are similarly computed. Trading
  66. volume for the past 5 days is averaged and compared to the 50 day
  67. average for each stock. The 5 vs 50 percentage figure is added to a tally
  68. depending on whether the stock advanced, declined or was unchanged. The
  69. average five day volume is computed at the end for each of the a,d,& u
  70. groups. Average percent adv and dec is the average change advancing
  71. stocks are today compared to 5 days ago, and average decline is computed
  72. similarly.
  73. *
  74. Updated 7/20/92, added a median volume option. The median volume is the
  75. number in an array where half of the values are above it and the other
  76. half are below it. This can be a more meaningful measure of volume in
  77. this script. A stock will trade less than its 50 day average volume more
  78. often than not. This is because when it does trade over its 50VMA, the
  79. sky is the limit. Trading under the average is limited, so the 50VMA
  80. is a little deceptive when computing what a stock trades on an "average"
  81. day. Since most stocks trade more often under their 50VMA, the "overall"
  82. volume computed by this script will usually be 60% to 90%. And when it
  83. shows 100%, this means the average stock actually saw more volume
  84. than usual. Using the 50 day median volume for each stock as the yardstick
  85. for what it traded today gives an output which is easier to interpret-
  86. 100% will indicate normal volume for the average stock.
  87. You can control whether the script uses average or median volume with
  88. the "switch" in the first line of the script. Using the median option
  89. will run a HELLUVALOT slower so beware.
  90. }
  91. MEDIAN_SWITCH = 1;  { <<<< 0= average volume used, 1= median vol used}
  92. #OUTPUT_FILE 'SUMMARY.LST+'  {Delete '+' to save only the latest summary}
  93. #MAX_QUOTES 255
  94. {********** Set all of the "tally" variables to zero. *****************}
  95. IF FIRST_TICKER THEN BEGIN
  96. TICKS = 0;
  97. ADV = 0;
  98. DEC = 0;
  99. UCH = 0;
  100. V_TALLY = 0;
  101. AV_TALLY = 0;
  102. DV_TALLY = 0;
  103. UV_TALLY = 0;
  104. APERC_TALLY = 0;
  105. DPERC_TALLY = 0;
  106. ADV5 = 0;
  107. DEC5 = 0;
  108. UCH5 = 0;
  109. V5_TALLY = 0;
  110. AV5_TALLY = 0;
  111. DV5_TALLY = 0;
  112. UV5_TALLY = 0;
  113. ADV5_TALLY = 0;
  114. DEC5_TALLY = 0;
  115. NH0_TALLY = 0;
  116. NH1_TALLY = 0;
  117. NH2_TALLY = 0;
  118. NH3_TALLY = 0;
  119. NH4_TALLY = 0;
  120. NH10_TALLY = 0;
  121. OH0_05_TALLY = 0;
  122. OH1_05_TALLY = 0;
  123. OH2_05_TALLY = 0;
  124. OH3_05_TALLY = 0;
  125. OH4_05_TALLY = 0;
  126. OH10_05_TALLY = 0;
  127. OH0_510_TALLY = 0;
  128. OH1_510_TALLY = 0;
  129. OH2_510_TALLY = 0;
  130. OH3_510_TALLY = 0;
  131. OH4_510_TALLY = 0;
  132. OH10_510_TALLY = 0;
  133. OH0_1015_TALLY = 0;
  134. OH1_1015_TALLY = 0;
  135. OH2_1015_TALLY = 0;
  136. OH3_1015_TALLY = 0;
  137. OH4_1015_TALLY = 0;
  138. OH10_1015_TALLY = 0;
  139. OH0_1520_TALLY = 0;
  140. OH1_1520_TALLY = 0;
  141. OH2_1520_TALLY = 0;
  142. OH3_1520_TALLY = 0;
  143. OH4_1520_TALLY = 0;
  144. OH10_1520_TALLY = 0;
  145. OH0_2025_TALLY = 0;
  146. OH1_2025_TALLY = 0;
  147. OH2_2025_TALLY = 0;
  148. OH3_2025_TALLY = 0;
  149. OH4_2025_TALLY = 0;
  150. OH10_2025_TALLY = 0;
  151. OH0_2530_TALLY = 0;
  152. OH1_2530_TALLY = 0;
  153. OH2_2530_TALLY = 0;
  154. OH3_2530_TALLY = 0;
  155. OH4_2530_TALLY = 0;
  156. OH10_2530_TALLY = 0;
  157. OH0_3035_TALLY = 0;
  158. OH1_3035_TALLY = 0;
  159. OH2_3035_TALLY = 0;
  160. OH3_3035_TALLY = 0;
  161. OH4_3035_TALLY = 0;
  162. OH10_3035_TALLY = 0;
  163. OH0_3540_TALLY = 0;
  164. OH1_3540_TALLY = 0;
  165. OH2_3540_TALLY = 0;
  166. OH3_3540_TALLY = 0;
  167. OH4_3540_TALLY = 0;
  168. OH10_3540_TALLY = 0;
  169. OH0_4045_TALLY = 0;
  170. OH1_4045_TALLY = 0;
  171. OH2_4045_TALLY = 0;
  172. OH3_4045_TALLY = 0;
  173. OH4_4045_TALLY = 0;
  174. OH10_4045_TALLY = 0;
  175. OH0_4550_TALLY = 0;
  176. OH1_4550_TALLY = 0;
  177. OH2_4550_TALLY = 0;
  178. OH3_4550_TALLY = 0;
  179. OH4_4550_TALLY = 0;
  180. OH10_4550_TALLY = 0;
  181. OH0_50_TALLY = 0;
  182. OH1_50_TALLY = 0;
  183. OH2_50_TALLY = 0;
  184. OH3_50_TALLY = 0;
  185. OH4_50_TALLY = 0;
  186. OH10_50_TALLY = 0;
  187. END;
  188. {*** Skip those tickers without enough data or with big price changes. ***}
  189. IF QUOTE_COUNT < 51 THEN GOTO CHECK_LAST;
  190. IF C[0] < (C[-1]*.8) THEN GOTO CHECK_LAST;
  191. {********* Check all stocks for volume percentage, a/d/u, and ***********}
  192. {********* off high figures 0, 1, 2, 3, 4, and 10 days ago. *************}
  193. {********* Add all figures to their respective tallys. ******************}
  194. TICKS = TICKS + 1;
  195. IF C[0] > C[-1] THEN ADV = ADV + 1;
  196. IF C[0] < C[-1] THEN DEC = DEC + 1;
  197. IF C[0] = C[-1] THEN UCH = UCH + 1;
  198. IF C[0] > C[-4] THEN ADV5 = ADV5 + 1;
  199. IF C[0] < C[-4] THEN DEC5 = DEC5 + 1;
  200. IF C[0] = C[-4] THEN UCH5 = UCH5 + 1;
  201. v0 = v[0];
  202. v5 = sum(v,5)/5
  203. if median_switch = 1 then goto check_median;
  204. med = sum(v,50)/50;
  205. goto add_vol;
  206. {******* This is the routine which computes the 50 day median volume *****}
  207. :check_median
  208. ta = 1;
  209. :routine
  210. found_sw = 0;
  211. ta = ta - 1;
  212. v50 : array;
  213. v50 = hhv(v,50);
  214. if ta = -24 then v26 = v50;
  215. if ta = -25 then v25 = v50;
  216. if ta = -25 then goto median;
  217. :find_hi_vol
  218. da = 1;
  219. :spin
  220. da = da-1;
  221. if v[da] = v50 then found_sw = 1;
  222. if v[da] = v50 then v[da] = 0;
  223. if found_sw = 1 then goto routine else goto spin;
  224. :median
  225. med = (v26+v25)/2;
  226. {******************** End of median volume routine *********************}
  227. :add_vol
  228. V_PERC = ((V0/med)*100);
  229. V_TALLY = V_TALLY + V_PERC;
  230. V5_PERC = ((V5/med)*100);
  231. V5_TALLY = V5_TALLY + V5_PERC;
  232. IF C[0] > C[-1] THEN AV_TALLY = AV_TALLY + V_PERC;
  233. IF C[0] < C[-1] THEN DV_TALLY = DV_TALLY + V_PERC;
  234. IF C[0] = C[-1] THEN UV_TALLY = UV_TALLY + V_PERC;
  235. IF C[0] > C[-1] THEN PERC_CHG = ((C[0]-C[-1])/C[-1])*100;
  236. IF C[0] > C[-1] THEN APERC_TALLY = APERC_TALLY + PERC_CHG;
  237. IF C[0] < C[-1] THEN PERC_CHG = ((C[-1]-C[0])/C[-1])*100;
  238. IF C[0] < C[-1] THEN DPERC_TALLY = DPERC_TALLY + PERC_CHG;
  239. IF C[0] > C[-4] THEN PERC5_CHG = ((C[0]-C[-4])/C[-4])*100;
  240. IF C[0] < C[-4] THEN PERC5_CHG = ((C[-4]-C[0])/C[-4])*100;
  241. IF C[0] > C[-4] THEN ADV5_TALLY = ADV5_TALLY + PERC5_CHG;
  242. IF C[0] < C[-4] THEN DEC5_TALLY = DEC5_TALLY + PERC5_CHG;
  243. IF C[0] > C[-4] THEN AV5_TALLY = AV5_TALLY + V5_PERC;
  244. IF C[0] < C[-4] THEN DV5_TALLY = DV5_TALLY + V5_PERC;
  245. IF C[0] = C[-4] THEN UV5_TALLY = UV5_TALLY + V5_PERC;
  246. HI : ARRAY;
  247. HI = HHV(C,(QUOTE_COUNT-11));
  248. OH0 = (1-(C[0]/HI[0]))*100;
  249. OH1 = (1-(C[-1]/HI[-1]))*100;
  250. OH2 = (1-(C[-2]/HI[-2]))*100;
  251. OH3 = (1-(C[-3]/HI[-3]))*100;
  252. OH4 = (1-(C[-4]/HI[-4]))*100;
  253. OH10 = (1-(C[-10]/HI[-10]))*100;
  254. IF OH0 = 0 THEN NH0_TALLY = NH0_TALLY + 1;
  255. IF OH0 >=0 AND OH0 <=5 THEN OH0_05_TALLY = OH0_05_TALLY + 1;
  256. IF OH0 > 5 AND OH0 <=10 THEN OH0_510_TALLY = OH0_510_TALLY + 1;
  257. IF OH0 > 10 AND OH0 <=15 THEN OH0_1015_TALLY = OH0_1015_TALLY + 1;
  258. IF OH0 > 15 AND OH0 <=20 THEN OH0_1520_TALLY = OH0_1520_TALLY + 1;
  259. IF OH0 > 20 AND OH0 <=25 THEN OH0_2025_TALLY = OH0_2025_TALLY + 1;
  260. IF OH0 > 25 AND OH0 <=30 THEN OH0_2530_TALLY = OH0_2530_TALLY + 1;
  261. IF OH0 > 30 AND OH0 <=35 THEN OH0_3035_TALLY = OH0_3035_TALLY + 1;
  262. IF OH0 > 35 AND OH0 <=40 THEN OH0_3540_TALLY = OH0_3540_TALLY + 1;
  263. IF OH0 > 40 AND OH0 <=45 THEN OH0_4045_TALLY = OH0_4045_TALLY + 1;
  264. IF OH0 > 45 AND OH0 <=50 THEN OH0_4550_TALLY = OH0_4550_TALLY + 1;
  265. IF OH0 > 50 THEN OH0_50_TALLY = OH0_50_TALLY + 1;
  266. IF OH1 = 0 THEN NH1_TALLY = NH1_TALLY + 1;
  267. IF OH1 >=0 AND OH1 <=5 THEN OH1_05_TALLY = OH1_05_TALLY + 1;
  268. IF OH1 > 5 AND OH1 <=10 THEN OH1_510_TALLY = OH1_510_TALLY + 1;
  269. IF OH1 > 10 AND OH1 <=15 THEN OH1_1015_TALLY = OH1_1015_TALLY + 1;
  270. IF OH1 > 15 AND OH1 <=20 THEN OH1_1520_TALLY = OH1_1520_TALLY + 1;
  271. IF OH1 > 20 AND OH1 <=25 THEN OH1_2025_TALLY = OH1_2025_TALLY + 1;
  272. IF OH1 > 25 AND OH1 <=30 THEN OH1_2530_TALLY = OH1_2530_TALLY + 1;
  273. IF OH1 > 30 AND OH1 <=35 THEN OH1_3035_TALLY = OH1_3035_TALLY + 1;
  274. IF OH1 > 35 AND OH1 <=40 THEN OH1_3540_TALLY = OH1_3540_TALLY + 1;
  275. IF OH1 > 40 AND OH1 <=45 THEN OH1_4045_TALLY = OH1_4045_TALLY + 1;
  276. IF OH1 > 45 AND OH1 <=50 THEN OH1_4550_TALLY = OH1_4550_TALLY + 1;
  277. IF OH1 > 50 THEN OH1_50_TALLY = OH1_50_TALLY + 1;
  278. IF OH2 = 0 THEN NH2_TALLY = NH2_TALLY + 1;
  279. IF OH2 >= 0 AND OH2 <=5 THEN OH2_05_TALLY = OH2_05_TALLY + 1;
  280. IF OH2 > 5 AND OH2 <=10 THEN OH2_510_TALLY = OH2_510_TALLY + 1;
  281. IF OH2 > 10 AND OH2 <=15 THEN OH2_1015_TALLY = OH2_1015_TALLY + 1;
  282. IF OH2 > 15 AND OH2 <=20 THEN OH2_1520_TALLY = OH2_1520_TALLY + 1;
  283. IF OH2 > 20 AND OH2 <=25 THEN OH2_2025_TALLY = OH2_2025_TALLY + 1;
  284. IF OH2 > 25 AND OH2 <=30 THEN OH2_2530_TALLY = OH2_2530_TALLY + 1;
  285. IF OH2 > 30 AND OH2 <=35 THEN OH2_3035_TALLY = OH2_3035_TALLY + 1;
  286. IF OH2 > 35 AND OH2 <=40 THEN OH2_3540_TALLY = OH2_3540_TALLY + 1;
  287. IF OH2 > 40 AND OH2 <=45 THEN OH2_4045_TALLY = OH2_4045_TALLY + 1;
  288. IF OH2 > 45 AND OH2 <=50 THEN OH2_4550_TALLY = OH2_4550_TALLY + 1;
  289. IF OH2 > 50 THEN OH2_50_TALLY = OH2_50_TALLY + 1;
  290. IF OH3 = 0 THEN NH3_TALLY = NH3_TALLY + 1;
  291. IF OH3 >= 0 AND OH3 <=5 THEN OH3_05_TALLY = OH3_05_TALLY + 1;
  292. IF OH3 > 5 AND OH3 <=10 THEN OH3_510_TALLY = OH3_510_TALLY + 1;
  293. IF OH3 > 10 AND OH3 <=15 THEN OH3_1015_TALLY = OH3_1015_TALLY + 1;
  294. IF OH3 > 15 AND OH3 <=20 THEN OH3_1520_TALLY = OH3_1520_TALLY + 1;
  295. IF OH3 > 20 AND OH3 <=25 THEN OH3_2025_TALLY = OH3_2025_TALLY + 1;
  296. IF OH3 > 25 AND OH3 <=30 THEN OH3_2530_TALLY = OH3_2530_TALLY + 1;
  297. IF OH3 > 30 AND OH3 <=35 THEN OH3_3035_TALLY = OH3_3035_TALLY + 1;
  298. IF OH3 > 35 AND OH3 <=40 THEN OH3_3540_TALLY = OH3_3540_TALLY + 1;
  299. IF OH3 > 40 AND OH3 <=45 THEN OH3_4045_TALLY = OH3_4045_TALLY + 1;
  300. IF OH3 > 45 AND OH3 <=50 THEN OH3_4550_TALLY = OH3_4550_TALLY + 1;
  301. IF OH3 > 50 THEN OH3_50_TALLY = OH3_50_TALLY + 1;
  302. IF OH4 = 0 THEN NH4_TALLY = NH4_TALLY + 1;
  303. IF OH4 >= 0 AND OH4 <=5 THEN OH4_05_TALLY = OH4_05_TALLY + 1;
  304. IF OH4 > 5 AND OH4 <=10 THEN OH4_510_TALLY = OH4_510_TALLY + 1;
  305. IF OH4 > 10 AND OH4 <=15 THEN OH4_1015_TALLY = OH4_1015_TALLY + 1;
  306. IF OH4 > 15 AND OH4 <=20 THEN OH4_1520_TALLY = OH4_1520_TALLY + 1;
  307. IF OH4 > 20 AND OH4 <=25 THEN OH4_2025_TALLY = OH4_2025_TALLY + 1;
  308. IF OH4 > 25 AND OH4 <=30 THEN OH4_2530_TALLY = OH4_2530_TALLY + 1;
  309. IF OH4 > 30 AND OH4 <=35 THEN OH4_3035_TALLY = OH4_3035_TALLY + 1;
  310. IF OH4 > 35 AND OH4 <=40 THEN OH4_3540_TALLY = OH4_3540_TALLY + 1;
  311. IF OH4 > 40 AND OH4 <=45 THEN OH4_4045_TALLY = OH4_4045_TALLY + 1;
  312. IF OH4 > 45 AND OH4 <=50 THEN OH4_4550_TALLY = OH4_4550_TALLY + 1;
  313. IF OH4 > 50 THEN OH4_50_TALLY = OH4_50_TALLY + 1;
  314. IF OH10 = 0 THEN NH10_TALLY = NH10_TALLY + 1;
  315. IF OH10 >= 0 AND OH10 <=5 THEN OH10_05_TALLY = OH10_05_TALLY + 1;
  316. IF OH10 > 5 AND OH10 <=10 THEN OH10_510_TALLY = OH10_510_TALLY + 1;
  317. IF OH10 > 10 AND OH10 <=15 THEN OH10_1015_TALLY = OH10_1015_TALLY + 1;
  318. IF OH10 > 15 AND OH10 <=20 THEN OH10_1520_TALLY = OH10_1520_TALLY + 1;
  319. IF OH10 > 20 AND OH10 <=25 THEN OH10_2025_TALLY = OH10_2025_TALLY + 1;
  320. IF OH10 > 25 AND OH10 <=30 THEN OH10_2530_TALLY = OH10_2530_TALLY + 1;
  321. IF OH10 > 30 AND OH10 <=35 THEN OH10_3035_TALLY = OH10_3035_TALLY + 1;
  322. IF OH10 > 35 AND OH10 <=40 THEN OH10_3540_TALLY = OH10_3540_TALLY + 1;
  323. IF OH10 > 40 AND OH10 <=45 THEN OH10_4045_TALLY = OH10_4045_TALLY + 1;
  324. IF OH10 > 45 AND OH10 <=50 THEN OH10_4550_TALLY = OH10_4550_TALLY + 1;
  325. IF OH10 > 50 THEN OH10_50_TALLY = OH10_50_TALLY + 1;
  326. :CHECK_LAST
  327. IF LAST_TICKER THEN GOTO SUMMARY ELSE RETURN;
  328. {********** Now all stocks have been computed and tallied, ***********}
  329. {********** compute the tally results for the summary report. *********}
  330. :SUMMARY
  331. A_PERC = (ADV/TICKS)*100;
  332. D_PERC = (DEC/TICKS)*100;
  333. U_PERC = (UCH/TICKS)*100;
  334. V_TOTL = V_TALLY/TICKS;
  335. AV_TOTL = AV_TALLY/ADV;
  336. DV_TOTL = DV_TALLY/DEC;
  337. UV_TOTL = UV_TALLY/UCH;
  338. V5_TOTL = V5_TALLY/TICKS;
  339. AVG_ADV_PERC = APERC_TALLY/ADV;
  340. AVG_DEC_PERC = DPERC_TALLY/DEC;
  341. CUML_G_L = (APERC_TALLY-DPERC_TALLY)/TICKS;
  342. A5_PERC = (ADV5/TICKS)*100;
  343. D5_PERC = (DEC5/TICKS)*100;
  344. U5_PERC = (UCH5/TICKS)*100;
  345. CUML5_G_L = (ADV5_TALLY-DEC5_TALLY)/TICKS;
  346. AVG5_ADV_PERC = ADV5_TALLY/ADV5;
  347. AVG5_DEC_PERC = DEC5_TALLY/DEC5;
  348. AV5_TOTL = AV5_TALLY/ADV5;
  349. DV5_TOTL = DV5_TALLY/DEC5;
  350. UV5_TOTL = UV5_TALLY/UCH5;
  351. P0NH = (NH0_TALLY/TICKS)*100;
  352. P1NH = (NH1_TALLY/TICKS)*100;
  353. P2NH = (NH2_TALLY/TICKS)*100;
  354. P3NH = (NH3_TALLY/TICKS)*100;
  355. P4NH = (NH4_TALLY/TICKS)*100;
  356. P10NH = (NH10_TALLY/TICKS)*100;
  357. P005 = (OH0_05_TALLY/TICKS)*100;
  358. P105 = (OH1_05_TALLY/TICKS)*100;
  359. P205 = (OH2_05_TALLY/TICKS)*100;
  360. P305 = (OH3_05_TALLY/TICKS)*100;
  361. P405 = (OH4_05_TALLY/TICKS)*100;
  362. P1005 = (OH10_05_TALLY/TICKS)*100;
  363. P0510 = (OH0_510_TALLY/TICKS)*100;
  364. P1510 = (OH1_510_TALLY/TICKS)*100;
  365. P2510 = (OH2_510_TALLY/TICKS)*100;
  366. P3510 = (OH3_510_TALLY/TICKS)*100;
  367. P4510 = (OH4_510_TALLY/TICKS)*100;
  368. P10510 = (OH10_510_TALLY/TICKS)*100;
  369. P01015 = (OH0_1015_TALLY/TICKS)*100;
  370. P11015 = (OH1_1015_TALLY/TICKS)*100;
  371. P21015 = (OH2_1015_TALLY/TICKS)*100;
  372. P31015 = (OH3_1015_TALLY/TICKS)*100;
  373. P41015 = (OH4_1015_TALLY/TICKS)*100;
  374. P101015 = (OH10_1015_TALLY/TICKS)*100;
  375. P01520 = (OH0_1520_TALLY/TICKS)*100;
  376. P11520 = (OH1_1520_TALLY/TICKS)*100;
  377. P21520 = (OH2_1520_TALLY/TICKS)*100;
  378. P31520 = (OH3_1520_TALLY/TICKS)*100;
  379. P41520 = (OH4_1520_TALLY/TICKS)*100;
  380. P101520 = (OH10_1520_TALLY/TICKS)*100;
  381. P02025 = (OH0_2025_TALLY/TICKS)*100;
  382. P12025 = (OH1_2025_TALLY/TICKS)*100;
  383. P22025 = (OH2_2025_TALLY/TICKS)*100;
  384. P32025 = (OH3_2025_TALLY/TICKS)*100;
  385. P42025 = (OH4_2025_TALLY/TICKS)*100;
  386. P102025 = (OH10_2025_TALLY/TICKS)*100;
  387. P02530 = (OH0_2530_TALLY/TICKS)*100;
  388. P12530 = (OH1_2530_TALLY/TICKS)*100;
  389. P22530 = (OH2_2530_TALLY/TICKS)*100;
  390. P32530 = (OH3_2530_TALLY/TICKS)*100;
  391. P42530 = (OH4_2530_TALLY/TICKS)*100;
  392. P102530 = (OH10_2530_TALLY/TICKS)*100;
  393. P03035 = (OH0_3035_TALLY/TICKS)*100;
  394. P13035 = (OH1_3035_TALLY/TICKS)*100;
  395. P23035 = (OH2_3035_TALLY/TICKS)*100;
  396. P33035 = (OH3_3035_TALLY/TICKS)*100;
  397. P43035 = (OH4_3035_TALLY/TICKS)*100;
  398. P103035 = (OH10_3035_TALLY/TICKS)*100;
  399. P03540 = (OH0_3540_TALLY/TICKS)*100;
  400. P13540 = (OH1_3540_TALLY/TICKS)*100;
  401. P23540 = (OH2_3540_TALLY/TICKS)*100;
  402. P33540 = (OH3_3540_TALLY/TICKS)*100;
  403. P43540 = (OH4_3540_TALLY/TICKS)*100;
  404. P103540 = (OH10_3540_TALLY/TICKS)*100;
  405. P04045 = (OH0_4045_TALLY/TICKS)*100;
  406. P14045 = (OH1_4045_TALLY/TICKS)*100;
  407. P24045 = (OH2_4045_TALLY/TICKS)*100;
  408. P34045 = (OH3_4045_TALLY/TICKS)*100;
  409. P44045 = (OH4_4045_TALLY/TICKS)*100;
  410. P104045 = (OH10_4045_TALLY/TICKS)*100;
  411. P04550 = (OH0_4550_TALLY/TICKS)*100;
  412. P14550 = (OH1_4550_TALLY/TICKS)*100;
  413. P24550 = (OH2_4550_TALLY/TICKS)*100;
  414. P34550 = (OH3_4550_TALLY/TICKS)*100;
  415. P44550 = (OH4_4550_TALLY/TICKS)*100;
  416. P104550 = (OH10_4550_TALLY/TICKS)*100;
  417. P050 = (OH0_50_TALLY/TICKS)*100;
  418. P150 = (OH1_50_TALLY/TICKS)*100;
  419. P250 = (OH2_50_TALLY/TICKS)*100;
  420. P350 = (OH3_50_TALLY/TICKS)*100;
  421. P450 = (OH4_50_TALLY/TICKS)*100;
  422. P1050 = (OH10_50_TALLY/TICKS)*100;
  423. NNH01 = NH0_TALLY - NH1_TALLY;
  424. NNH12 = NH1_TALLY - NH2_TALLY;
  425. NNH23 = NH2_TALLY - NH3_TALLY;
  426. NNH34 = NH3_TALLY - NH4_TALLY;
  427. NNH410 = NH4_TALLY - NH10_TALLY;
  428. N05_01 = OH0_05_TALLY - OH1_05_TALLY;
  429. N05_12 = OH1_05_TALLY - OH2_05_TALLY;
  430. N05_23 = OH2_05_TALLY - OH3_05_TALLY;
  431. N05_34 = OH3_05_TALLY - OH4_05_TALLY;
  432. N05_410 = OH4_05_TALLY - OH10_05_TALLY;
  433. N510_01 = OH0_510_TALLY - OH1_510_TALLY;
  434. N510_12 = OH1_510_TALLY - OH2_510_TALLY;
  435. N510_23 = OH2_510_TALLY - OH3_510_TALLY;
  436. N510_34 = OH3_510_TALLY - OH4_510_TALLY;
  437. N510_410 = OH4_510_TALLY - OH10_510_TALLY;
  438. N1015_01 = OH0_1015_TALLY - OH1_1015_TALLY;
  439. N1015_12 = OH1_1015_TALLY - OH2_1015_TALLY;
  440. N1015_23 = OH2_1015_TALLY - OH3_1015_TALLY;
  441. N1015_34 = OH3_1015_TALLY - OH4_1015_TALLY;
  442. N1015_410 = OH4_1015_TALLY - OH10_1015_TALLY;
  443. N1520_01 = OH0_1520_TALLY - OH1_1520_TALLY;
  444. N1520_12 = OH1_1520_TALLY - OH2_1520_TALLY;
  445. N1520_23 = OH2_1520_TALLY - OH3_1520_TALLY;
  446. N1520_34 = OH3_1520_TALLY - OH4_1520_TALLY;
  447. N1520_410 = OH4_1520_TALLY - OH10_1520_TALLY;
  448. N2025_01 = OH0_2025_TALLY - OH1_2025_TALLY;
  449. N2025_12 = OH1_2025_TALLY - OH2_2025_TALLY;
  450. N2025_23 = OH2_2025_TALLY - OH3_2025_TALLY;
  451. N2025_34 = OH3_2025_TALLY - OH4_2025_TALLY;
  452. N2025_410 = OH4_2025_TALLY - OH10_2025_TALLY;
  453. N2530_01 = OH0_2530_TALLY - OH1_2530_TALLY;
  454. N2530_12 = OH1_2530_TALLY - OH2_2530_TALLY;
  455. N2530_23 = OH2_2530_TALLY - OH3_2530_TALLY;
  456. N2530_34 = OH3_2530_TALLY - OH4_2530_TALLY;
  457. N2530_410 = OH4_2530_TALLY - OH10_2530_TALLY;
  458. N3035_01 = OH0_3035_TALLY - OH1_3035_TALLY;
  459. N3035_12 = OH1_3035_TALLY - OH2_3035_TALLY;
  460. N3035_23 = OH2_3035_TALLY - OH3_3035_TALLY;
  461. N3035_34 = OH3_3035_TALLY - OH4_3035_TALLY;
  462. N3035_410 = OH4_3035_TALLY - OH10_3035_TALLY;
  463. N3540_01 = OH0_3540_TALLY - OH1_3540_TALLY;
  464. N3540_12 = OH1_3540_TALLY - OH2_3540_TALLY;
  465. N3540_23 = OH2_3540_TALLY - OH3_3540_TALLY;
  466. N3540_34 = OH3_3540_TALLY - OH4_3540_TALLY;
  467. N3540_410 = OH4_3540_TALLY - OH10_3540_TALLY;
  468. N4045_01 = OH0_4045_TALLY - OH1_4045_TALLY;
  469. N4045_12 = OH1_4045_TALLY - OH2_4045_TALLY;
  470. N4045_23 = OH2_4045_TALLY - OH3_4045_TALLY;
  471. N4045_34 = OH3_4045_TALLY - OH4_4045_TALLY;
  472. N4045_410 = OH4_4045_TALLY - OH10_4045_TALLY;
  473. N4550_01 = OH0_4550_TALLY - OH1_4550_TALLY;
  474. N4550_12 = OH1_4550_TALLY - OH2_4550_TALLY;
  475. N4550_23 = OH2_4550_TALLY - OH3_4550_TALLY;
  476. N4550_34 = OH3_4550_TALLY - OH4_4550_TALLY;
  477. N4550_410 = OH4_4550_TALLY - OH10_4550_TALLY;
  478. N50_01 = OH0_50_TALLY - OH1_50_TALLY;
  479. N50_12 = OH1_50_TALLY - OH2_50_TALLY;
  480. N50_23 = OH2_50_TALLY - OH3_50_TALLY;
  481. N50_34 = OH3_50_TALLY - OH4_50_TALLY;
  482. N50_410 = OH4_50_TALLY - OH10_50_TALLY;
  483. {*************** Write the summary report to the screen *****************}
  484. WRITELN(FORMAT(TICKS,'%3.f'),' TICKERS, VOL= ',FORMAT(V_TOTL,'%4.1f%%')
  485. ,'  AVG G/L= ',FORMAT(CUML_G_L,'%4.2f%%'),'      5VOL= ',
  486. FORMAT(V5_TOTL,'%4.1f%%'),'  5 G/L= ',FORMAT(CUML5_G_L,'%4.2f%%'));
  487. WRITELN(FORMAT(ADV,'%3.f'),' ADV, ',FORMAT(A_PERC,'%2.f%%'),'  VOL=',
  488. FORMAT(AV_TOTL,'%5.1f%'),'  AVG-A=',FORMAT(AVG_ADV_PERC,'%2.2f%')
  489. ,'  5ADV=',FORMAT(A5_PERC,'%2.f%'),'  5AVOL=',FORMAT(AV5_TOTL,'%5.1f%')
  490. ,'  AVG5-A=',FORMAT(AVG5_ADV_PERC,'%2.2f%'));
  491. WRITELN(FORMAT(DEC,'%3.f'),' DEC, ',FORMAT(D_PERC,'%2.f%%'),'  VOL=',
  492. FORMAT(DV_TOTL,'%5.1f%'),'  AVG-D=',FORMAT(AVG_DEC_PERC,'%2.2f%')
  493.  ,'  5DEC=',FORMAT(D5_PERC,'%2.f%'),'  5DVOL=',FORMAT(DV5_TOTL,'%5.1f%')
  494. ,'  AVG5-D=',FORMAT(AVG5_DEC_PERC,'%2.2f%'));
  495. WRITELN(FORMAT(UCH,'%3.f'),' UCH, ',FORMAT(U_PERC,'%2.f%%'),'  VOL=',
  496. FORMAT(UV_TOTL,'%5.1f%'),'               5UCH=',FORMAT(U5_PERC,'%2.f%')
  497. ,'  5UVOL=',FORMAT(UV5_TOTL,'%5.1f%'));
  498. WRITELN(
  499. '  %OH    #   TODAY      1 AGO      2 AGO      3 AGO      4 AGO     10 AGO'
  500. );
  501. WRITELN('   NH=',FORMAT(NH0_TALLY,'%4.0f'),'   ',FORMAT(P0NH,'%4.1f%%'),
  502. FORMAT(NNH01,'%4.0f'),'  ',FORMAT(P1NH,'%4.1f%%'),
  503. FORMAT(NNH12,'%4.0f'),'  ',FORMAT(P2NH,'%4.1f%%'),
  504. FORMAT(NNH23,'%4.0f'),'  ',FORMAT(P3NH,'%4.1f%%'),
  505. FORMAT(NNH34,'%4.0f'),'  ',FORMAT(P4NH,'%4.1f%%'),
  506. FORMAT(NNH410,'%4.0f'),'  ',FORMAT(P10NH,'%4.1f%%'));
  507. WRITELN('  0-5=',FORMAT(OH0_05_TALLY,'%4.0f'),'   ',FORMAT(P005,'%4.1f%%'),
  508. FORMAT(N05_01,'%4.0f'),'  ',FORMAT(P105,'%4.1f%%'),
  509. FORMAT(N05_12,'%4.0f'),'  ',FORMAT(P205,'%4.1f%%'),
  510. FORMAT(N05_23,'%4.0f'),'  ',FORMAT(P305,'%4.1f%%'),
  511. FORMAT(N05_34,'%4.0f'),'  ',FORMAT(P405,'%4.1f%%'),
  512. FORMAT(N05_410,'%4.0f'),'  ',FORMAT(P1005,'%4.1f%%'));
  513. WRITELN(' 5-10=',FORMAT(OH0_510_TALLY,'%4.0f'),'   ',FORMAT(P0510,'%4.1f%%')
  514. ,
  515. FORMAT(N510_01,'%4.0f'),'  ',FORMAT(P1510,'%4.1f%%'),
  516. FORMAT(N510_12,'%4.0f'),'  ',FORMAT(P2510,'%4.1f%%'),
  517. FORMAT(N510_23,'%4.0f'),'  ',FORMAT(P3510,'%4.1f%%'),
  518. FORMAT(N510_34,'%4.0f'),'  ',FORMAT(P4510,'%4.1f%%'),
  519. FORMAT(N510_410,'%4.0f'),'  ',FORMAT(P10510,'%4.1f%%'));
  520. WRITELN
  521. ('10-15=',FORMAT(OH0_1015_TALLY,'%4.0f'),'   ',FORMAT(P01015,'%4.1f%%'),
  522. FORMAT(N1015_01,'%4.0f'),'  ',FORMAT(P11015,'%4.1f%%'),
  523. FORMAT(N1015_12,'%4.0f'),'  ',FORMAT(P21015,'%4.1f%%'),
  524. FORMAT(N1015_23,'%4.0f'),'  ',FORMAT(P31015,'%4.1f%%'),
  525. FORMAT(N1015_34,'%4.0f'),'  ',FORMAT(P41015,'%4.1f%%'),
  526. FORMAT(N1015_410,'%4.0f'),'  ',FORMAT(P101015,'%4.1f%%'));
  527. WRITELN
  528. ('15-20=',FORMAT(OH0_1520_TALLY,'%4.0f'),'   ',FORMAT(P01520,'%4.1f%%'),
  529. FORMAT(N1520_01,'%4.0f'),'  ',FORMAT(P11520,'%4.1f%%'),
  530. FORMAT(N1520_12,'%4.0f'),'  ',FORMAT(P21520,'%4.1f%%'),
  531. FORMAT(N1520_23,'%4.0f'),'  ',FORMAT(P31520,'%4.1f%%'),
  532. FORMAT(N1520_34,'%4.0f'),'  ',FORMAT(P41520,'%4.1f%%'),
  533. FORMAT(N1520_410,'%4.0f'),'  ',FORMAT(P101520,'%4.1f%%'));
  534. WRITELN
  535. ('20-25=',FORMAT(OH0_2025_TALLY,'%4.0f'),'   ',FORMAT(P02025,'%4.1f%%'),
  536. FORMAT(N2025_01,'%4.0f'),'  ',FORMAT(P12025,'%4.1f%%'),
  537. FORMAT(N2025_12,'%4.0f'),'  ',FORMAT(P22025,'%4.1f%%'),
  538. FORMAT(N2025_23,'%4.0f'),'  ',FORMAT(P32025,'%4.1f%%'),
  539. FORMAT(N2025_34,'%4.0f'),'  ',FORMAT(P42025,'%4.1f%%'),
  540. FORMAT(N2025_410,'%4.0f'),'  ',FORMAT(P102025,'%4.1f%%'));
  541. WRITELN
  542. ('25-30=',FORMAT(OH0_2530_TALLY,'%4.0f'),'   ',FORMAT(P02530,'%4.1f%%'),
  543. FORMAT(N2530_01,'%4.0f'),'  ',FORMAT(P12530,'%4.1f%%'),
  544. FORMAT(N2530_12,'%4.0f'),'  ',FORMAT(P22530,'%4.1f%%'),
  545. FORMAT(N2530_23,'%4.0f'),'  ',FORMAT(P32530,'%4.1f%%'),
  546. FORMAT(N2530_34,'%4.0f'),'  ',FORMAT(P42530,'%4.1f%%'),
  547. FORMAT(N2530_410,'%4.0f'),'  ',FORMAT(P102530,'%4.1f%%'));
  548. WRITELN
  549. ('30-35=',FORMAT(OH0_3035_TALLY,'%4.0f'),'   ',FORMAT(P03035,'%4.1f%%'),
  550. FORMAT(N3035_01,'%4.0f'),'  ',FORMAT(P13035,'%4.1f%%'),
  551. FORMAT(N3035_12,'%4.0f'),'  ',FORMAT(P23035,'%4.1f%%'),
  552. FORMAT(N3035_23,'%4.0f'),'  ',FORMAT(P33035,'%4.1f%%'),
  553. FORMAT(N3035_34,'%4.0f'),'  ',FORMAT(P43035,'%4.1f%%'),
  554. FORMAT(N3035_410,'%4.0f'),'  ',FORMAT(P103035,'%4.1f%%'));
  555. WRITELN
  556. ('35-40=',FORMAT(OH0_3540_TALLY,'%4.0f'),'   ',FORMAT(P03540,'%4.1f%%'),
  557. FORMAT(N3540_01,'%4.0f'),'  ',FORMAT(P13540,'%4.1f%%'),
  558. FORMAT(N3540_12,'%4.0f'),'  ',FORMAT(P23540,'%4.1f%%'),
  559. FORMAT(N3540_23,'%4.0f'),'  ',FORMAT(P33540,'%4.1f%%'),
  560. FORMAT(N3540_34,'%4.0f'),'  ',FORMAT(P43540,'%4.1f%%'),
  561. FORMAT(N3540_410,'%4.0f'),'  ',FORMAT(P103540,'%4.1f%%'));
  562. WRITELN
  563. ('40-45=',FORMAT(OH0_4045_TALLY,'%4.0f'),'   ',FORMAT(P04045,'%4.1f%%'),
  564. FORMAT(N4045_01,'%4.0f'),'  ',FORMAT(P14045,'%4.1f%%'),
  565. FORMAT(N4045_12,'%4.0f'),'  ',FORMAT(P24045,'%4.1f%%'),
  566. FORMAT(N4045_23,'%4.0f'),'  ',FORMAT(P34045,'%4.1f%%'),
  567. FORMAT(N4045_34,'%4.0f'),'  ',FORMAT(P44045,'%4.1f%%'),
  568. FORMAT(N4045_410,'%4.0f'),'  ',FORMAT(P104045,'%4.1f%%'));
  569. WRITELN
  570. ('45-50=',FORMAT(OH0_4550_TALLY,'%4.0f'),'   ',FORMAT(P04550,'%4.1f%%'),
  571. FORMAT(N4550_01,'%4.0f'),'  ',FORMAT(P14550,'%4.1f%%'),
  572. FORMAT(N4550_12,'%4.0f'),'  ',FORMAT(P24550,'%4.1f%%'),
  573. FORMAT(N4550_23,'%4.0f'),'  ',FORMAT(P34550,'%4.1f%%'),
  574. FORMAT(N4550_34,'%4.0f'),'  ',FORMAT(P44550,'%4.1f%%'),
  575. FORMAT(N4550_410,'%4.0f'),'  ',FORMAT(P104550,'%4.1f%%'));
  576. WRITELN
  577. (' > 50=',FORMAT(OH0_50_TALLY,'%4.0f'),'   ',FORMAT(P050,'%4.1f%%'),
  578. FORMAT(N50_01,'%4.0f'),'  ',FORMAT(P150,'%4.1f%%'),
  579. FORMAT(N50_12,'%4.0f'),'  ',FORMAT(P250,'%4.1f%%'),
  580. FORMAT(N50_23,'%4.0f'),'  ',FORMAT(P350,'%4.1f%%'),
  581. FORMAT(N50_34,'%4.0f'),'  ',FORMAT(P450,'%4.1f%%'),
  582. FORMAT(N50_410,'%4.0f'),'  ',FORMAT(P1050,'%4.1f%%'));
  583. RETURN;
  584.