Position Event Doesn't work
Position Event Doesn't work
17 Aug 2018, 10:28
Below is my code.
WHen I place, modify, or close order.
I don't see any of my print come out in the cBot Log. Please kindly help
Thank you
using System; using System.Linq; using cAlgo.API; using cAlgo.API.Indicators; using cAlgo.API.Internals; using cAlgo.Indicators; namespace cAlgo.Robots { [Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)] public class SLhelper : Robot { [Parameter("SL Step Triggers", DefaultValue = 7.0)] public double sl { get; set; } protected override void OnStart() { } protected override void OnTick() { // Put your core logic here } protected override void OnStop() { // Put your deinitialization logic here } void OnPositionsOpened(PositionOpenedEventArgs args) { Print("Hello World"); var position = args.Position; Print(position.Label + " TIDAK ADA"); ModifyPosition(position, position.VolumeInUnits, sl); Print("EROR"); Print("123123"); } void OnPositionsClosed(PositionModifiedEventArgs args) { Print("Modified"); } void OnPositionsClosed(PositionClosedEventArgs args) { var position = args.Position; Print("78678678678"); if (position.NetProfit < 0) { var tradeType = position.TradeType; if (tradeType == TradeType.Buy) tradeType = TradeType.Sell; else if (tradeType == TradeType.Sell) tradeType = TradeType.Buy; var symbol = MarketData.GetSymbol(position.SymbolCode); var volume = position.VolumeInUnits; var label = position.Label; ExecuteMarketOrder(tradeType, symbol, volume * 2, label); } } } }
Replies
fxwisdom1@gmail.com
17 Aug 2018, 10:36
Please try the code aboev and place a market order, then modify its SL/TP.
I expect there should be a print out message on the cBot log.
@fxwisdom1@gmail.com
PanagiotisCharalampous
17 Aug 2018, 10:38
Hi fxwisdom1@gmail.com,
You have written the functions but you do not handle the events anywhere. Modify your OnStart as below
protected override void OnStart() { Positions.Opened += OnPositionsOpened; Positions.Modified += OnPositionsModified; Positions.Closed += OnPositionsClosed; }
Best Regards,
Panagiotis
@PanagiotisCharalampous
fxwisdom1@gmail.com
17 Aug 2018, 10:51
RE:
Panagiotis Charalampous said:
Hi fxwisdom1@gmail.com,
You have written the functions but you do not handle the events anywhere. Modify your OnStart as below
protected override void OnStart() { Positions.Opened += OnPositionsOpened; Positions.Modified += OnPositionsModified; Positions.Closed += OnPositionsClosed; }Best Regards,
Panagiotis
Woot Wooott looks like it's working!!!
Thank you Panagiotis!
@fxwisdom1@gmail.com
fxwisdom1@gmail.com
17 Aug 2018, 10:30
Sorry correction to the code above.
Btw problem still not solved. Kindly help
@fxwisdom1@gmail.com