I should have known better, there was a bug in my code.
But I also found a quirk in the php date arithmetic, a rounding error but only when the days to expiration are multiples of 5 weeks (35 days rounded up to 36). It’s a bug not worth fixing.
o o o o o o o o o o o o o o o o o o o o o o o o
June was the first month when I applied the full power of the Covered Call Selector and it was a very good month, 4.7% in premiums collected and only 1 out of 10 contracts had a capital loss. Six were assigned which means most they had capital gains - around 25% of the premium.
July will see little activity as it’s earnings season.
Earnings season just crapped ENPH, down pre market to $143.50, down by $23.30, 13.97%.
I was expecting my $170 strike price calls to be assigned today. Now they will expire worthless. What to do with ENPH? I’ll make up my mind before the trading day is over.
Just to be on the safe side I downloaded the option chains I would be using to reinvest the ENPH cash.
o o o o o o o o o o o o o o o o o o o o o
The market opened with ENPH at $150. I bought back the call (10¢) and sold ENPH. Might as well go all in with the covered call strategy instead of anchoring on ENPH.
With the cash I sold covered calls on SentinelOne, Inc. (S) and Roku, Inc. (ROKU) bringing the July premiums to 4% of the portfolio. The monthly average from April to July is 4.3%. While it’s too early to tell how the strategy will perform long term it’s beating the S&P 500 handily as well as the NASDAQ. Have to see how well it will perform in a bear market taking into account capital gains or losses.
My next project is to update the Balance feature of the Portfolio app to replace the tracking spreadsheets which are quite cumbersome.
Why bother buying back the call? Why not just let it expire worthless? I sell puts all the time (on stocks that I am willing to buy at that strike price minus the put premium I receive), and they regularly expire worthless. A few expired worthless last Friday.
If you already own ENPH, albeit at a loss, did you consider keeping it and selling new calls against it? You could probably do that repeatedly, even every week, for at least for 3-6 months, because there’s only a small chance of it rising anytime soon (IIRC, their guidance was 4-6 months of no growth).
Good question! It gives me three extra days to expiration on any call I sell on Friday instead of on Monday. A bit higher premium!
I did not lose money on ENPH, I made an IRR of 6.6% over 4 years, not bad but less than the market average. I would have made more selling at $170. After ENPH hit its all time high on Dec 2 I sold 13 calls serially but I would have been better off selling ENPH at $336.00.
The reason not to repeat was because ENPH is a bit too pricy for the covered call strategy that needs diversification to reduce the risk of capital loss. It only costs two commissions to change to something else. In this case three because I sold calls on two stocks.
There is no reason to anchor. Every time I run the Covered Call Selector it picks the best stocks to sell call on. That’s it’s job description!
Covered calls had great results during May and June and less great from then on. Bull runs sure help. Part of the problem was using longer time to expiration. Not only does time value drop fastest during the last week but the shorter holding period produces fewer surprises.
The Covered Call Selector is designed to crunch as much data as possible, the difficulty is downloading the option chains. I had been building an ad-hoc list of covered call candidates but the list or inventory needed to be improved which I just finished doing. I decided to explore three new sources, S&P 100, NASDAQ 100 and ARK Invest which has been recovering from a terrible slump. Cathy wood has some good picks
Instead of doing time consuming research I let the Covered Call Selector do the picking, it knows what it likes!
Processing so many stocks is a mind and soul numbing exercise but it had to be done. First I eliminated all the duplicates, securities that had no options, all the securities under $10, and most of the securities over $100. That left 178 ticker symbols and it took several hours to download their option chains.
The Selector’s default settings are:
Strike: ATM, max 35 days
Premium > $100
Cash per day > $5
Discount > 1%
Anything less is just worth the trouble. The normal procedure is to tighten the settings in stages until only a handful of calls are left standing. The default settings applied to the current list of 176 stocks yields 862 calls when limiting the share price to $100. Limiting the share price to $120 yields over 1,000 calls.
I had some 300 candidates to deal with and I knew I had to pare the list down to a manageable size. My first attempt cut too much specially because I shortened the days to expiration to two weeks. My next attempt leaving days to expiration at 35 days yielded a reasonable 176 stocks.
Captain Denny’s “covered calls” strategy is the best, novel, workable alternate to “invest in the whole market for the long term” strategy I have seen presented on METAR.
Except mine: study where rich people are starting to move, study why, and buy bare land or the occassional building with land in the path of development that has water rights, security, and lots of whatever the rich want.
Charlie, in the past I randomly encountered and noticed it, or read about it in status magazines etc (rather boring and tedious to read but easy to scan), and gave especially close attention to gay folk, who are often pioneers. You have to be careful because many communities and RE agencies who want to attract people simply pay flacks to place stories. But San Miguel de Allende, Mexico, starting to surge with richer people, mostly USAians, 25 years or so ago and stories abounded. About 8 years ago the flow shifted from USAians to mostly wealthy Mexicans. The pattern in San Miguel echoed what I had seen much earlier in Carmel by the Sea in California, which was first energized over 70 years ago by craftspeople and arty types attracted by the stunning beauty and then cheap cost of living. Vacationers followed, and then the rich went nuts for the place. I avoid even stopping for lunch there any longer. Aspen, Colorado, repeated the story.
As to monthly income, well that comes nearer the end of the cycle from owning not bare land but switching to homes you can rent out. We have just reached that point now in San Miguel, where I have switched from predominantly bare land (only 25% by value of my holdings there) to homes with some kind of special attraction, such as stand out architectural homes with a very cool vibe or location near clubs etc.
(the gay angle is ancient and has now mostly faded out, as it was based on how gay people were ferociously discriminated against and reacted with cleverness. I started RE investing long ago by mapping where gay men were pioneering (locations of hip Antique Shops were a dead giveaway) in the gay version of gentrification in poorer districts of San Francisco, Seattle, and etc. I took on long term rental leases in those locations and subleased to tenants, sometimes guys living communally…) (But my best investment of all time was not searching out rich or gay folk, but by betting big big time in bare land at Mammoth Mountain California when people got hysterical and panic sold over a huge increase in volcanically related earthquakes there that I knew from long study signifiied almost nothing)
In software we call them bugs. I found (another) one
When shares are split the old options have to be repriced. The problem is that the CBOE option chains have both, new and old, and no filter to separate them. This problem has to be solved with a workaround in my Upload code. The solution is simple enough, the old options have an extra digit in the symbol.
The fly in the ointment is that the option list I created has stocks that should not be on the list.
The strike price is split but the bid/ask prices are set by the market and they are not necessarily in sync with the new options.
That’s part of it but more important is that I can’t buy’s shares at the old price and split them so those calls become a nuisance that complicates the Call Selector’s job. The easiest solution is to ignore them.
The php ignore code turned out to be extra special simple
I ran into a more complex problem, the selection of the expiration date range. When working mid week I want to exclude the options expiring this Friday. Not that these are poor calls to sell, the ‘dollars per day’ calculation is so high that it make comparisons difficult. This is another issue that I had not thought about ahead of time. The Selector keeps evolving, it’s now in its fourth year.
You are, at times, working very hard for your money.
But I suspect you are enjoying it mightily. LOL.
My nephews are now agog with your methodology and I send you their thanks. They are sticking to traditional long term buy and hold mostly focused on high tech they know (silicon valley boys all three), but want to diversify their knowledge of how “it can be done.”
Writing code has been a gift of the gods for me. Some people paint, others make music, some are athletes. I write beautiful code and enjoy the creativity. Having started writing machine code before computing was taught in school I have gone through several generation of the art.
Once upon a time there was RPG, Report Program Generator, whose job it was to replicate on the IBM 360 what was previously done with Unit Record (punched cards) and so avoid writing real code. I got into a discussion with Data Processing friends and one bet me it was not possible to make bar charts with RPG. The two bottles of Chivas Regal I won were smooth! It’s fun and games. Best yet, it tells me I’m not yet brain dead.
Traditional long term buy and hold requires a lot of smart guessing about what will work and what won’t. Selling covered calls has the benefit of the law of large numbers and it has elements of casino gambling and insurance. Simply put, call options have high premiums when investors are bullish on the stock and they buy calls on them as bets they can beat the market. Finding those bets is what the Call Selector does. These days I’m 1/3rd LTBH, 2/3rds covered calls.
I’m glad to hear some people like it enough to send me their thanks, most gratifying!