BOT Analytics 2: Electric Botaloo

Hey everybody!

Disclaimer
This is not financial advice. I am not a financial advisor and am just a bored programmer.

I saw the work by fellow friend and bot-analyzer [SixUmbreons] and reached out to him last week with some questions. He was kind enough to send me the spreadsheet he created from the bot calls analysis to get started. I ended up setting up writing some code to back test the bot by using Minute-by-Minute Options data and QuantConnect. My ultimate goal is to see if there is an optimal way to play this bot or if it shear luck :slight_smile: Some results are below:

1st Iteration - Buy Every Position and Hold
My first test was with the simplest strategy I could think of. Buy as many positions as possible with a 0.05% sizing per position and hold until expiry. I would then sell the contract at expiry instead of exercising the options to prevent holding any stock positions.

Parameters

  • Buy each position at market price when signal given with 0.05% of available buying power
  • Hold position until expiry and sell at market to avoid exercising the option

Results


Summary
As you can see – not the most ideal strategy. I’d be better off following the Dunce Caps. But let’s see if we can add some basic profit taking and see if that helps?

2nd Iteration - Basic Profit Taking and Stop Losses

Parameters

  • Buy each position at market price when signal given with 0.05% of available buying power
  • Go over every position every minute. Sell at a loss if position is down <= 30%. Sell at a profit if position is up 50%
  • If neither is met, hold until expiry and sell at market to avoid exercising the option

*Results


Summary
Ok – at least we are somewhat better than before! But obviously still not an ideal strategy.

Data Set

  • I used the attached .csv that was generated by SixUmbreons. I’ve uploaded it here
  • Not all of the option data was available – I simply skipped these option trades. Out of the 3142 option trades tracked, 55 were not available.
  • This is using the QuantConnect/AlgoSeek options database. I’m assuming I set up the data feed correctly and the data is correct

Future
I’ll continue to fiddle with the system to see if there is an ‘optimal’ way to play the bot. Please post some strategies you would like to try out below and I’ll give them a whirl. My next thoughts are putting logic regarding position entrances (most likely limit buys from the entry given on the spreadsheet) to see how that looks.

8 Likes

I tried to tell people that but the bot believers are faithful

3 Likes

This is awesome, thank you for doing this. I am trying to think of criteria that could lead to some possible profitable strategy.

It would be interesting to see what would happen if bot trades were only placed when they followed the general “trend” of the market. Ie if the bot calls out a Call the trade would only be taken if the 9day moving average is above the 21day moving average. Not sure how much of a pain in the ass this would be to test.

1 Like

I wonder if making the margins a bit smaller would help. Maybe stop loss at -10-15% and set limit sells at +30% see how that does.

2 Likes

I agree with Wiplash, set the take profit to 30% and see what that does.

The flaw in the bot is you get a callout for a trade but if it’s a multi leg strategy like a strangle you are only seeing one side, so some TA to determine entry points or if you should even enter is still a good idea.

Personally I love the bot, but I don’t enter every single callout and I generally take profit at 20% unless I can clearly see it’s still on an uptrend

2 Likes

Try only doing bot call outs that are 70 percent or better.

2 Likes

Yep, it’s hard to draw conclusions from analyzing the callouts. Even the “winning” trades that can be sold for profit have, on average, significant drawdowns and large standard deviations. This makes it very hard to know when to start taking profits and when to cut losers.

1 Like

I wish I knew how to do this…I’d help…Thank you for the work.

I’d be curious to see if the test used:

  • Delay entry until price moves by 5% or 10% of current price or Delay entry until price breaks previous day high/low
  • Buy each position at market price when signal given with 0.05% of available buying power
  • Go over every position every minute. Sell at a loss if position is down <= 30%. Sell at a profit if position is up 30%
  • If neither is met, hold until expiry and sell at market to avoid exercising the option
1 Like

Major props, I’ve been looking for something like this. Any chance you could re-run the analysis with a confidence level of 60%+ or 70%+?

1 Like

Wow I wasn’t expecting such a response! Glad you all enjoyed this.

Feel free to keep posting your backtesting ideas – I’ll go through them and post the results in this thread.

I can also code up a way to look at TA indicators so if you want those included in your callouts please try and quantify them.

I’ve rented a backtesting cluster to run these on so I’ll try and spit them out as often as I can.

2 Likes

you’re holding way too long? most of these plays are intended to be 1-2 days not until contract expiry?? if you are following the options bot then you should sell after 48hrs if no buy/sell threshold is met not ride until you die

the bot suggests a lot of various strike prices, how are you handling that & calculating the R/R ratio based on that?

