9000 REM *****BNDYLD*****BUSINESS PROGRAM 9005 REM BNDYLD**********VERSION #1 (7/31/69)*****BOND YIELD****: 9010 REM 9015 REM THIS PROGRAM COMPUTES THE AFTER TAX 9020 REM YIELD TO MATURITY OF A BOND. 9025 REM 9030 REM *THE FOLLOWING INPUT DATA ARE NEEDED 9035 REM 9040 REM 1. C = AMT. IN DOLLARS OF THE ANNULA COUPON (PAID SEMI:ANNUALLY) 9045 REM 2. R = REDEMPTION PRICE 9050 REM 3. M1,M2 = MATURITY LIFE (M1=YEARS, M2=MONTHS) 9055 REM 4. P = PRICE 9060 REM 5. T1 = TAX RATE APPLIED TO INTEREST 9065 REM 6. T2 = RATE APPLIED TO CAPITAL GAINS 9070 REM *END OF INPUT DATA 9075 REM (PREMIUM ON PURCHASE ABOVE THE REDEMPTION PRICE IS AMOTIZED 9080 REM OVER THE MATURITY AND DEDUCTED AT RATE T1; DISCOUNT OF PURCHASE 9085 REM BELOW THE REDEMPTION PRICE IS TAXED AT MATURITY AT T2.) 9090 REM 9095 PRINT "* BOND YIELD *" 9100 PRINT 9105 PRINT "DO YOU WISH TO ENTER YOUR DATA FROM THE TELETYPE, OR WITH DATA-" 9110 PRINT "STATEMENTS?? ('T' FOR TTY, 'D' OTHERWISE)"; 9115 INPUT N$ 9120 PRINT 9125 IF N$="D" THEN 9225 9130 PRINT "WHAT IS THE AMOUNT OF THE ANNUAL COUPON (SEMIANNUAL)"; 9135 INPUT C 9140 PRINT 9145 PRINT "WHAT IS THE REDEMPTION PRICE"; 9150 INPUT R 9155 PRINT 9160 PRINT "WHAT IS THE MATURITY LIFE?? (ENTER AS YEARS, MONTHS)"; 9165 INPUT M1,M2 9170 PRINT 9175 PRINT "WHAT IS THE BOND PRICE"; 9180 INPUT P 9185 PRINT 9190 PRINT "WHAT IS THE TAX RATE APPLIED TO INTEREST"; 9195 INPUT T1 9200 PRINT 9205 PRINT "WHAT IS THE RATE APPLIED TO CAPITAL GAINS"; 9210 INPUT T2 9215 PRINT 9220 GOTO 9300 9225 PRINT "HAS THE DATA ALREADY BEEN ENTERED??('Y' OR 'N')"; 9230 INPUT N$ 9235 PRINT 9240 IF N$="Y" THEN 9260 9245 PRINT "THEN DO SO NOW. FOR INPUT SPECS TYPE 'LIST-9030' AND ENTER THE" 9250 PRINT "VARIABLES IN THAT ORDER." 9255 STOP 9260 READ C,R,M1,M2,P,T1,T2 9265 PRINT 9270 PRINT "-----" 9275 PRINT 9280 PRINT "COUPON $";C;"AT REDEMPTION $";R;"AND MTURITY";M1;"YEARS" 9285 PRINT "AND";M2;"MONTHS. PRICE IS";P;"." 9290 PRINT 9295 PRINT "TAX RATE ON INTEREST:";T1*100;"%,RATE ON CAPITAL GAINS:";T2*100;"%" 9300 PRINT 9305 PRINT "**********************************************************************" 9310 C=C/2 9315 M3=M1*2+M2/6 9320 M4=INT(M3) 9325 M5=M3-M4 9330 IF P6 THEN 9390 9380 GOSUB 9545 9385 GOTO 9395 9390 GOSUB 9470 9395 Y=2*(EXP(Y)-1) 9400 PRINT 9405 PRINT " YIELD BEFORE TAX";100*Y;"PERCENT" 9410 PRINT 9415 U1=P+C*(1-M5)*(1-T1) 9420 C=C2 9425 U2=R-G 9430 IF M3>6 THEN 9445 9435 GOSUB 9545 9440 GOTO 9450 9445 GOSUB 9470 9450 Y=2*(EXP(Y)-1) 9455 PRINT " YIELD AFTER TAX "100*Y;"PERCENT" 9460 GOTO 9625 9465 REM FISHER ALGORITHM FOR DETERMINING EXACT RATE OF RETURN 9470 Y=.0001 9475 GOSUB 9505 9480 D=Q-(V1+V2+C) 9485 IF ABS(D/V3)<5.E-08 THEN 9500 9490 Y=Y-D/V3 9495 GOTO 9475 9500 RETURN 9505 Q=U1*EXP(Y*M5) 9510 V1=C*(1-EXP(-M4*Y))/(EXP(Y)-1) 9515 V2=U2*EXP(-Y*M4) 9520 V3=V2*M4-P*M5 9525 V3=V3+(C/(EXP(Y)-1)^2)*(EXP(Y)-(M4/EXP(Y*(M4-1)))) 9530 V3=V3+(C/(EXP(Y)-1)^2)*((M4-1)/(EXP(Y*(M4-1)))) 9535 RETURN 9540 REM FISHER ALGORITHM FOR DETERMINING EXACT RATE OF RETURN 9545 Y=.0001 9550 GOSUB 9580 9555 D=Q-(V1+V2) 9560 IF ABS(D/V3)<5.E-08 THEN 9575 9565 Y=Y-D/V3 9570 GOTO 9550 9575 RETURN 9580 V1,V3=0 9585 Q=U1 9590 V2=U2*EXP(-Y*M3) 9595 FOR I=0 TO M4 9600 V1=V1+C*EXP(-Y*(M5+I)) 9605 V3=V3+(M5+I)*C*EXP(-Y*(M5+I)) 9610 NEXT I 9615 V3=V3+M3*U2*EXP(-Y*M3) 9620 RETURN 9625 PRINT 9630 PRINT "**********************************************************************" 9999 END