All the diagrams below take only into account the asset/contract payoff at maturity as a function of the underlying asset value. They do not represent the profit/loss of holding a position on such assests as they ignore any trading costs.
\(S_T\) is the underlying asset value at maturity \(T\), and \(F_0\) is the futures price at time zero, and \(X\) is the option exercise price.
Underlying asset
Change the value of the asset at maturity \(S_T\) using the slider below, the payoff is represented with a dot:
viewof s = Inputs.range([0,150], {step:1,label:"S_T",value:100})
longAssetPayoff = Plot.plot({caption:"Payoffs on a Long position on an asset",x: {domain: [0,150],label:"S_T" },y: {domain: [-150,150],label:"Payoff" },grid:true,marks: [ Plot.ruleY([0]), Plot.ruleX([0]), Plot.line([[0,0], [150,150]], {stroke:"blue"}), Plot.dot( [[s, s]], {fill:"red",r:5,title: d =>`S_T: ${s}Payoff: ${s}`,tip:true }) ],title:"Long position payoff"})
shortAssetPayoff = Plot.plot({caption:"Payoffs on a Short position on an asset",x: {domain: [0,150],label:"S_T" },y: {domain: [-150,150],label:"Payoff" },grid:true,marks: [ Plot.ruleY([0]), Plot.ruleX([0]), Plot.line([[0,0], [150,-150]], {stroke:"red"}), Plot.dot( [[s,-s]], {fill:"blue",r:5,title: d =>`S_T: ${s}Payoff: ${s}`,tip:true }) ],title:"Short position payoff"})
When you purchase an asset (long position), the payoff is simply the value of the asset at maturity \(S_T\). The payoff function is represented by the straight line passing through the origin with a slope of 1.
When you sell an asset (short position), the payoff is the negative of the value of the asset at maturity, \(-S_T\). The payoff function is represented by the straight line passing through the origin with a slope of -1.
Futures contract
You can change the future price at time zero (\(F_0\)) and observe how it affects the payoff diagram, using the slider below:
longFuturePayoff = Plot.plot({caption:"Payoffs on a Long position on a futures contract",x: {domain: [0,150],label:"S_T" },y: {domain: [-150,150],label:"Payoff" },grid:true,marks: [ Plot.ruleY([0]), Plot.ruleX([0]), Plot.ruleX([f0], {stroke:"gray",strokeDasharray:"4,4"}), Plot.line([[0,-f0], [150,150- f0]], {stroke:"blue"}), Plot.dot( [[stf, stf - f0]], {fill:"red",r:5,title: d =>`S_T: ${s}F_0: ${f0}Payoff: ${s - f0}`,tip:true }) ],title:"Long futures position payoff"})
shortFuturePayoff = Plot.plot({caption:"Payoffs on a Short position on a futures contract",x: {domain: [0,150],label:"S_T" },y: {domain: [-150,150],label:"Payoff" },grid:true,marks: [ Plot.ruleY([0]), Plot.ruleX([0]), Plot.ruleX([f0], {stroke:"gray",strokeDasharray:"4,4"}), Plot.line([[0, f0], [150, f0 -150]], {stroke:"red"}), Plot.dot( [[stf, f0 - stf]], {fill:"blue",r:5,title: d =>`S_T: ${s}F_0: ${f0}Payoff: ${f0 - stf}`,tip:true }) ],title:"Short futures position payoff"})
The payoff of a futures contract at maturity is the difference between the spot price of the underlying asset at maturity (\(S_T\)) and the futures price agreed upon at the initiation of the contract (\(F_0\)):
For a long position (buyer of the futures contract), the payoff is \(S_T - F_0\)
For a short position (seller of the futures contract), the payoff is \(F_0 - S_T\)
Note that unlike other derivatives, futures contracts have no upfront premium cost as they are obligations to buy/sell at a predetermined price.
Option Contracts
Options give the holder the right, but not the obligation, to buy (call option) or sell (put option) the underlying asset at a predetermined price (exercise price or strike price). You can adjust the parameters below to see how they affect option payoffs.
viewof x = Inputs.range([50,150], {step:1,label:"X (Exercise Price)",value:100})viewof sto = Inputs.range([0,150], {step:1,label:"S_T",value:100})
Call Options
A call option gives the holder the right to buy the underlying asset at the exercise price.
longCallPayoff = Plot.plot({caption:"Payoffs on a Long position on a Call option at the option maturity",x: {domain: [0,200],label:"S_T" },y: {domain: [-100,100],label:"Payoff" },grid:true,marks: [ Plot.ruleY([0]), Plot.ruleX([0]), Plot.ruleX([x], {stroke:"gray",strokeDasharray:"4,4"}), Plot.line([[0,0], [x,0], [200,200- x]], {stroke:"blue"}), Plot.dot( [[sto,Math.max(0, sto - x)]], {fill:"red",r:5,title: d =>`S_T: ${sto}X: ${x}Payoff: ${Math.max(0, sto - x)}`,tip:true }) ],title:"Long Call position payoff"})
shortCallPayoff = Plot.plot({caption:"Payoffs on a Short position on a Call option at the option maturity",x: {domain: [0,200],label:"S_T" },y: {domain: [-100,100],label:"Payoff" },grid:true,marks: [ Plot.ruleY([0]), Plot.ruleX([0]), Plot.ruleX([x], {stroke:"gray",strokeDasharray:"4,4"}), Plot.line([[0,0], [x,0], [200, x -200]], {stroke:"red"}), Plot.dot( [[sto,-Math.max(0, sto - x)]], {fill:"blue",r:5,title: d =>`S_T: ${sto}X: ${x}Payoff: ${-Math.max(0, sto - x)}`,tip:true }) ],title:"Short Call position payoff"})
Put Options
A put option gives the holder the right to sell the underlying asset at the exercise price.
longPutPayoff = Plot.plot({caption:"Payoffs on a Long position on a Put option at the option maturity",x: {domain: [0,200],label:"S_T" },y: {domain: [-150,150],label:"Payoff" },grid:true,marks: [ Plot.ruleY([0]), Plot.ruleX([0]), Plot.ruleX([x], {stroke:"gray",strokeDasharray:"4,4"}), Plot.line([[0, x], [x,0], [200,0]], {stroke:"blue"}), Plot.dot( [[sto,Math.max(0, x - sto)]], {fill:"red",r:5,title: d =>`S_T: ${sto}X: ${x}Payoff: ${Math.max(0, x - sto)}`,tip:true }) ],title:"Long Put position payoff"})
shortPutPayoff = Plot.plot({caption:"Payoffs on a Short position on a Put option at the option maturity",x: {domain: [0,200],label:"S_T" },y: {domain: [-150,150],label:"Payoff" },grid:true,marks: [ Plot.ruleY([0]), Plot.ruleX([0]), Plot.ruleX([x], {stroke:"gray",strokeDasharray:"4,4"}), Plot.line([[0,-x], [x,0], [200,0]], {stroke:"red"}), Plot.dot( [[sto,-Math.max(0, x - sto)]], {fill:"blue",r:5,title: d =>`S_T: ${sto}X: ${x}Payoff: ${-Math.max(0, x - sto)}`,tip:true }) ],title:"Short Put position payoff"})
Option payoffs at maturity:
Long Call: \(\max(0, S_T - X)\)
Short Call: \(-\max(0, S_T - X)\)
Long Put: \(\max(0, X - S_T)\)
Short Put: \(-\max(0, X - S_T)\)
Remember that these diagrams show only the payoff at maturity and do not account for the premium paid to acquire the options or received for writing them.