[Canonical article](https://algoway.trade/blog/ctrader-stop-loss-trigger-method.html)

Published: 2026-11-10

# **cTrader Stop-Loss Triggers: Bid, Ask and Double Ticks**

![Two quote streams approaching a stop threshold with paired update markers](https://algoway.trade/static/img/blog-img/ctrader-stop-loss-trigger-method.jpg)

A stop-loss price does not fully describe a cTrader stop. The platform also needs to know which quote should activate it and whether one qualifying update is enough. Two positions with the same stop price can therefore close at different times if their trigger methods differ.

This matters in automated trading because creating a position and protecting it are separate things to verify. For an [AlgoWay cTrader workflow](https://algoway.trade/blog/how-the-ctrader-connector-logic-works.html), inspect the actual position and its protection settings in cTrader after testing the route. The methods below describe cTrader's native stop-loss behavior; their availability in the platform does not establish that a particular connector message can select them.

## Choose the quote side for the position you already hold

For a long position, the usual closing transaction is a sale at Bid. For a short position, it is a purchase at Ask. cTrader's default Trade-side stop follows that closing quote. Opposite-side triggering watches the other quote instead. The official [stop-trigger reference](https://help.ctrader.com/ctrader-algo/references/Trading/StopTriggerMethod/) gives the exact comparisons, including equality:

| Trigger method | Long position stop loss | Short position stop loss |
| --- | --- | --- |
| Trade side | Bid at or below stop | Ask at or above stop |
| Opposite side | Ask at or below stop | Bid at or above stop |
| Double trade side | Two consecutive qualifying Bid updates | Two consecutive qualifying Ask updates |
| Double opposite side | Two consecutive qualifying Ask updates | Two consecutive qualifying Bid updates |

In the double methods, “qualifying” means meeting the corresponding stop-price comparison in the single-update row. It does not mean two candles, two pips beyond the stop, or twice the position size.

## Same long stop, different activation

Consider a hypothetical long position with a stop at 1.1000. Suppose these quotes arrive in order. The table traces only whether each quote satisfies the activation condition; it is not a recording of broker execution.

| Update | Bid | Ask | Bid qualifies? | Ask qualifies? |
| --- | --- | --- | --- | --- |
| A | 1.1001 | 1.1003 | No | No |
| B | 1.0999 | 1.1001 | Yes | No |
| C | 1.1001 | 1.1003 | No | No |
| D | 1.0998 | 1.1000 | Yes | Yes |
| E | 1.0997 | 1.0999 | Yes | Yes |

Trade side qualifies at B. Opposite side first qualifies at D, when Ask reaches the stop exactly. Double trade side does not qualify at B followed by C because C breaks the sequence. D and E form its first qualifying pair. Double opposite side also gets its first qualifying pair at D and E.

These are four alternative settings applied to the same illustrative quote path, not four stages that one position passes through. A position closed following B is no longer waiting for D.

## Opposite does not change the price at which you can sell

At D, Ask is 1.1000 but Bid is already 1.0998. Watching Ask for a long stop does not turn the eventual closing sale into a sale at Ask. The method changes the activation test, not the spread.

That is the trade-off to evaluate: delaying activation can bypass a brief move in one quote stream, but the position remains exposed while it waits. A double method adds a confirmation requirement, not a promise of a better fill. cTrader's [protection documentation](https://help.ctrader.com/ctrader/trading/protections/) defines the trigger choices and notes that even a break-even stop can incur slippage. The broader [stop-loss versus stop-limit guide](https://algoway.trade/blog/stop-loss-vs-stop-limit-gap-risk.html) explains why a trigger and an execution guarantee are different things.

## Do not copy the entry-stop table onto a protective stop

A pending buy stop opens a position; a stop loss on an existing long closes one. Those actions have different quote-side requirements. cTrader's [order documentation](https://help.ctrader.com/ctrader/trading/orders/) lists Ask for a default pending buy-stop trigger and Bid for a default pending sell-stop trigger. The protective-stop table above is organized by the position being protected, not by a new entry order.

Before comparing a screenshot or code setting, name the object precisely: pending buy entry, pending sell entry, long-position stop loss, or short-position stop loss. “My buy stop” can otherwise mean two quite different things in a support conversation.

## What to record in an automation test

In cTrader Windows, the protection controls let you cycle through the four trigger types when setting protection. Confirm the selected method on the actual position, rather than inferring it from a chart line. The platform's protection guide documents this control.

* Record position direction, stop price and trigger method together.
* Compare both Bid and Ask around the event. A single chart-price series cannot establish both sides of the spread.
* For a double method, inspect consecutive quote updates. An OHLC candle alone does not preserve their order.
* Separate the time the stop condition was met from the time and price of the closing fill.
* If an automated strategy also sends a close instruction, identify whether that command or the native stop closed the position. A strategy exit is not evidence that the native trigger fired.

The useful question is not whether the stop line was touched somewhere on the chart. It is whether the selected quote stream met the selected condition while that protection was active. Once those details are recorded, the apparently inconsistent stop usually becomes a much more precise question.