An OCO (One-Cancels-the-Other) order, which includes a stop-loss and a target order, will trigger only if one of the specified price levels is reached. Here are some reasons why it might not have triggered:
1. Price Not Reaching Trigger Level: The order only activates when the market price hits your trigger price. If the market price didn’t reach this level, the order remains inactive.
2. Liquidity Issues: If there weren’t enough buyers or sellers at your specified price, especially for low-liquidity or highly volatile stocks, the order may not have executed. This is less common for highly liquid stocks.
3. Stop-Limit Order: If you set a stop-limit order instead of a standard stop-loss, it will only execute at your specified limit price. Rapid price changes may lead to missed executions if the market quickly bypasses this price level.
4. Position Already Closed: If you manually closed your position, any associated OCO or SL + Target orders are automatically canceled, as there is no open position to apply them to.