usingcAlgo.API;namespacecAlgo.Robots{// This sample shows how to use StopTriggerMethod of orders to control their execution price[Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]publicclassStopTriggerMethodSample:Robot{[Parameter("Stop Trigger Method", DefaultValue = StopTriggerMethod.Trade)]publicStopTriggerMethodStopTriggerMethod{get;set;}protectedoverridevoidOnStart(){// Setting a new position StopTriggerMethodExecuteMarketOrder(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 lossvartarget=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 StopTriggerMethodforeach(varpositioninPositions){if(!position.StopLoss.HasValue)continue;ModifyPosition(position,position.StopLoss,position.TakeProfit,position.HasTrailingStop,StopTriggerMethod);}// Changing open pending orders (Stop and StopLimit) StopTriggerMethodforeach(varorderinPendingOrders){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 9101112131415161718192021222324
importclrclr.AddReference("cAlgo.API")# Import cAlgo API typesfromcAlgo.APIimport*# Import trading wrapper functionsfromrobot_wrapperimport*classStopTriggerMethodSample():defon_start(self):# Setting a new position StopTriggerMethod# StopTriggerMethod is defined as a parameter in C# file of cBotapi.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 losstarget=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 StopTriggerMethodforpositioninapi.Positions:ifposition.StopLossisNone:continueapi.ModifyPosition(position,position.StopLoss,position.TakeProfit,position.HasTrailingStop,api.StopTriggerMethod)# Changing open pending orders (Stop and StopLimit) StopTriggerMethodfororderinapi.PendingOrders:iforder.StopLossPipsisNoneororder.OrderType==PendingOrderType.Limit:continueapi.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.