You can install our site as a web app on your iOS device by utilizing the Add to Home Screen feature in Safari. Please see this thread for more details on this.
Note: This feature may not be available in some browsers.
but i'd rather use the $37k margin to make $ nowtoday I killed off an irritating DITM -p760; I had been rolling it for credit, but now it's too far at Dec 17 and it's tying up $37k margin
i used the "roll-split" solution (ie convert a PUT into a BPS with lower strike that will OTM the position)
BTC 12/17 x1 -p760 $15k debit
STO 8/6 x40 BPS +p600/-p620 $19k credit
i could have just taken the $19k and leave the -p760 to fix itself someday, but i'd rather use the $37k margin to make $ now
Call heavy, as in buy side, bought calls, and compensated it through CCs? Or, all of it was calls (CCs) sold?I am VERY call-heavy into earnings... and i am still very bullish.
But today i did 55x STO $720 call turning the assorted stuff into PMCCs for this week. Got only pennies for it, but it eases off a bit of theta-pressure - and 720 is a place where i would happily part all my calls expiring friday for ..
plus it is a big call-wall in the open-interest chart - so i hope i can close them for less than 5 cent each with an accompanying call.
Maybe we should read this as a sign that a "5-1" is on it's way.Sure hope this is a transitory bug - or maybe not - Fidelity has all of my accounts and their positions multiplied by 5.
I'm rich! But I sure do have a big pile of 760 puts to take care of
I didn't miss another 5 for 1 stock split did I!?!
Wow, just wow.Ok I am ready to share some of my first simulation results.
Purpose: To determine from simulation study the profitability and performance of a set of rolling CC strategies.
Background: I have a bunch of shares in my taxable account that I trade options on. I am hesitant to be aggressive because I don't want those shares to be called away right now, so understand the relationship between how aggressive I can be and how far out I can roll is of interest to me.
Methods: I generate thousands of random time series that mimic stock price time series using Brownian motion. I set parameters that affect the volatility and appreciation of the time series. In these studies, I keep volatility constant at a level that I think is in line with Tesla potential volatility. I vary the growth parameter depending on the test I am running.
I use the Black-Scholes model to generate the pricing of a call option with inputs of current price, strike price, volatility, time until expiration.
I created an algorithm for doing the trading / rolling strategy. The current model works as follows:
1. If no current open position, sell a weekly contract. The strike price is set by a parameter that I vary that looks out % out from current price, from 3 to 10% OTM.
2. I have a second parameter that determines at what price triggers the rolling process. If the stock price hits this threshold, then we roll. This value is set as a % away from the strike price, from -5% OTM to 2% ITM.
3. If we hit the trigger to roll, we close the current contract and try to open a new one. The new contract starts looking at 1 week out and the same % away from current price for the strike price as normal. However it recursively searches for a new position until it achieves a premium that covers the previously losses. This is done by extended out the expiration date and increasing the strike price. Each loop, the expiration date is doubled in time. So first 1 week, then 2 weeks, 4 weeks, 8 weeks, etc... How much to increase the strike price each iteration is set by a parameter that varies between 1 and 10%. Once enough premium is found, I sell a new position. If it cannot find a contract with enough premium within a year expiration, then instead of rolling it lets the shares get assigned.
4. If at just before expiration the call is OTM, close the position. Go to step 1.
So basically I feed each time series into the algorithm, I get out all the options trading times, premiums, and stock price gain (or loss) and also the gain if the shares weren't assigned. I feed in a few years of price information but the profits and trading are only tracked for 1 year (expect for when an open position extends into the next year, then must track price to close that position).
Results
For my interest, I want to see how performance of rolling strategies is influenced by specific stock appreciation ranges. I don't care so much if it doesn't work when stock goes 10x in a year because I don't think that will happen.
Let's look at cases where we allow stock price to increase 100% (+/- 25%). Buy and hold gain is in red, CC strategies (on average) yield the blue distribution. I am including the premium in the % gain, and here we can see a clean win of the CC strategy. Profits are basically shifted upward in all simulations.
The 2nd graph looks at how percent OTM affects total premium accrued (as a % gain). We can see closer strike prices (smaller % OTM) can garner higher premiums, though they can also gain less in a few cases. Further OTM strikes gain less, but have less variance.
View attachment 686898View attachment 686899
Now lets look at cases where stock goes up 200% in a year (+/- 25%). We begin getting cases where the CC rolling strategy at some point fails and we get assigned early. Thus overall gain is less than buy and hold strategy in some cases. We begin seeing worsening performance of some of the more aggressive OTM strike prices. Notice that already 4% and less OTMs now are less profitable than 6% OTM.
View attachment 686900View attachment 686901
And 300%, now a lot of cases are "failing" vs buy and hold. Note though that these failures still should still allow you to gain 100% of your investment.
View attachment 686902View attachment 686903
Interestingly, the effect of price from strike for when to close a position and roll was not that important. You could do it 5% OTM or 2% ITM and it didn't seem to matter much in this test.
View attachment 686905
For the scaling value interestingly it found lower scaling was better. So instead of rolling "up and out", this strategy really want to mostly roll out, but barely up.
View attachment 686906
So when I looked at these, I was interesting in studying the performance of say consistently selling weeklies 8% OTM, and roll out when stock price hits strike price exactly. On average, even up to ~ 300% stock appreciation in a year, the strategy would be beneficial and add another 25% gain from premiums.
View attachment 686908
For that specific strategy, if the stock gains 100% or less in a year, the rolling strategy works with no failures (no assignment).
If the stock gains between 100% and 200%, the strategy works 99% of the time.
If the stock gains between 200% and 300%, the strategy works 88% of the time.
So for me, this is good but maybe too conservative. I don't need to it to work 99% of the time up to 200% gain, because would I even hold onto the stock if it 3x's from here in a year? But it's a good starting point. I will look at 6% OTM and see how that fairs.
Limitations: There are plenty of assumptions and limitations here, I'm too lazy to go over them but feel to bring them up! This is just a simulation, not reality. Real results will be the same.
But take home message of this study, no, you cannot roll out indefinitely if the stock price keeps going up, especially 3x or 4x more in a year. But you can probably find a strategy that will allow you too, but you may have to sacrifice some gains for it.
You can check out an example simulation script here:
OptionsTracking/CoveredCallTesting100Gain.ipynb at main · JMunaretto/OptionsTracking
Track relative options pricing over time and volatility, send notification when above thresholds - JMunaretto/OptionsTrackinggithub.com
I cleaned it up a bit but still messy to play with. This is an example where I look at cases where the stock price gains ~ 100% in 1 year (+/- 25% range).
Ok I am ready to share some of my first simulation results.
Thanks for sharing!
It looks like you have (at least) three parameters: initial strike price, rolling threshold, and amount to raise the strike at each step while rolling. Have you done any analysis of the best values for those parameters? You mentioned that for the first two you tried +8% and +0%... was that shown to be best or just a random choice you tried?
Also, in this model does it immediately buy shares with any proceeds from selling the calls / sold calls getting executed? Or does it keep cash? Or something else?
Wow, just wow.
Thanks for putting in the time and more importantly for sharing this with us.
Might be worth it to cross post in the advanced options thread as well.
Way too intense for meTextbook MaxPain says Friday close $650-660. If I had money or margin, selling p650 & c660 sure looks like a pretty sure bet. Unfortunately, I’m pretty much tapped out. I could sell a couple more CCs. Hmmmm. Too late today, maybe tomorrow.
Ok I am ready to share some of my first simulation results.
Purpose: To determine from simulation study the profitability and performance of a set of rolling CC strategies.
Background: I have a bunch of shares in my taxable account that I trade options on. I am hesitant to be aggressive because I don't want those shares to be called away right now, so understand the relationship between how aggressive I can be and how far out I can roll is of interest to me.
Methods: I generate thousands of random time series that mimic stock price time series using Brownian motion. I set parameters that affect the volatility and appreciation of the time series. In these studies, I keep volatility constant at a level that I think is in line with Tesla potential volatility. I vary the growth parameter depending on the test I am running.
I use the Black-Scholes model to generate the pricing of a call option with inputs of current price, strike price, volatility, time until expiration.
I created an algorithm for doing the trading / rolling strategy. The current model works as follows:
1. If no current open position, sell a weekly contract. The strike price is set by a parameter that I vary that looks out % out from current price, from 3 to 10% OTM.
2. I have a second parameter that determines at what price triggers the rolling process. If the stock price hits this threshold, then we roll. This value is set as a % away from the strike price, from -5% OTM to 2% ITM.
3. If we hit the trigger to roll, we close the current contract and try to open a new one. The new contract starts looking at 1 week out and the same % away from current price for the strike price as normal. However it recursively searches for a new position until it achieves a premium that covers the previously losses. This is done by extended out the expiration date and increasing the strike price. Each loop, the expiration date is doubled in time. So first 1 week, then 2 weeks, 4 weeks, 8 weeks, etc... How much to increase the strike price each iteration is set by a parameter that varies between 1 and 10%. Once enough premium is found, I sell a new position. If it cannot find a contract with enough premium within a year expiration, then instead of rolling it lets the shares get assigned.
4. If at just before expiration the call is OTM, close the position. Go to step 1.
So basically I feed each time series into the algorithm, I get out all the options trading times, premiums, and stock price gain (or loss) and also the gain if the shares weren't assigned. I feed in a few years of price information but the profits and trading are only tracked for 1 year (expect for when an open position extends into the next year, then must track price to close that position).
Results
For my interest, I want to see how performance of rolling strategies is influenced by specific stock appreciation ranges. I don't care so much if it doesn't work when stock goes 10x in a year because I don't think that will happen.
Let's look at cases where we allow stock price to increase 100% (+/- 25%). Buy and hold gain is in red, CC strategies (on average) yield the blue distribution. I am including the premium in the % gain, and here we can see a clean win of the CC strategy. Profits are basically shifted upward in all simulations.
The 2nd graph looks at how percent OTM affects total premium accrued (as a % gain). We can see closer strike prices (smaller % OTM) can garner higher premiums, though they can also gain less in a few cases. Further OTM strikes gain less, but have less variance.
View attachment 686898View attachment 686899
Now lets look at cases where stock goes up 200% in a year (+/- 25%). We begin getting cases where the CC rolling strategy at some point fails and we get assigned early. Thus overall gain is less than buy and hold strategy in some cases. We begin seeing worsening performance of some of the more aggressive OTM strike prices. Notice that already 4% and less OTMs now are less profitable than 6% OTM.
View attachment 686900View attachment 686901
And 300%, now a lot of cases are "failing" vs buy and hold. Note though that these failures still should still allow you to gain 100% of your investment.
View attachment 686902View attachment 686903
Interestingly, the effect of price from strike for when to close a position and roll was not that important. You could do it 5% OTM or 2% ITM and it didn't seem to matter much in this test.
View attachment 686905
For the scaling value interestingly it found lower scaling was better. So instead of rolling "up and out", this strategy really want to mostly roll out, but barely up.
View attachment 686906
So when I looked at these, I was interesting in studying the performance of say consistently selling weeklies 8% OTM, and roll out when stock price hits strike price exactly. On average, even up to ~ 300% stock appreciation in a year, the strategy would be beneficial and add another 25% gain from premiums.
View attachment 686908
For that specific strategy, if the stock gains 100% or less in a year, the rolling strategy works with no failures (no assignment).
If the stock gains between 100% and 200%, the strategy works 99% of the time.
If the stock gains between 200% and 300%, the strategy works 88% of the time.
So for me, this is good but maybe too conservative. I don't need to it to work 99% of the time up to 200% gain, because would I even hold onto the stock if it 3x's from here in a year? But it's a good starting point. I will look at 6% OTM and see how that fairs.
Limitations: There are plenty of assumptions and limitations here, I'm too lazy to go over them but feel to bring them up! This is just a simulation, not reality. Real results will be the same.
But take home message of this study, no, you cannot roll out indefinitely if the stock price keeps going up, especially 3x or 4x more in a year. But you can probably find a strategy that will allow you too, but you may have to sacrifice some gains for it.
You can check out an example simulation script here:
OptionsTracking/CoveredCallTesting100Gain.ipynb at main · JMunaretto/OptionsTracking
Track relative options pricing over time and volatility, send notification when above thresholds - JMunaretto/OptionsTrackinggithub.com
I cleaned it up a bit but still messy to play with. This is an example where I look at cases where the stock price gains ~ 100% in 1 year (+/- 25% range).
ah yes, that's what i meant; 8/13-12/17 is 19 weeks of BPS income that i would have missed if i was lazybut i'd rather use the $37k margin to make $ now
You mean, after 08/06? I ask, because you now have 40 Contracts X $20 spread each, 40*20*100=$80,000 margin tied up.
This is super-interesting and high-quality, thank you!Ok I am ready to share some of my first simulation results.
Purpose: To determine from simulation study the profitability and performance of a set of rolling CC strategies.
Background: I have a bunch of shares in my taxable account that I trade options on. I am hesitant to be aggressive because I don't want those shares to be called away right now, so understand the relationship between how aggressive I can be and how far out I can roll is of interest to me.
Methods: I generate thousands of random time series that mimic stock price time series using Brownian motion. I set parameters that affect the volatility and appreciation of the time series. In these studies, I keep volatility constant at a level that I think is in line with Tesla potential volatility. I vary the growth parameter depending on the test I am running.
I use the Black-Scholes model to generate the pricing of a call option with inputs of current price, strike price, volatility, time until expiration.
I created an algorithm for doing the trading / rolling strategy. The current model works as follows:
1. If no current open position, sell a weekly contract. The strike price is set by a parameter that I vary that looks out % out from current price, from 3 to 10% OTM.
2. I have a second parameter that determines at what price triggers the rolling process. If the stock price hits this threshold, then we roll. This value is set as a % away from the strike price, from -5% OTM to 2% ITM.
3. If we hit the trigger to roll, we close the current contract and try to open a new one. The new contract starts looking at 1 week out and the same % away from current price for the strike price as normal. However it recursively searches for a new position until it achieves a premium that covers the previously losses. This is done by extended out the expiration date and increasing the strike price. Each loop, the expiration date is doubled in time. So first 1 week, then 2 weeks, 4 weeks, 8 weeks, etc... How much to increase the strike price each iteration is set by a parameter that varies between 1 and 10%. Once enough premium is found, I sell a new position. If it cannot find a contract with enough premium within a year expiration, then instead of rolling it lets the shares get assigned.
4. If at just before expiration the call is OTM, close the position. Go to step 1.
So basically I feed each time series into the algorithm, I get out all the options trading times, premiums, and stock price gain (or loss) and also the gain if the shares weren't assigned. I feed in a few years of price information but the profits and trading are only tracked for 1 year (expect for when an open position extends into the next year, then must track price to close that position).
Results
For my interest, I want to see how performance of rolling strategies is influenced by specific stock appreciation ranges. I don't care so much if it doesn't work when stock goes 10x in a year because I don't think that will happen.
Let's look at cases where we allow stock price to increase 100% (+/- 25%). Buy and hold gain is in red, CC strategies (on average) yield the blue distribution. I am including the premium in the % gain, and here we can see a clean win of the CC strategy. Profits are basically shifted upward in all simulations.
The 2nd graph looks at how percent OTM affects total premium accrued (as a % gain). We can see closer strike prices (smaller % OTM) can garner higher premiums, though they can also gain less in a few cases. Further OTM strikes gain less, but have less variance.
View attachment 686898View attachment 686899
Now lets look at cases where stock goes up 200% in a year (+/- 25%). We begin getting cases where the CC rolling strategy at some point fails and we get assigned early. Thus overall gain is less than buy and hold strategy in some cases. We begin seeing worsening performance of some of the more aggressive OTM strike prices. Notice that already 4% and less OTMs now are less profitable than 6% OTM.
View attachment 686900View attachment 686901
And 300%, now a lot of cases are "failing" vs buy and hold. Note though that these failures still should still allow you to gain 100% of your investment.
View attachment 686902View attachment 686903
Interestingly, the effect of price from strike for when to close a position and roll was not that important. You could do it 5% OTM or 2% ITM and it didn't seem to matter much in this test.
View attachment 686905
For the scaling value interestingly it found lower scaling was better. So instead of rolling "up and out", this strategy really want to mostly roll out, but barely up.
View attachment 686906
So when I looked at these, I was interesting in studying the performance of say consistently selling weeklies 8% OTM, and roll out when stock price hits strike price exactly. On average, even up to ~ 300% stock appreciation in a year, the strategy would be beneficial and add another 25% gain from premiums.
View attachment 686908
For that specific strategy, if the stock gains 100% or less in a year, the rolling strategy works with no failures (no assignment).
If the stock gains between 100% and 200%, the strategy works 99% of the time.
If the stock gains between 200% and 300%, the strategy works 88% of the time.
So for me, this is good but maybe too conservative. I don't need to it to work 99% of the time up to 200% gain, because would I even hold onto the stock if it 3x's from here in a year? But it's a good starting point. I will look at 6% OTM and see how that fairs.
Limitations: There are plenty of assumptions and limitations here, I'm too lazy to go over them but feel to bring them up! This is just a simulation, not reality. Real results will be the same.
But take home message of this study, no, you cannot roll out indefinitely if the stock price keeps going up, especially 3x or 4x more in a year. But you can probably find a strategy that will allow you too, but you may have to sacrifice some gains for it.
You can check out an example simulation script here:
OptionsTracking/CoveredCallTesting100Gain.ipynb at main · JMunaretto/OptionsTracking
Track relative options pricing over time and volatility, send notification when above thresholds - JMunaretto/OptionsTrackinggithub.com
I cleaned it up a bit but still messy to play with. This is an example where I look at cases where the stock price gains ~ 100% in 1 year (+/- 25% range).
Way too intense for me
My first thought / question is the brownian motion assumption. In a time series that is a random walk.
I've read in other contexts that daily movements in the stock market and individual instruments are best modeled as a random walk, so its a good assumption for very short time periods.
The question / thought is over a longer period of time. I personally am not worried about 3x in a year when it is randomly distributed throughout the year. The likelihood that the 3x is concentrated in a 2-6 week time period is pretty small. But that is the experience we've had - sharp moves in a short time period.
A couple of examples from the last year.
- Nov 9, '16. 408. I think that this was the S&P announcement
- Dec 18, '20: 695 . the entry price for S&P inclusion. 34 days later. 70% gain.
- January 8, '21: $880. 19 days later. 27% gain, or 126% since Nov (53 days)
- January 26, '21: 883. peak as we prepare to drop
- March 8, '21. 563. bottom for the year (touched later as well). ~41 days later. 36% drop
And in case the S&P event seems artificial or a one-off:
- Aug 3 '20, 291.
- Aug 24, '20. 443. 52% gain in 21 days
So a question - have you analyzed the time series generated to see what more extreme moves look like in them?
Thanks for this work and reporting out on it - great stuff.
Many thanks @ZeApelido
I don't suppose Max Pain can be weaved into your magic?
Are others rolling out more than a month? Aren't you better taking a loss and going back to weeklies?
I like the 8% OTM and then covering when the price hits the strike price - nice and simple. However, most here would ride it out (I think) assuming there is still time and the max pain remains lower.
Best post ever on the thread! Also seems to validate lycanthrope strategy the most. Who knew the wolfman has statistics on his side?Ok I am ready to share some of my first simulation results.
Purpose: To determine from simulation study the profitability and performance of a set of rolling CC strategies.
Background: I have a bunch of shares in my taxable account that I trade options on. I am hesitant to be aggressive because I don't want those shares to be called away right now, so understand the relationship between how aggressive I can be and how far out I can roll is of interest to me.
Methods: I generate thousands of random time series that mimic stock price time series using Brownian motion. I set parameters that affect the volatility and appreciation of the time series. In these studies, I keep volatility constant at a level that I think is in line with Tesla potential volatility. I vary the growth parameter depending on the test I am running.
I use the Black-Scholes model to generate the pricing of a call option with inputs of current price, strike price, volatility, time until expiration.
I created an algorithm for doing the trading / rolling strategy. The current model works as follows:
1. If no current open position, sell a weekly contract. The strike price is set by a parameter that I vary that looks out % out from current price, from 3 to 10% OTM.
2. I have a second parameter that determines at what price triggers the rolling process. If the stock price hits this threshold, then we roll. This value is set as a % away from the strike price, from -5% OTM to 2% ITM.
3. If we hit the trigger to roll, we close the current contract and try to open a new one. The new contract starts looking at 1 week out and the same % away from current price for the strike price as normal. However it recursively searches for a new position until it achieves a premium that covers the previously losses. This is done by extended out the expiration date and increasing the strike price. Each loop, the expiration date is doubled in time. So first 1 week, then 2 weeks, 4 weeks, 8 weeks, etc... How much to increase the strike price each iteration is set by a parameter that varies between 1 and 10%. Once enough premium is found, I sell a new position. If it cannot find a contract with enough premium within a year expiration, then instead of rolling it lets the shares get assigned.
4. If at just before expiration the call is OTM, close the position. Go to step 1.
So basically I feed each time series into the algorithm, I get out all the options trading times, premiums, and stock price gain (or loss) and also the gain if the shares weren't assigned. I feed in a few years of price information but the profits and trading are only tracked for 1 year (expect for when an open position extends into the next year, then must track price to close that position).
Results
For my interest, I want to see how performance of rolling strategies is influenced by specific stock appreciation ranges. I don't care so much if it doesn't work when stock goes 10x in a year because I don't think that will happen.
Let's look at cases where we allow stock price to increase 100% (+/- 25%). Buy and hold gain is in red, CC strategies (on average) yield the blue distribution. I am including the premium in the % gain, and here we can see a clean win of the CC strategy. Profits are basically shifted upward in all simulations.
The 2nd graph looks at how percent OTM affects total premium accrued (as a % gain). We can see closer strike prices (smaller % OTM) can garner higher premiums, though they can also gain less in a few cases. Further OTM strikes gain less, but have less variance.
View attachment 686898View attachment 686899
Now lets look at cases where stock goes up 200% in a year (+/- 25%). We begin getting cases where the CC rolling strategy at some point fails and we get assigned early. Thus overall gain is less than buy and hold strategy in some cases. We begin seeing worsening performance of some of the more aggressive OTM strike prices. Notice that already 4% and less OTMs now are less profitable than 6% OTM.
View attachment 686900View attachment 686901
And 300%, now a lot of cases are "failing" vs buy and hold. Note though that these failures still should still allow you to gain 100% of your investment.
View attachment 686902View attachment 686903
Interestingly, the effect of price from strike for when to close a position and roll was not that important. You could do it 5% OTM or 2% ITM and it didn't seem to matter much in this test.
View attachment 686905
For the scaling value interestingly it found lower scaling was better. So instead of rolling "up and out", this strategy really want to mostly roll out, but barely up.
View attachment 686906
So when I looked at these, I was interesting in studying the performance of say consistently selling weeklies 8% OTM, and roll out when stock price hits strike price exactly. On average, even up to ~ 300% stock appreciation in a year, the strategy would be beneficial and add another 25% gain from premiums.
View attachment 686908
For that specific strategy, if the stock gains 100% or less in a year, the rolling strategy works with no failures (no assignment).
If the stock gains between 100% and 200%, the strategy works 99% of the time.
If the stock gains between 200% and 300%, the strategy works 88% of the time.
So for me, this is good but maybe too conservative. I don't need to it to work 99% of the time up to 200% gain, because would I even hold onto the stock if it 3x's from here in a year? But it's a good starting point. I will look at 6% OTM and see how that fairs.
Limitations: There are plenty of assumptions and limitations here, I'm too lazy to go over them but feel to bring them up! This is just a simulation, not reality. Real results will be the same.
But take home message of this study, no, you cannot roll out indefinitely if the stock price keeps going up, especially 3x or 4x more in a year. But you can probably find a strategy that will allow you too, but you may have to sacrifice some gains for it.
You can check out an example simulation script here:
OptionsTracking/CoveredCallTesting100Gain.ipynb at main · JMunaretto/OptionsTracking
Track relative options pricing over time and volatility, send notification when above thresholds - JMunaretto/OptionsTrackinggithub.com
I cleaned it up a bit but still messy to play with. This is an example where I look at cases where the stock price gains ~ 100% in 1 year (+/- 25% range).
AWESOME!Ok I am ready to share some of my first simulation results.
Purpose: To determine from simulation study the profitability and performance of a set of rolling CC strategies.
Background: I have a bunch of shares in my taxable account that I trade options on. I am hesitant to be aggressive because I don't want those shares to be called away right now, so understand the relationship between how aggressive I can be and how far out I can roll is of interest to me.
Methods: I generate thousands of random time series that mimic stock price time series using Brownian motion. I set parameters that affect the volatility and appreciation of the time series. In these studies, I keep volatility constant at a level that I think is in line with Tesla potential volatility. I vary the growth parameter depending on the test I am running.
I use the Black-Scholes model to generate the pricing of a call option with inputs of current price, strike price, volatility, time until expiration.
I created an algorithm for doing the trading / rolling strategy. The current model works as follows:
1. If no current open position, sell a weekly contract. The strike price is set by a parameter that I vary that looks out % out from current price, from 3 to 10% OTM.
2. I have a second parameter that determines at what price triggers the rolling process. If the stock price hits this threshold, then we roll. This value is set as a % away from the strike price, from -5% OTM to 2% ITM.
3. If we hit the trigger to roll, we close the current contract and try to open a new one. The new contract starts looking at 1 week out and the same % away from current price for the strike price as normal. However it recursively searches for a new position until it achieves a premium that covers the previously losses. This is done by extended out the expiration date and increasing the strike price. Each loop, the expiration date is doubled in time. So first 1 week, then 2 weeks, 4 weeks, 8 weeks, etc... How much to increase the strike price each iteration is set by a parameter that varies between 1 and 10%. Once enough premium is found, I sell a new position. If it cannot find a contract with enough premium within a year expiration, then instead of rolling it lets the shares get assigned.
4. If at just before expiration the call is OTM, close the position. Go to step 1.
So basically I feed each time series into the algorithm, I get out all the options trading times, premiums, and stock price gain (or loss) and also the gain if the shares weren't assigned. I feed in a few years of price information but the profits and trading are only tracked for 1 year (expect for when an open position extends into the next year, then must track price to close that position).
Results
For my interest, I want to see how performance of rolling strategies is influenced by specific stock appreciation ranges. I don't care so much if it doesn't work when stock goes 10x in a year because I don't think that will happen.
Let's look at cases where we allow stock price to increase 100% (+/- 25%). Buy and hold gain is in red, CC strategies (on average) yield the blue distribution. I am including the premium in the % gain, and here we can see a clean win of the CC strategy. Profits are basically shifted upward in all simulations.
The 2nd graph looks at how percent OTM affects total premium accrued (as a % gain). We can see closer strike prices (smaller % OTM) can garner higher premiums, though they can also gain less in a few cases. Further OTM strikes gain less, but have less variance.
View attachment 686898View attachment 686899
Now lets look at cases where stock goes up 200% in a year (+/- 25%). We begin getting cases where the CC rolling strategy at some point fails and we get assigned early. Thus overall gain is less than buy and hold strategy in some cases. We begin seeing worsening performance of some of the more aggressive OTM strike prices. Notice that already 4% and less OTMs now are less profitable than 6% OTM.
View attachment 686900View attachment 686901
And 300%, now a lot of cases are "failing" vs buy and hold. Note though that these failures still should still allow you to gain 100% of your investment.
View attachment 686902View attachment 686903
Interestingly, the effect of price from strike for when to close a position and roll was not that important. You could do it 5% OTM or 2% ITM and it didn't seem to matter much in this test.
View attachment 686905
For the scaling value interestingly it found lower scaling was better. So instead of rolling "up and out", this strategy really want to mostly roll out, but barely up.
View attachment 686906
So when I looked at these, I was interesting in studying the performance of say consistently selling weeklies 8% OTM, and roll out when stock price hits strike price exactly. On average, even up to ~ 300% stock appreciation in a year, the strategy would be beneficial and add another 25% gain from premiums.
View attachment 686908
For that specific strategy, if the stock gains 100% or less in a year, the rolling strategy works with no failures (no assignment).
If the stock gains between 100% and 200%, the strategy works 99% of the time.
If the stock gains between 200% and 300%, the strategy works 88% of the time.
So for me, this is good but maybe too conservative. I don't need to it to work 99% of the time up to 200% gain, because would I even hold onto the stock if it 3x's from here in a year? But it's a good starting point. I will look at 6% OTM and see how that fairs.
Limitations: There are plenty of assumptions and limitations here, I'm too lazy to go over them but feel to bring them up! This is just a simulation, not reality. Real results will be the same.
But take home message of this study, no, you cannot roll out indefinitely if the stock price keeps going up, especially 3x or 4x more in a year. But you can probably find a strategy that will allow you too, but you may have to sacrifice some gains for it.
You can check out an example simulation script here:
OptionsTracking/CoveredCallTesting100Gain.ipynb at main · JMunaretto/OptionsTracking
Track relative options pricing over time and volatility, send notification when above thresholds - JMunaretto/OptionsTrackinggithub.com
I cleaned it up a bit but still messy to play with. This is an example where I look at cases where the stock price gains ~ 100% in 1 year (+/- 25% range).
I’m very curious now to see the portfolio differences if stock goes sideways or down 10%…I don't think I know how I could incorporate max pain as I have no model for it.
Selling CC should beat 100%.I’m very curious now to see the portfolio differences if stock goes sideways or down 10%…
This is super-interesting and high-quality, thank you!
Did you consider, rather than using random stock movements, using the historical pricing to model a range of what-if scenarios?
And I'm really interested to see how things would turn out if you wen aggressive and ATM on the strikes, rather the 8%, or whatever OTM?
AWESOME!
Was it you @bxr140 that did a backtest on covered call strategy for 2020, and found that even with such big run up in the year, you would still have benefitted as much as HODLing the shares?
I’m very curious now to see the portfolio differences if stock goes sideways or down 10%…