home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / MISC / FINANCE / INVEST.LBR / CSRKOPT.BZS / CSRKOPT.BAS
BASIC Source File  |  2000-06-30  |  3KB  |  109 lines

  1. 10 REM AAII PROGRAM 1-STOCK OPTIONS LAST REVISION 3/16/83
  2. 20 PRINT CHR$(26)
  3. 30 PRINT "THIS PROGRAM EVALUATES STOCK CALLS AND PUTS WITH SAME"
  4. 40 PRINT "EXERCISE PRICE AND EXPIRATION DATE"
  5. 50 PRINT "FIGURES IN() ARE EXAMPLES ON INPUT FORM"
  6. 60 PRINT "ENTER STOCK PRICE (25.25)"
  7. 70 INPUT P
  8. 80 PRINT "STOCK VOLATILITY (.35)"
  9. 90 INPUT V9
  10. 100 PRINT "RISK FREE INTEREST RATE %(12)"
  11. 110 INPUT R9
  12. 120 R9 = R9/100
  13. 130 V = V9 /19.1
  14. 140 R = R9 / 365
  15. 150 E = 2.71828
  16. 160 W8 = 0
  17. 170 PRINT "DOES THIS STOCK PAY DIVIDEND YES=1  NO=2 (IE. 1)"
  18. 180 INPUT C1
  19. 190 IF C1 = 2 THEN 240
  20. 200 PRINT "INPUT QUARTERLY DIVD PER SHARE( .25)"
  21. 210 INPUT C2
  22. 220 PRINT "DAYS TO NEXT EX DIV DATE (30)"
  23. 230 INPUT C3
  24. 240 PRINT "OPTION EXERCISE PRICE (25.00)"
  25. 250 INPUT S
  26. 260 PRINT "DAYS (CALENDAR) UNTIL EXPIRATION (90)"
  27. 270 INPUT T
  28. 280 PRINT:PRINT
  29. 290 G2 = 0
  30. 300 P1 = P
  31. 310 IF C3 >= T THEN 420
  32. 320 G2 = 1 
  33. 330 IF (T - C3) > 182 THEN 360
  34. 340 IF (T - C3) > 91 THEN 380
  35. 350 GOTO 390
  36. 360 G2 = 3 
  37. 370 GOTO 390
  38. 380 G2 = 2
  39. 390 FOR C4 = 1 TO G2
  40. 400 P1 = P1 - (C2 / (1 + (C3 + (C4 - 1) * 91) * R))
  41. 410 NEXT C4
  42. 420 D1 = (LOG(P1 / S) + (R + .5 * V ^ 2) * T) / (V * T ^ (.5))
  43. 430 D2 = (LOG(P1  / S) + (R - .5 * V ^ 2) * T) / (V * T ^ (.5))
  44. 440 Z = D1
  45. 450 GOSUB 1030
  46. 460 A = F
  47. 470 Z = D2
  48. 480 GOSUB 1030
  49. 490 B = F
  50. 500 V6 = P1 * A - S * E ^ (- R * T) * B
  51. 510 IF W8 = 0 THEN 560
  52. 520 IF V6 > W6 THEN 790
  53. 530 V6 = W6
  54. 540 A = W7
  55. 550 GOTO 790
  56. 560 P2 = P1
  57. 570 D4 = ( - LOG(P2 / S) + (R + .5 * V ^ 2) * T) / (V * T ^ (.5))
  58. 580 D3 = (- LOG(P2 / S) - (R + .5 * V ^ 2) * T) / (V * T ^ (.5))
  59. 590 Z = D3
  60. 600 GOSUB 1030
  61. 610 A1 = F
  62. 620 Z = D4
  63. 630 GOSUB 1030
  64. 640 A2 = F
  65. 650 V1 = V6 - P1 * E ^ (- R * T) + S * E ^ (- R * T)
  66. 660 V2 = V6 - P1 + (S * E ^ ( - R * T))
  67. 670 IF C1 = 2 THEN 690
  68. 680 GOTO 700
  69. 690 G2 = 0
  70. 700 PRINT "PRICE=";P;" EXERCISE PRICE=";S;" INTEREST=";R9
  71. 710 PRINT "VOLA=";V9;" TIME LEFT=";T;"  NO. DIVD=";G2
  72. 720 PRINT "AMT EACH DIVD=";C2;" DAYS TIL 1ST DIVD=";C3
  73. 730 IF C1 = 2 THEN 790
  74. 740 W6 = V6
  75. 750 W7 = A
  76. 760 T = (G2 - 1) * 90 + C3 - 1
  77. 770 W8 = 1
  78. 780 GOTO 280
  79. 790 V6 = INT(V6 * 1000.5) / 1000
  80. 800 A = INT(A * 1000 + .5) / 1000
  81. 810 PRINT
  82. 820 PRINT "CALL OUTPUT"
  83. 830 PRINT
  84. 840 PRINT "ESTIMATE VALUE=";V6
  85. 850 PRINT "DELTA VALUE=";A
  86. 860 PRINT
  87. 870 PRINT "PUT OUTPUT"
  88. 880 PRINT
  89. 890 V1 = INT(V1 * 1000 + .5) / 1000
  90. 900 V2 = INT(V2 * 1000 + .5) / 1000
  91. 910 A2 = INT(A2 * 1000 + .5) / 1000
  92. 920 A1 = INT(A1 * 1000 + .5) / 1000
  93. 930 PRINT "ESTIMATED VALUE=";V1
  94. 940 PRINT "OR CONVERSION=";V2
  95. 950 PRINT "DELTA VALUE=";A2;" OR CONVERSION=";A1
  96. 960 PRINT
  97. 970 PRINT "ANOTHER OPTION SAME STOCK(1) OR NOT(2)"
  98. 980 INPUT G4
  99. 990 W8 = 0
  100. 1000 IF G4 = 1 THEN 240
  101. 1020 END
  102. 1030 Z1 = Z
  103. 1040 IF Z >= 0 THEN 1060
  104. 1050 Z = ABS(Z)
  105. 1060 F = 1 - .5 * (1 + .1969 * Z + .1152 * Z ^ 2 + .00034 * Z ^ 3 + .0195 * Z ^ 4) ^ ( - 4)
  106. 1070 IF Z1 >= 0 THEN 1090
  107. 1080 F = 1 - F
  108. 1090 RETURN
  109.  .1969 * Z + .1152 * Z ^ 2 + .00034 * Z ^