Thanks ekz for your options implementation. I've traded options for years manually, and can provide some more thoughts around using them.
The further out of the money the strike is, the cheaper they are to buy. But they are also less liquid. It quickly gets difficult to execute the order at a good price if the bid ask is 0.20 x 0.25, and low size on the bid or ask. If you are only trading $500 you can work with it, but buying $10,000 worth of a 0.25 option is 400 contracts, and if the size on the ask is 50 then you will likely pay more for that entire position.
So going far OTM liquidity and execution becomes troublesome with any kind of size, unless you are trading only the most liquid underlyings. Same thing goes with spreads, however spreads also require more patience when executing an order, especially to maximize profits. A spread quote may be 0.95 x 1.15, and you want a good fill so you place it at 1.05 and may wait for an hour or 2 to get it filled.
We can go the opposite way of OTM and go ITM. with ITM, the closer the strike is to zero the more the option behaves like a leverage stock position. If the stock is at 100, and you buy a 50.00 strike call, then if the stock goes up to 101, then the call will go up near $1.00 in value for example. But deep ITM options have less liquidity too, so also troublesome.
For this strategy I would suggest the following 2 option methods.
1. Buy Calls less than 1 standard deviation away between ATM and ITM. These should have good liquidity, and not be so cheap that execution becomes troubleshome.
2. sell an ATM put credit spread, and use those proceeds to buy a slightly OTM call. This means you put up the requirement for the short spread, and if the stock drops then you just lose the requirement. But if the stock takes off you have got a slightly OTM call for free.
I'm a trader learning to program, so I'm not capabale of implementing this logic in a strategy yet, but hopefully it helps.