* * Replication of graphs from pp 269-271 * * Effect of current stock price * set p 1 120 = t set call80 1 120 = 0.0 set put80 1 120 = 0.0 * do time=1,120 @BSoption(price=p(time),sigma=.30,rate=.06,strike=80,expire=.25) call80(time) @BSoption(price=p(time),sigma=.30,rate=.06,strike=80,expire=.25,put) put80(time) end do time * spgraph(footer="Figure 6.3 Marginal effects of current stock price on the price of an option",hfields=2) scatter(style=line,header="(a) Call options",vlabel="Value of a call",hlabel="Current Stock Price") # p call80 scatter(style=line,header="(a) Put options",vlabel="Value of a put",hlabel="Current Stock Price") # p put80 spgraph(done) * * Effect of time to expiration * set call70 1 120 = 0.0 set put70 1 120 = 0.0 set call90 1 120 = 0.0 set put90 1 120 = 0.0 * set expire 1 100 = .01*t * do time=1,100 @BSoption(price=70,sigma=.30,rate=.06,strike=80,expire=expire(time)) call70(time) @BSoption(price=70,sigma=.30,rate=.06,strike=80,expire=expire(time),put) put70(time) @BSoption(price=80,sigma=.30,rate=.06,strike=80,expire=expire(time)) call80(time) @BSoption(price=80,sigma=.30,rate=.06,strike=80,expire=expire(time),put) put80(time) @BSoption(price=90,sigma=.30,rate=.06,strike=80,expire=expire(time)) call90(time) @BSoption(price=90,sigma=.30,rate=.06,strike=80,expire=expire(time),put) put90(time) end do time * spgraph(footer="Figure 6.4 Marginal effects of time to expiration on the price of an option",hfields=2) scatter(style=line,header="(a) Call options",vlabel="Value of a call",hlabel="Time to expiration",$ key=upleft,klabels=||"P=70","P=80","P=90"||) 3 # expire call70 # expire call80 # expire call90 scatter(style=line,header="(a) Put options",vlabel="Value of a put",hlabel="Time to expiration",$ key=loright,klabels=||"P=70","P=80","P=90"||) 3 # expire put70 # expire put80 # expire put90 spgraph(done) * * * Effect of volatility * set volatile 1 120 = .01*t * do time=1,100 @BSoption(price=70,sigma=volatile(time),rate=.06,strike=80,expire=0.25) call70(time) @BSoption(price=70,sigma=volatile(time),rate=.06,strike=80,expire=0.25,put) put70(time) @BSoption(price=80,sigma=volatile(time),rate=.06,strike=80,expire=0.25) call80(time) @BSoption(price=80,sigma=volatile(time),rate=.06,strike=80,expire=0.25,put) put80(time) @BSoption(price=90,sigma=volatile(time),rate=.06,strike=80,expire=0.25) call90(time) @BSoption(price=90,sigma=volatile(time),rate=.06,strike=80,expire=0.25,put) put90(time) end do time * spgraph(footer="Figure 6.5 Marginal effects of volatility on the price of an option",hfields=2) scatter(style=line,header="(a) Call options",vlabel="Value of a call",hlabel="Volatility",$ key=upleft,klabels=||"P=70","P=80","P=90"||) 3 # expire call70 # expire call80 # expire call90 scatter(style=line,header="(a) Put options",vlabel="Value of a put",hlabel="Volatility",$ key=loright,klabels=||"P=70","P=80","P=90"||) 3 # expire put70 # expire put80 # expire put90 spgraph(done)