FairPut v1.0a - A BSM options calculator with integrated 'FairPut' payout algorithm and the main Greeks
All rights reserved. Copyright (c) by the copyright owner/author (info@fairput.com). Free for non-commercial use only.
The latest version can be found at https://github.com/FairPut
Args : ./FairPut.exe 100 100 30 365 365 0.0 0.0 100 1
Params: Spot_S=100.000000 Strike_K=100.000000 AnnVola_s=30.000000% ExpDays_t=365.000000 AnnDays_ty=365.000000 AnnEarningsYield_r=0.000000% AnnDividendsYield_q=0.000000% SpotAtExp_Sx=100.000000 fShowText=1
CALL=11.923538 PUT=11.923538
Internal info:
S=100.000000 K=100.000000 s=0.300000 t=1.000000 r=0.000000 q=0.000000 Sx=100.000000
st=0.300000 rt=0.000000 qt=0.000000 u=0.000000 ut=0.000000 exp_mqt=1.000000 exp_mrt=1.000000
z2=-0.150000 z0=0.000000 z1=0.150000 p2=0.440382 p0=0.500000 p1=0.559618
Other info:
S2K: z_S2K=0.000000 p_S2K=0.500000
K2S: z_K2S=0.000000 p_K2S=0.500000
Sx@: +1SD(p=0.158655)=134.985881 0SD(p=0.5)=100.000000 -1SD(p=0.158655)=74.081822 [based on S]
Kx@: +1SD(p=0.158655)=134.985881 0SD(p=0.5)=100.000000 -1SD(p=0.158655)=74.081822 [based on K]
Greeks:
CALL : Delta=0.559618 FairDelta=0.500000 Gamma=0.013149 Vega=0.394479 Theta365=-0.016211 Rho=0.440382
PUT : Delta=-0.440382 FairDelta=-0.500000 Gamma=0.013149 Vega=0.394479 Theta365=-0.016211 Rho=-0.559618
FairPUT: Delta=-0.440382 FairDelta=-0.500000 Gamma=0.013149 Vega=0.394479 Theta365=-0.016211 Rho=-0.559618
Payouts at expiration for Sx=100.000000(0.000000%):
Long CALL:
LZ(const): Sx <= K(100.000000;z=0.000000) POZ(var): Sx > K(100.000000;z=0.000000) PZ(var): Sx > K+C(111.923538;z=0.375486)
LZ_MaxLoss=C(11.923538) PZ_MaxProfit=Sx-C(ie. unlimited)
Credit=-11.923538 Payout=0.000000 Profit=-11.923538(-100.00%)
Short CALL:
LZ(var): Sx >= K+C(111.923538;z=0.375486) POZ(var): Sx < K+C(111.923538;z=0.375486) PZ(const): Sx <= K(100.000000;z=0.000000)
LZ_MaxLoss=Sx-C(ie. unlimited) PZ_MaxProfit=C(11.923538)
Credit=11.923538 Payout=0.000000 Profit=11.923538(100.00%)
Long PUT:
LZ(const): Sx >= K(100.000000;z=0.000000) POZ(var): Sx < K(100.000000;z=0.000000) PZ(var): Sx < K-P(88.076462;z=-0.423216)
LZ_MaxLoss=P(11.923538) PZ_MaxProfit=K-P(88.076462;738.677212%)
Credit=-11.923538 Payout=0.000000 Profit=-11.923538(-100.00%)
Short PUT:
LZ(var): Sx <= K-P(88.076462;z=-0.423216) POZ(var): Sx > K-P(88.076462;z=-0.423216) PZ(const): Sx >= K(100.000000;z=0.000000)
LZ_MaxLoss=K-P(88.076462;-738.677212%) PZ_MaxProfit=P(11.923538)
Credit=11.923538 Payout=0.000000 Profit=11.923538(100.00%)
Long FairPUT:
LZ(const): Sx >= K(100.000000;z=0.000000) POZ(var): Sx < K(100.000000;z=0.000000) PZ(var): Sx < K-P(88.076462;z=-0.423216)
LZ_MaxLoss=P(11.923538) PZ_MaxProfit=Sup-K-P(ie. unlimited)
Credit=-11.923538 Payout=0.000000 Profit=-11.923538(-100.00%) (z=0.000000 zUp=0.000000 Sup=100.000000(0.00%)) Smid=100.000000(0.00) Sdown=100.000000(0.00%)
Long FairPut is a Long PUT with FairPut algorithm. The difference is only in the Payout and Profit.
Long FairPUT is the mirror image of CALL at same z distance from K.
This means: Long PUT payout in BSM is wrong since the 1973 Black-Scholes paper, and has to be replaced by Long FairPUT payout.
ATTN: In a market, Long PUT and Long FairPUT cannot co-exist as this would make arbitrage possible.
A trademark for 'FairPut' has officially been filed on 2020-08-18; a commercial use of FairPut requires permission, ie. a usage license.
FairPut officially was first announced to the public on the same day at the EliteTrader (ET) board:
https://www.elitetrader.com/et/threads/new-invention-for-the-derivatives-market-how-to-profit-of-it.348911/page-5#post-5181715
In later postings it was refined and extended for more use cases (initially it was bound to the CALL premium, now it works also with the PUT premium).
Short FairPUT (same as Short PUT):
LZ(var): Sx <= K-P(88.076462;z=-0.423216) POZ(var): Sx > K-P(88.076462;z=-0.423216) PZ(const): Sx >= K(100.000000;z=0.000000)
LZ_MaxLoss=K-P(88.076462;-738.677212%) PZ_MaxProfit=P(11.923538)
Credit=11.923538 Payout=0.000000 Profit=11.923538(100.00%)
Legend:
LZ: loss zone, POZ: payout zone, PZ: profit zone
var: variable/continuous/changing/rising/falling, const: constant/fixed/limited/same/equal