Formula for calculating BreakEvenPoint of 2+ CoveredCalls

5.81 is wrong. It has to be about 6.75, just watch the orange line crossing 0 at the y axis.
The Premiums were calculated using the Black-Scholes calculator using S=16, DTE=90, IV=300.
It does not make any sense to come up with a new set of such data as it does not add any new value or insight to the problem.
And: you better should use such a table that also includes the IVs.

Your tool is wrong. Look at the 12 & 20 calls. Does that make sense?
As I said previously, BE does not change based upon DTE, IV, etc...

***My final comment on this topic.
 
Your tool is wrong. Look at the 12 & 20 calls. Does that make sense?
As I said previously, BE does not change based upon DTE, IV, etc...

***My final comment on this topic.
IMO, my tool works fine.
Anyway, thanks for your effort. You just tried. Bye! :)
 
Still trying to find the correct formula... Almost found... A really complicated beast!

Here's first the formula for a single CoveredCall.
The formula for multiple CoveredCalls is much more code and not finished yet.
The code below is an extraction from my library code, ie. part of a C++ class; can easily be used also in other languages as it's self-declarative and well commented.

Code:
/*
Calculating basic properties of a single CoveredCall
Author & (c): Quanto @ ET, 2024-01-15-Mo

S    : Current stock price
S0   : Paid stock price (can be much different from S, ie. when was bought much earlier)
K    : Strike of the ShortCall
Pr   : Call premium used in ShortCall trade (as part of the CoveredCall); normally uses S as the basis.
CB   : CostBasis : < 0 means NetDebit, else NetCredit (NetCredit happens when S is much higher than S0)
MinPL: PL@(Sx=0)
MaxPL: PL@(Sx>=K)
BEP  : Break/Even Point (ie. the Sx where PnL=0) for the CoveredCall; < 0 means that PL@(Sx=0) is > 0, ie. can happen only with NetCredit
MISC : - using MinPL, MaxPL, and CB one can of course calc also the possible MinPL% and MaxPL% (left as an exercise)
       - using S, CB, and current Premium one can of course calc also the current PnL and PnL% (left as an exercise)
       - using BEP and S one can calc the distance from S to BEP, also the percentual distance (left as an exercise)
*/
//...
void calc_CoveredCall()
  {
    CB    = -S0 + Pr;
    MinPL = CB;
    MaxPL = K + CB;
    BEP   = -CB;
    //...
  }
 
Last edited:
Here finally is the solution to the problem of finding the CombinedBEP for the said 3 CoveredCalls in the OP:
CombinedBEP=6.721346
Code:
PgmArgs(5): ./yfapi.exe calc_CC_BEP S0=15,S=16,DTE=90,K=12,IV=300,Q=1 S0=16,S=16,DTE=90,K=4,IV=300,Q=1 S0=17,S=16,DTE=90,K=20,IV=300,Q=1

InOrigOrder:
0 : S0=15.0000  S=16.0000  DTE=90.00   K=12.00  Pr=9.7271  (IV=300.00 ) Q=1  : CB=-5.272917   MinPL=-5.272917   MaxPL=6.727083    BEP=5.272917  
1 : S0=16.0000  S=16.0000  DTE=90.00   K=4.00   Pr=12.9545 (IV=300.00 ) Q=1  : CB=-3.045501   MinPL=-3.045501   MaxPL=0.954499    BEP=3.045501  
2 : S0=17.0000  S=16.0000  DTE=90.00   K=20.00  Pr=7.8757  (IV=300.00 ) Q=1  : CB=-9.124273   MinPL=-9.124273   MaxPL=10.875727   BEP=9.124273  
CombinedCB=-17.4427

InSortedOrder:
0 : S0=16.0000  S=16.0000  DTE=90.00   K=4.00   Pr=12.9545 (IV=300.00 ) Q=1  : CB=-3.045501   MinPL=-3.045501   MaxPL=0.954499    BEP=3.045501  
1 : S0=15.0000  S=16.0000  DTE=90.00   K=12.00  Pr=9.7271  (IV=300.00 ) Q=1  : CB=-5.272917   MinPL=-5.272917   MaxPL=6.727083    BEP=5.272917  
2 : S0=17.0000  S=16.0000  DTE=90.00   K=20.00  Pr=7.8757  (IV=300.00 ) Q=1  : CB=-9.124273   MinPL=-9.124273   MaxPL=10.875727   BEP=9.124273  

Prepare:
0 : K=4.00   : B.MinPL=-17.442691   B.MaxPL=-5.442691  
1 : K=12.00  : B.MinPL=-5.442691    B.MaxPL=10.557309  
2 : K=20.00  : B.MinPL=10.557309    B.MaxPL=18.557309  

CombinedBEP=6.721346
 
Last edited:
Back
Top