Config Modules - Entry, Stop and Target Exit Parameters
When conditions in the Long Entry and Short Entry boxes are met, the symbol is sent to KATP for execution. When the conditions in the Long Exit or Short Exit boxes are met, the positions are exited. Positions are also exited when stops or targets are hit.
Just as the Long and Short Entry boxes specify the conditions for Entries, the Long and Short Exit boxes specify the conditions for Exits. If left empty then there no Exit Criteria are specified. The Exit Criteria are tested in addition to the Stop and Target parameters, so whichever is hit first, the Stop, Target or Exit Criteria , will be the cause of the exit. If you wish to have only Exit Criteria, then specify values for the Stop and Targets that will take it out of contention(ie Stops and Target values that are so large that they will not be hit)
The parameters in the Entry, Stop Exit and Target Exit Parameters tab determine how an order is sent when an entry condition is met, or when a stop or target is hit. The parameters are
- Limit/Mkt/LmtPersist(Stop Limit)
- Entry Price Strategy ( or Stop Exit/Target Exit Strategy)
- Cxl Timeout
These additional parameters are used for Stops and Targets
Stop Type( 21 different types)
Fixed, FixedAdjst, FixedToSldAdjst, FixedPct, FixedPctAdjst, FixedPctToSldAdjst, Sliding, SlidingAdjst, SlidingPct, SlidingPctAdjst, FixedTick, FixedTickAdjst, FixedTickToSldAdjst. SlidingTick, SlidingTickAdjst, sflt50, FixedDollar, FixedDollarAdjst, FixedDollarToSldDlrAdjst, SlidingDollar, SlidingDollarAdjst
Target Type ( 5 different types)
Fixed, fixedTick, percentage, FixedDollar, ScaleOut
For Stops and Targets, the type of order is constructed using the parameters specified in the Stop Exit Parameters and Target Exit Parameters tabs, respectively. Exit Criteria(conditions configured in the Conditions Tab) also use the Stop Exit Parameters.
For all types of KATP orders, the configuration parameters of Order Type (Limit, Market or Limit Persist) , Cancel Timeout and “Don’t Chase minutes”(Basket/Miscellaneous” Tab) work together to allow you to automated trades from entry to exit. The price sent for Limit and Limit Persist order is determined by the combination of Tolerance and Price Strategy settings) Scaled Stops, Targets and Entries can also be configured. See the document on Scaling Orders for more details
- Limit - Limit Order is sent according to the price calculated through the Tolerance and Entry Price Strategy(see below) If the order is not filled within the number of seconds configured in Cxl Timeout, then the order is cancelled and the symbol is put in the Blocked List for the number of minutes specified by “Don’t Chase Minutes”(Basket Miscellaneous tab) . The combination of Limit , Cxl Timeout and “Don’t Chase Minutes” allows the order to be sent once, but if not filled within the Cancel Timeout, it will not resend the order
- Market – A Market Order is sent - if it isn’t filled within the number of seconds configured in Cancel Timeout, then the order is cancelled. Settings in Don’t Chase Minutes apply
- Limit Persist – This Order Type is similar to Limit except that when the order is cancelled due to one of the following occurrences, the order is resent automatically(but the limit price is recalculated according to the PriceStrategy/Tolerance settings)
- Stop Limit – For use in the “Enter Position” window. Sends an Interactive Brokers Stop Limit order to TWS. When a trade has occurred at or through the stop price, the order becomes executable. The Limit and Stop price used are the same.
Price Strategy and Tolerance
Using the combination of PriceStrategy and Tolerance, the user can configure orders relative to the Bid and Ask for both Long and Short. (There are different conditions for Long and Short Entries in each module, however the Entry Parameters tab apply to both Long and Short entries.
For Long Entries
Wholesale = Bid
Retail = Ask
For Short Entries, it’s reversed:
Wholesale = Ask
Retail = Bid
If an order is configured for a module that has an PriceStrategy of Retail, if a long alert occurs, it would send an order at the Ask. If a Short alert occurs a limit order with a price at the bid would be sent. The Retail/Wholesale terminology allows you to specify an order type for both longs and shorts.
Tolerance is calculated as a percentage of the current bid/ask spread. A Tolerance value of 100 would be 100% of the spread, or just the spread. For a symbol with a spread of 4 cents, a 50% tolerance would be 2 cents.
Combining Price Strategy and Tolerance
The Price Strategies are used with the Wholesale/Retail terminology with the Tolerance by allowing the following possibilities.
Assume a Bid/Ask of 25.00 – 25.04 and a Tolerance of 25%, then
Split Bid/Ask Tolerance is not used – always the midpoint between Bid and ask - a limit order of 25.02 for both longs and short would be sent
Retail + Tolerance Longs Limit 25.05, Shorts Limit 24.99
Retail – Tolerance Longs Limit 25.03, Shorts Limit 25.01
Wholesale + Tolerance Longs Limit 25.01, Shorts 25.03
Wholesale - Tolerance Longs Limit 24.99 Shorts Limit 25.05
Entries: Retail + Tolerance, with a Tolerance of 100% and a Don’tChaseMinutes set according to your strategy. Although a value of 100% of the spread may seem too large, for most orders, you will get a reasonable fill as long as you don't send a market order. A limit order even a few cents over the ask will usually result in a fill close to the ask(for longs). For Entries it is not recommended to use LmtPersist as this can result in chasing an entry, and getting a fill to far away from the optimal entry.
Targets: Split Bid/Ask and LmtPersist
Stops: either Market or Split Bid/Ask (and LmtPersist)
Limit Order, Cancel Timeout 30 seconds, Don’t Chase Minutes, 0 minutes
A limit order is sent(price determined by the Price Strategy/Tolerance). If not filled within 30 seconds it is cancelled. Since Don’t Chase Minutes is set to 0, if the entry condition is still true, then another order will be sent (Price recalculated via the PriceStrategy/Tolerance settings). This will continue until the order is either filled, or it has not been filled and the entry condition is no longer true.
Limit Order, Cancel Timeout 30 seconds, Don’t Chase Minutes, 15 minutes
A limit order is sent (price determined by the Price Strategy/Tolerance). If not filled within 30 seconds it is cancelled. Since Don’t Chase Minutes is set to 15 minutes, once the order is cancelled, the symbol is put in the Blocked List of Symbols for 15 minutes. Even if the entry condition is still true, an order for the symbol will not be sent for 15 minutes. This will send an order the first instant the entry condition is true, but will not send subsequent orders if the first is not filled. This allows you to avoid chasing an entry if your initial order is not filled. This differs from a Fill or Kill order in that its functionality is related to a specific entry condition. After 15 minutes, the symbol is unblocked for the module and when if the entry condition becomes true again, then another order will be sent (Entry Price is recalculated via the PriceStrategy/Tolerance settings).