I also think the general +/- 30% is way too broad even for the next closest weeklies or monthlies, try scalping like +15% / -10% maybe with a trailing stop also

2 Likes

I think length of time of holding is the next big item to add. I’ll use this post for the next run and will post the results tomorrow after I code it up :slight_smile:

Regarding this : the bot suggests a lot of various strike prices, how are you handling that & calculating the R/R ratio based on that?

Each callout is an individual play and the R/R is based on that play. For all intents and purposes for the backtesting, they’re independent of each other since the bot never tells when to sell out of a position

Regarding the comments about entries – I’ll write a script to add in the strike prices as the callout and add it to the spreadsheet. Can use those as limit buys since the time of the callout may not line up directly with the market price at that time.

1 Like

This is probably the biggest hurdle. I’ve been messing with some parameters and was able to get a success rate of 52%. But unfortunately given the asymmetrical distribution of the R/R, the overall profit was about -40% return.

Sorry all – had a very busy week at work. I added a bit of additional logic today to handle how long to hold certain holdings.

3rd Iteration
Parameters

  • Buy each position at market price when signal given with 0.05% of available buying power
  • Go over every position every minute. Sell at a loss if position is down <= 10%. Sell at a profit if position is up
  • 15%
  • Only buy options if there is minimum of at least 5 days to Expiry. (To prevent buying incredibly volatile weeklies/0dtes)
  • If neither is met, sell the position after 36 hours of holding (middle ground of 1-2 days)

Summary

As you can see, still not a great strategy. Obviously the loss is a lot less due to the tighter conditions of playing the stop loss BUT the win rate now is only 29%.

I can program some technical indicators to further analyze the strategy. Let me know what you would like to see :slight_smile:

2 Likes

Well the bot gives a lot of suggestions that are ~50% so I feel like those are a toss up. I still think narrowing the parameters to only play 60/70% and up plays would tell us more.

3 Likes

There are some fallacies in the assumptions of the bot call outs, which ultimately causes the inconsistent profitability playing those call outs.

First, there is frequently a very notable delay between the condition which triggered the call out and the call out being posted in the channel. Very often I would see that the call out shows up in the channel after a run had already ran for awhile after bouncing off of a support. If you buy using those call outs you will frequently lose money unless luck is on your side. Some times the call out is made in the channel right after a bounce off of support, in those cases you’d be catching the recovery and profit. I’m not sure what is causing the delay, but it is reasonable to expect a delay between the code that is doing the analysis, communicating the results, and propagate the results to all the discords listening. Because of this I don’t think it’s best to buy without reviewing the chart first.

Next would be that the bot is only doing this by TA and it does not consider market conditions, sentiment, financials, etc. The bot likes to call out big tickers, like UBER, F, NVDA etc. These large caps are easily influenced by overall market conditions, therefore a TA buy condition can easily be failed by SPY.

These two things are the biggest fallacies that I attribute to for the low profitability on playing the bot call outs. I still believe that you can only treat the call out as a screener alert to give you something to further analyze before you take a position.

2 Likes

I think you may be right. I have used the bot quite a lot and have secured some nice profit from its signals. However, for the past couple of weeks or so, I seem to only lose money when using it. It is possible that, back then, its signals were not delayed and actually in line with what was going on with the stock/market. Now, they are probably delayed and when the signal is issued, it is already the end of a run, or nearing the end…

Maybe there is a way to get in touch with whomever runs the bot, and verify if the hypothesis above is actually true?

2 Likes

oof that is really bad

since you have it set up you could try to dial it in: +20% / -10% limit?+10% limit and holding for 48hrs then dump (no stop)? maybe a trailing stop?

did you find any patterns to the winners? perhaps they were in certain price action setups or the market was in a certain set of conditions for winners?

honestly I don’t trade off the bot blindly I definitely don’t trust it, I need to see a decent technical set up and some good sentiment to combine with the bot as one signal

1 Like

So far I’ve had a 90% success rate buying Tradytics AI calls with a higher than 75% success probability or higher, waiting for a bounce on the week’s supports and checking that there’s no negative news. I also sell between 10-20% up and extend the expiration by a week or two to minimize theta decay. Not the most exciting gains but so far it’s been consistent money. I actually don’t have a stop loss; I just sell the 3rd morning after once volatility is high if I didn’t see my gain target.

Maybe you can’t check for news using your program but I’d be curious to see your results using my system.

Thanks Jeff, I’ve found this post really interesting.

3 Likes

Is anyone still playing the signals given by the bot? I haven’t in about 30 days due to most of my recent plays being on the lose side. I was wondering if maybe it’s gotten better during the past month or so?