This is a simple but jam-packed template. The base strategy is simply to sell iron condors on a continuous basis and manages them using some creative checks and decision recipes, including our new SmartStops. But what this does which is slightly different you can use is that it prevents overlapping tickers and only enters one position per ticker. This way you can either trade 1 bot per ticker OR replicate the single scanner here and change the ticker input and have a mini portfolio of iron condors running without overlapping ticker symbols.
Here are some other notes you might find helpful:
VIX Filter: I used a global VIX filter right at the beginning which, to me, allows me to avoid trading anything if the markets are going crazy. Of course, feel free to change this level (or anything in the bot) to fit your own criteria or tolerance.
Opportunity Filters: I implemented multiple opportunity filters for this bot that are all grouped in one decision with "AND" statements because I want all of them to be true to enter the position. Inside are filtering for bid-ask spread, minimum open interest, and rate of return.
NOTE: I use a bunch of custom inputs with detailed descriptions so you can simply change the custom inputs if you want and create custom versions for each ticker you choose to trade.
Fixed Risk: Inside the Open Position action, which you can customize if you want, I use a fixed $1,000 risk for each position. This does two things for me. First, it allows the bot to look for positions based on delta values of the legs which may be preferred in some cases when you are trading different tickers. Looking for fixed dollar leg spreads might be wildly different from ticker to ticker so sometimes I like to use delta values. But second, it protects me from the bot opening a super-wide position based on those deltas because I cap the risk at $1,000 per trade it opens.
Check VIX Again in Monitor: Yep, I check the VIX level again inside the Monitor automation because I would prefer the bot does nothing if volatility is crazy and markets are swinging wildly. At that point, pricing will be all over the place and I'd personally rather not have the bot make any decisions.
Near Expiration: The first major checkpoint for this particular Monitor automation is to see if the position is near expiration (again multiple custom inputs can edit this threshold easily). If it's near expiration I want the bot to make different decisions.
Near Expiration Profit or Challenged: If the position is near expiration I want it to check for a near expiration profit, something lower than I might have hoped to collect at the start but enough to close the position and take money off the table. If that profit is met then it should close. If not then it checks to see if either the short call or short put leg is challenged. This is cool because I don't have to close the position just because it's close to expiration. I can close it only if I'm close to expiration AND being challenged on one side or the other. This gives me the chance to let the position work deep into expiration if it's not challenged and still potentially turn a profit as time decay erodes the premium.
Absolute Profit Target: If I'm not near expiration I first want to check for an absolute profit target. This is the level that I want to close the position no matter what. If I hit this level, which I set at 80% but you can change, then I want to close and not continue down to the next decision.
SmartStops: If I'm not near expiration and not at my absolute profit target then I want the bot to use SmartStops and target 50% with a 10% trail. Again, these are custom inputs so you can change them to be whatever you want. The thought for me is that I'm okay with having SmartStops monitor the position for anything between 50% and 80% (my absolute target).
Okay, that was a lot but I hope this helps, and as always welcome your feedback, variations, ideas!