Skip to content

StopTriggerMethod

Summary

The trigger side for the Stop Orders.

Signature

1
public enum StopTriggerMethod

Namespace

cAlgo.API

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 using cAlgo.API;
 namespace cAlgo.Robots
 {
     // This sample shows how to use StopTriggerMethod of orders to control their execution price
     [Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]
     public class StopTriggerMethodSample : Robot
     {
         [Parameter("Stop Trigger Method", DefaultValue = StopTriggerMethod.Trade)]
         public StopTriggerMethod StopTriggerMethod { get; set; }
         protected override void OnStart()
         {
             // Setting a new position StopTriggerMethod
             ExecuteMarketOrder(TradeType.Buy, SymbolName, Symbol.VolumeInUnitsMin, "StopTriggerMethod Test", 10, 10, string.Empty, false, StopTriggerMethod);
             // Setting a new stop order StopTriggerMethod for both order and its stop loss
             var target = Symbol.Bid + (100 * Symbol.PipSize);
             PlaceStopOrder(TradeType.Buy, SymbolName, Symbol.VolumeInUnitsMin, target, "StopTriggerMethod Test", 10, 10, ProtectionType.Relative, null, string.Empty, false, StopTriggerMethod, StopTriggerMethod);
             // Changing open positions StopTriggerMethod
             foreach (var position in Positions)
             {
                 if (!position.StopLoss.HasValue) continue;
                 ModifyPosition(position, position.StopLoss, position.TakeProfit, position.HasTrailingStop, StopTriggerMethod);
             }
             // Changing open pending orders (Stop and StopLimit) StopTriggerMethod
             foreach (var order in PendingOrders)
             {
                 if (!order.StopLossPips.HasValue || order.OrderType == PendingOrderType.Limit) continue;
                 ModifyPendingOrder(order, order.TargetPrice, order.StopLossPips, order.TakeProfitPips, order.ExpirationTime, order.VolumeInUnits, order.HasTrailingStop, StopTriggerMethod, StopTriggerMethod);
             }
         }
     }
 }
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 import clr
 clr.AddReference("cAlgo.API")
 # Import cAlgo API types
 from cAlgo.API import *
 # Import trading wrapper functions
 from robot_wrapper import *
 class StopTriggerMethodSample():
     def on_start(self):
         # Setting a new position StopTriggerMethod
         # StopTriggerMethod is defined as a parameter in C# file of cBot
         api.ExecuteMarketOrder(TradeType.Buy, api.SymbolName, api.Symbol.VolumeInUnitsMin, "StopTriggerMethod Test", 10, 10, "", False, api.StopTriggerMethod)
         # Setting a new stop order StopTriggerMethod for both order and its stop loss
         target = api.Symbol.Bid + (100 * api.Symbol.PipSize)
         api.PlaceStopOrder(TradeType.Buy, api.SymbolName, api.Symbol.VolumeInUnitsMin, target, "StopTriggerMethod Test", 10, 10, None, "", False, api.StopTriggerMethod, api.StopTriggerMethod)
         # Changing open positions StopTriggerMethod
         for position in api.Positions:
             if position.StopLoss is None:
                 continue
             api.ModifyPosition(position, position.StopLoss, position.TakeProfit, position.HasTrailingStop, api.StopTriggerMethod)
         # Changing open pending orders (Stop and StopLimit) StopTriggerMethod
         for order in api.PendingOrders:
             if order.StopLossPips is None or order.OrderType == PendingOrderType.Limit:
                 continue
             api.ModifyPendingOrder(order, order.TargetPrice, order.StopLossPips, order.TakeProfitPips, order.ExpirationTime, order.VolumeInUnits, order.HasTrailingStop, api.StopTriggerMethod, api.StopTriggerMethod)

Fields

Trade

Summary

Trade method uses default trigger behavior for Stop orders.Buy order and Stop Loss for Sell position will be triggered when Ask >= order price.Sell order and Stop Loss for Buy position will be triggered when Bid <= order price.

Signature

1
StopTriggerMethod.Trade;

Return Value

StopTriggerMethod

Opposite

Summary

Opposite method uses opposite price for order triggering.Buy order and Stop Loss for Sell position will be triggered when Bid >= order price.Sell order and Stop Loss for Buy position will be triggered when Ask <= order price.

Signature

1
StopTriggerMethod.Opposite;

Return Value

StopTriggerMethod

DoubleTrade

Summary

Uses default prices for order triggering, but waits foradditionalconfirmation - two consecutive prices should meet criteria to trigger order.Buy order and Stop Loss for Sell position will be triggered when two consecutive Ask prices >= order price.Sell order and Stop Loss for Buy position will be triggered when two consecutive Bid prices <= order price.

Signature

1
StopTriggerMethod.DoubleTrade;

Return Value

StopTriggerMethod

DoubleOpposite

Summary

Uses opposite prices for order triggering, and waits foradditional confirmation - two consecutive prices should meet criteria to trigger order.Buy order and Stop Loss for Sell position will be triggered when two consecutive Bid prices >= order price.Sell order and Stop Loss for Buy position will be triggered when two consecutive Ask prices <= order price.

Signature

1
StopTriggerMethod.DoubleOpposite;

Return Value

StopTriggerMethod