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.
is the underlying asset value at maturity , and is the futures price at time zero, and is the option exercise price.
Underlying asset
Change the value of the asset at maturity using the slider below, the payoff is represented with a dot:
viewof s = Inputs.range([0,150], {step:1,label:"S_T",value:100})
s = 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"})
Long position payoff
Payoffs on a Long position on an asset
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"})
Short position payoff
Payoffs on a Short position on an asset
When you purchase an asset (long position), the payoff is simply the value of the asset at maturity . 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, . 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 () 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"})
Long futures position payoff
Payoffs on a Long position on a futures contract
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"})
Short futures position payoff
Payoffs on a Short position on a futures contract
The payoff of a futures contract at maturity is the difference between the spot price of the underlying asset at maturity () and the futures price agreed upon at the initiation of the contract ():
For a long position (buyer of the futures contract), the payoff is
For a short position (seller of the futures contract), the payoff is
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})
x = 100
sto = 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"})
Long Call position payoff
Payoffs on a Long position on a Call option at the option maturity
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"})
Short Call position payoff
Payoffs on a Short position on a Call option at the option maturity
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"})
Long Put position payoff
Payoffs on a Long position on a Put option at the option maturity
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"})
Short Put position payoff
Payoffs on a Short position on a Put option at the option maturity
Option payoffs at maturity:
Long Call:
Short Call:
Long Put:
Short Put:
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.