About this template
FYI: This bot was added in late June 2023 to the "Post your top performing bots here" by Khaaan but I felt that having its own tread would allow for better Q/A comments if anyone decides to run with it.
My underlying objective of this bot is to form a conservative capital risk baseline that will gradually grow and work for almost any size capital allocation from $3,000 and up using Iron Condor Credit Spreads. Testing and live trading have only used ETFs as the ticker symbols being traded. Performance screen shots when shared are from live trades using the Tradier platform.
You will notice that there are two scanner instances in the bot as initially published. That is because for some symbols I wanted slightly different values to control opening new positions from those values assigned at the bot level.
THE SCANNER:
The bot will attempt to create a ladder of positions with each symbol. The size of each ladder is first controlled by the bot level setting Max Ladder Rungs. All of my usage has been based on 3 rungs per ladder. Note that the bot limit of 10 tickers is also a controlling factor, but using 3 rungs per ladder at least allows the potential for 3 ladders existing at one point in time. (🦄 Maybe way off in the future the 10 position bot limit could be expanded).
The bot has always been tested and run live using expirations of 30 to 45 days for each position. Within this, two settings also influence the potential of reaching the 3-rung ladder state. They are:
🔵 Days Between Ladder Rungs: Once a position has been opened for a symbol (ladder), wait this many days before trying to open the next position (adding the next rung) to that ladder. My value for this has been 4 market days.
🔵 Days Wait After Close: When a position is closed in a ladder, do not try to add a replacement position for that symbol for this number of days. My value for this has been 2 market days.
The expiration setting for each position has only been run in my environment for 30 to 45 days. The Put and Call settings are currently -0.15 / +0.15 and 0.10 delta off sets. These are considered the "standard" settings for each LC position.
There are settings for what has been treated as "Narrow" spreads for the Put and Call sides to the spread of $5.00 offsets for each. The scanner will check if there is enough available capital for the "Standard" LC settings and if true will use use those settings to open the new position (or rung) for the ladder. If there are not sufficient funds to open them using the "Standard" settings then the capital required for the "Narrow" settings is checked and if OK will open the new position for the symbol using the Narrow width LCs.
The scanner uses a typical set of suitability checks before the Open Position action is invoked. These will be summarized below, but first lets review the position sizing logic.
Based on my observations, most of us would like our bots to accelerate the amount of profit as the bot continues to be successful then react and start slowing down or reducing the position sizes if the bot starts to move against us. My sense of using a percent of available capital is the natural setting provided by the platform to do this. So, if the bot has enough capital to open a new position for symbol XXX using 10% of the bots available capital, and the bot manages multiple tickers, then the remaining available capital for the successive tickers in the list is reduced. Those remaining tickers may never open because, depending on the number of currently open positions, there may no longer be enough available capital at 10% for each or any of the remaining symbols.
We could just add logic to check if there is not enough for 10%, then try 9%, 8%, and so on until either success or all levels fail.
I approached this slightly different by using Number of Contracts as the position size instead of percent of available capital. I felt that this could give me more flexible control while growing the profits from the bot and provide a better distribution of the risks across tickers. With the allowable range of 1 to 10 contracts per position if this is set at 6 contracts, for example, the scanner will try to open a 6 contract position if there is enough capital for a symbol. If not, then it steps down 1 contract at a time until it finds the larges number of contracts for the symbol that can currently be opened. While it is not automatically reactive to the growth in overall profits, it is a one-click setting change to incrementally grow the position sizes.
There is a switch setting (Use % of Available Capital) that if true will use that value to check before opening a new position.
NOTE: if the O/A platform included formulas and logic loops outside of symbol loops, then the walk-down using percent of capital and number of increments could be developed w/o stepping through contract sizes. But, that is for some other time.
Lastly, on the scanners opening new positions, the typical suitability tests that I tend to use are included before proceeding to try and open a new position. They are:
IV Rank Range (10 to 45)
Max Bid/Ask for the LC itself
Max Bid/Ask for the individual Put and Call spreads individually that make up the LC
Minimum Mid Range price for the LC (minimum amount of premium desired for one contract in the position)
(A settable Smart Price Open variable exists to help achieve this Minimum Mid Rage price, currently 90% of range).
Minimum Chance of Profit
Separate bot level fast exit settings are available for use for a Standard LC vs. one opened with the Narrow settings.
I will not spend time discussing the monitor object that remain in the bot. When this bot was created, the recent Fast Exit Options were not a part of the platform. However, I have consciously left the monitors in place for now.
NOTE: While I do not have a record of which positions the following FYI relates to, it is a small percentage of the trades so far. FYI: There have been times where the bid/ask spread exceeds the exit options disable setting in the position and the position profit based on the mid-point of the B/A spread has been higher than the target assigned, but I have been able to successfully manually close the position at a specific price $0.02 to $0.03 above the mid price at that time. I have been using TOS to choose the mid-price for this action but you can also use the value shown in the OA platform.
Performance live as of 1 July 2023
#########################################################