Trailing Stops
Trailing stops will monitor your position's current profit/loss and watch for a pullback. Once the profit pulls back by a certain amount (that you define), your bot will close out the position. The amount required is considered your "trailing amount". You can optionally include a "trigger amount" as well, which will only enforce the trailing stop if your bot hits a certain profit level first.
Trailing stops are checked every 12 seconds throughout the day.
Slippage is likely with trailing stops
You can lose significantly more on your position than your designated trailing amount. Trailing stops are not recommended for rapidly moving markets.
If you are in a rapidly moving market, consider using an Aggressive Exit Speed.
It may also help to set a conservative trailing stop that would confirm before you want to actually exit. This can help to start the closing process early, and by the time you get a fill on your closing order, the fill price is closer to your desired exit.
This is the percentage amount that the position's profit must pull back, or lose, before the bot confirms the trailing stop and closes the position as a result. This trail amount is a percentage that is based on the original entry price of the position.
For a credit position that was $2.00 at entry, a 50% trail amount will require a $1.00 pullback. A 200% trail amount will require a $4.00 pullback. These pullback amounts are from the best profit reached over the duration of the position. If your credit position was $2.00 at entry and never dipped into profit, then $2.00 is peak profit and where all trailing amounts start. If your credit position was $2.00 at entry and lowered to $0.50, then $0.50 would be peak profit and where all trailing amounts start.
For debit positions, trailing stops are based on the original entry price. If you enter a debit position at $5.00, a 50% trailing stop would equal $2.50. If the position never dips into profit, your trailing stop would trigger when the position reaches $2.50. If the position moved up to $10.00, your trailing stop would move to $7.50, and that is the point the bot would close your position.
If you specify a trigger, the profit % trailing stop will only apply once your position has reached the trigger amount. If you specify a 50% trigger and 100% trail amount, then the bot will only watch for the 100% trailing amount once the position has already reached 50% profit. If the position never reaches 50% profit, then the 100% trail amount will not be applied.
Trailing stops based on premium value will monitor the current premium value of your position based on the mid or market price of the position. It is the price of the contract(s) itself, not the total value of the position. If the mid point is $2.00 and you have 10 contracts, the premium value used for trailing stops is $2.00. It is not $2000 (which is the value of the position).
This is the premium amount that the position must pull back, or lose, before the bot confirms the trailing stop and closes the position as a result.
For debit positions, the position trails as premium value decreases. For credit positions, the position trails as premium value increases.
If you specify a trigger, the premium value trailing stop will only apply once your position has reached the trigger amount. If you specify a $2.00 trigger and $1.00 trail amount, then the bot will only watch for the $1.00 trailing amount once the position has already reached $2.00 premium. If the position never reaches $2.00 premium, then the $1.00 trail amount will not be applied.
This setting will control how quickly your bot confirms a valid stop and decides to close your position.
The choices for sensitivity are:
- Patient - The bot will confirm a stop when 3 out of 4 of the 12-second checks are at your stop level
- Normal - The bot will confirm a stop when 2 out of 3 of the 12-second checks are at your stop level
- Aggressive - The bot will confirm a stop when 1 of the 12-second checks is at your stop level
There are built-in liquidity filters that will prevent a bot from confirming an Aggressive stop in the event of temporary market illiquidity. This happens frequently when there is a spike intraday in markets. When this happens, market makers back off of bid/ask spreads, and those spreads get very wide. This skews the market/mid price of options and makes them look much more expensive than they actually are. If a bot sees this, it will not consider the stop valid and will wait for the bid/ask spread to tighten up. This usually only takes a few seconds to happen.
Converting Trailing Stop Sensitivity to Seconds to Confirm
Here is how long each sensitivity setting will translate to the time it takes from when a bot first hits its stop level and when the bot confirms the stop (initiating the close process):
- Aggressive - Stop triggers in ~6 seconds (0s min, 12s max, 6s average)
- Normal - Stop triggers in ~18 seconds (12s min, 36s max, 18s average)
- Patient - Stop triggers in ~30 seconds (24s min, 48s max, 30s average)
How did we get here?
For Aggressive sensitivity, the bot will check every 12 seconds. Your position can hit its stop at any moment in time relative to the 12-second interval. If the position hits your stop level the instant before the bot checks, then your bot will confirm the stop almost immediately, for < 1 second to confirm your stop. However, if the position hits the stop level immediately after the bot checks on its 12-second interval, then it'll have to wait another 12 seconds or so before the bot sees it and stops. This is why, with Aggressive sensitivity, you'll wait somewhere between 0 and 12 seconds to confirm the stop, for an average of about 6 seconds.
For Normal sensitivity, the bot checks every 12 seconds and must see two out of three checks at the stop level. The quickest that this can happen is if two in a row are at the stop level. The slowest it can happen is if two out of three (the first and the third) are at the stop level.
For two in a row, the first stop detection will occur between 0 and 12 seconds of occurring. The bot will detect the stop at about 0 seconds if the position hits your stop almost immediately before the bot checks. The bot will detect the stop at about 12 seconds if the position hits your stop immediately after the bot checks, and it must wait another 12 seconds to see it. So, the first stop hit will be detected, on average, about 6 seconds after it occurs. After that, the bot will check again in 12 seconds, and if it's still at your stop level, it will confirm the stop after a total of about 18 seconds. If the second check is not at your stop level, but the third check is, then you're looking at about 30 seconds total between the first and third check being met and the bot confirming the stop. This is assuming the first hit is detected 6 seconds after it occurs. If the first hit is detected 12 seconds after it occurs, the second hit does not meet the stop, and the third hit does, then you're looking at a max duration of about 36 seconds for Normal sensitivity to confirm a stop.
For Patient bots, refer to the Normal explanation above and simply add another 12 seconds to it. That's roughly how long Patient sensitivity will wait before confirming a stop.
Due to some randomness in runtimes and network latency, these durations can deviate by a couple seconds here and there, but the numbers above represent averages.