cBot TP & SL order (help me)
cBot TP & SL order (help me)
12 Oct 2016, 11:54
Hello,
I'm interested with a make cbot that your function will open a position long, when the TP is tested in a current position and opened position short when SL is tested in a current position.
I don't know how is the script with this bot, but I believe that this bot is very interesting....
I'm sorry for my very bad english :-(
Replies
sergiestudillo1
12 Oct 2016, 17:27
RE:
lucian said:
Thank you very much.
I test this cbot for if my expectatives is correct or no and only is a sweet dreams.... ;-)
Best regards.
Start backtest with this code:
using System; using System.Linq; using cAlgo.API; using cAlgo.API.Indicators; using cAlgo.API.Internals; using cAlgo.Indicators; namespace cAlgo { [Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)] public class sergie : Robot { [Parameter("Volume", DefaultValue = 1000)] public int Volume { get; set; } [Parameter("Buy ?", DefaultValue = true)] public bool buy { get; set; } protected override void OnStart() { Positions.Closed += closedposition; if (buy) ExecuteMarketOrder(TradeType.Buy, Symbol, Volume, "sergio", 10, 10); if (!buy) ExecuteMarketOrder(TradeType.Sell, Symbol, Volume, "sergio", 10, 10); } public void closedposition(PositionClosedEventArgs arg) { var pos = arg.Position; if (((pos.Label == "sergio") && (pos.NetProfit > 0) && (pos.TradeType == TradeType.Sell)) || ((pos.Label == "sergio") && (pos.NetProfit < 0) && (pos.TradeType == TradeType.Buy))) ExecuteMarketOrder(TradeType.Sell, Symbol, Volume, "sergio", 10, 10); if (((pos.Label == "sergio") && (pos.NetProfit < 0) && (pos.TradeType == TradeType.Sell)) || ((pos.Label == "sergio") && (pos.NetProfit > 0) && (pos.TradeType == TradeType.Buy))) ExecuteMarketOrder(TradeType.Buy, Symbol, Volume, "sergio", 10, 10); } } }
@sergiestudillo1
richard_alcaide
14 Oct 2016, 13:28
RE:
Hi Lucian, I just tried to run this bot in multiple pairs but the problem is every time there is a pair that execute a market order the other pairs also execute a market order, how can I prevent this to happen?
Start backtest with this code:
using System; using System.Linq; using cAlgo.API; using cAlgo.API.Indicators; using cAlgo.API.Internals; using cAlgo.Indicators; namespace cAlgo { [Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)] public class sergie : Robot { [Parameter("Volume", DefaultValue = 1000)] public int Volume { get; set; } [Parameter("Buy ?", DefaultValue = true)] public bool buy { get; set; } protected override void OnStart() { Positions.Closed += closedposition; if (buy) ExecuteMarketOrder(TradeType.Buy, Symbol, Volume, "sergio", 10, 10); if (!buy) ExecuteMarketOrder(TradeType.Sell, Symbol, Volume, "sergio", 10, 10); } public void closedposition(PositionClosedEventArgs arg) { var pos = arg.Position; if (((pos.Label == "sergio") && (pos.NetProfit > 0) && (pos.TradeType == TradeType.Sell)) || ((pos.Label == "sergio") && (pos.NetProfit < 0) && (pos.TradeType == TradeType.Buy))) ExecuteMarketOrder(TradeType.Sell, Symbol, Volume, "sergio", 10, 10); if (((pos.Label == "sergio") && (pos.NetProfit < 0) && (pos.TradeType == TradeType.Sell)) || ((pos.Label == "sergio") && (pos.NetProfit > 0) && (pos.TradeType == TradeType.Buy))) ExecuteMarketOrder(TradeType.Buy, Symbol, Volume, "sergio", 10, 10); } } }
@richard_alcaide
... Deleted by UFO ...
sergiestudillo1
15 Oct 2016, 00:33
Hello all,
I have checked the cbot "TP & SL" and, my initial intention is no good, but I've thought a new best system ( I believe...) I have modificated the Lucian code for make a sistem grid more or less....
I open 2 positions, 1 short and 1 long, every one with S.L at the "X" pips... when the price take de S.L, is opened 2 news positions short & long with de same S.L that the initials positions.
My problem is when open a new positions is opened 4 new positions. and more exponential every time the S.L is checked. I want only 2 news positions every time.
I'm crazy with this problem :-(
I dont know that I have wrong.
using System; using System.Linq; using cAlgo.API; using cAlgo.API.Indicators; using cAlgo.API.Internals; using cAlgo.Indicators; namespace cAlgo { [Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)] public class sergie : Robot { [Parameter("Volume", DefaultValue = 1000)] public int Volume { get; set; } [Parameter("Buy ?", DefaultValue = true)] public bool buy { get; set; } public bool sell { get; set; } protected override void OnStart() { Positions.Closed += closedposition; if (buy) ExecuteMarketOrder(TradeType.Buy, Symbol, Volume, "sergio", 2, 0); if (!buy) ExecuteMarketOrder(TradeType.Sell, Symbol, Volume, "sergio", 2, 0); Positions.Closed += closedposition; if (sell) ExecuteMarketOrder(TradeType.Buy, Symbol, Volume, "sergio", 2, 0); if (!sell) ExecuteMarketOrder(TradeType.Sell, Symbol, Volume, "sergio", 2, 0); } public void closedposition(PositionClosedEventArgs arg) { var pos = arg.Position; if (((pos.Label == "sergio") == (pos.NetProfit < 0))) ExecuteMarketOrder(TradeType.Sell, Symbol, Volume, "sergio", 2, 0); if (((pos.Label == "sergio") == (pos.NetProfit < 0))) ExecuteMarketOrder(TradeType.Buy, Symbol, Volume, "sergio", 2, 0); } } }
@sergiestudillo1
sergiestudillo1
17 Oct 2016, 22:14
Hello,
I have a new code for this condition... I have a little problem, when I executed this cbot for example in EURUSD and I stoped one position in other market, the cbot executed new orders in EURUSD.... I don't know what is the problem.
using System; using System.Linq; using cAlgo.API; using cAlgo.API.Indicators; using cAlgo.API.Internals; using cAlgo.Indicators; namespace cAlgo { [Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)] public class sergi : Robot { [Parameter("Volume", DefaultValue = 1000)] public int Volume { get; set; } [Parameter("Stop Loss (pips)", DefaultValue = 20, MinValue = 1)] public int StopLossInPips { get; set; } protected override void OnStart() { Positions.Closed += closedposition; ExecuteMarketOrder(TradeType.Buy, Symbol, Volume, "Sergi", StopLossInPips, 0); ExecuteMarketOrder(TradeType.Sell, Symbol, Volume, "Sergi", StopLossInPips, 0); } public void closedposition(PositionClosedEventArgs arg) { var pos = arg.Position; if ((pos.NetProfit < 0)) Positions.Closed -= closedposition; OnStart(); }
@sergiestudillo1
... Deleted by UFO ...