Overview
This page provides a complete guide to the Standalone TPSL feature on our exchange. It includes valid/invalid order input scenarios and behavior for Take Profit (TP), Stop Loss (SL), and combined TPSL (OCO) orders.
π Background Info
Purpose of TPSL Orders
Close a position:
TP: Lock in profits when price hits target
SL: Prevent larger losses when price drops
Open a new position:
TP: Bet on mean reversion
SL: Bet on trend breakout
Attach to an open limit order:
TPSL instructions activate only after the parent limit order is filled
TPSL Types
TP only
SL only
TP + SL (OCO combo)
Preset TPSL on Main Limit Order (activates when Main Order is filled)
Parameters
Side: Buy / Sell ( Shared across TP & SL in TPSL combos)
Size: Shared across TP & SL
Trigger Type: Last Price
Trigger Price: TP or SL trigger level
Order Type: Limit or Market
Limit Price: Must not be >N% more aggressive than Trigger
Limitations
Orders with trigger prices already met ("in-the-money") are rejected
Limit orders may not execute due to price slippage
Large orders may face liquidity issues
OCO: if one order triggers and is only partially filled, the other is still canceled
β TLDR: Validity Rules for TPSL / TP / SL Orders
A TP or SL order is invalid and must be rejected if its trigger condition is already satisfied by the current Last Traded Price.
A TPSL (TP + SL combo) is invalid if either the TP or SL condition is already satisfied by the current price.
Valid Trigger Price Conditions:
TP Trigger Price must be lower than Last Price for Buy Orders (i.e. Short position)
TP Trigger Price must be higher than Last Price for Sell Orders (i.e. Long position)
SL Trigger Price must be higher than Last Price for Buy Orders (i.e. Short position)
SL Trigger Price must be lower than Last Price for Sell Orders (i.e. Long position)
Button Behavior:
Buy button = Submits Buy Order = Implied Short Position
Sell button = Submits Sell Order = Implied Long Position
β‘οΈ All examples below assume Trigger Price Type = Last Traded Price and TP/SL Order Type = Market. The same order validity rules applied to TP Order Type
= Limit and SL Order Type = Limit.
β Valid TPSL Order Combos
π¦ Buy TPSL
Side: Buy
TP Trigger Price: 70000
SL Trigger Price: 90000
TP/SL Limit Price: null (Market order)
Last Traded Price: 84000
Expected Behavior:
Submit 2 orders:
TP Order: Buy if Last Price <= 70000
SL Order: Buy if Last Price >= 90000
OCO logic applies β when one is triggered, the other is canceled
β TP valid: 70000 < 84000 β SL valid: 90000 > 84000 β SL > TP for Shorts: 90000 > 70000
π΄ Sell TPSL
Side: Sell
TP Trigger Price: 90000
SL Trigger Price: 70000
TP/SL Limit Price: null (Market order)
Last Traded Price: 84000
Expected Behavior:
Submit 2 orders:
TP Order: Sell if Last Price >= 90000
SL Order: Sell if Last Price <= 70000
OCO logic applies
β TP valid: 90000 > 84000 β SL valid: 70000 < 84000 β SL < TP for Longs: 70000 < 90000
β Valid TP-Only Orders
π¦ Buy TP Only
Side: Buy
TP Trigger Price: 70000
TP Limit Price: null (Market)
Last Traded Price: 84000
Expected Behavior:
Submit 1 order: Buy if Last Price <= 70000
β TP valid: 70000 < 84000 (Short position)
π΄ Sell TP Only
Side: Sell
TP Trigger Price: 90000
TP Limit Price: null (Market)
Last Traded Price: 84000
Expected Behavior:
Submit 1 order: Sell if Last Price >= 90000
β TP valid: 90000 > 84000 (Long position)
β Valid SL-Only Orders
π¦ Buy SL Only
Side: Buy
SL Trigger Price: 90000
SL Limit Price: null (Market)
Last Traded Price: 84000
Expected Behavior:
Submit 1 order: Buy if Last Price >= 90000
β SL valid: 90000 > 84000 (Short position)
π΄ Sell SL Only
Side: Sell
SL Trigger Price: 70000
SL Limit Price: null (Market)
Last Traded Price: 84000
Expected Behavior:
Submit 1 order: Sell if Last Price <= 70000
β SL valid: 70000 < 84000 (Long position)
β Invalid TPSL Order Combos
π΄ Sell TPSL (Invalid)
Side: Sell
TP Trigger Price: 70000 β
SL Trigger Price: 90000 β
Last Traded Price: 84000
Rejection Reason:
TP invalid: 70000 < 84000 (TP must be higher for Sell)
SL invalid: 90000 > 84000 (SL must be lower for Sell)
SL < TP condition violated: 90000 < 70000 β
π¦ Buy TPSL (Invalid)
Side: Buy
TP Trigger Price: 90000 β
SL Trigger Price: 70000 β
Last Traded Price: 84000
Rejection Reason:
TP invalid: 90000 > 84000 (TP must be lower for Buy)
SL invalid: 70000 < 84000 (SL must be higher for Buy)
SL > TP condition violated: 70000 > 90000 β
Additional Information
Demo Video of Valid TPSL, TP, and SL Order Entry
PDF with same content as above, but with UI Screenshots: