modify a martingale bot
modify a martingale bot
30 Jan 2020, 12:48
hi guys how can i change from random buy in a martingale to make a simultaneous buy and sell ?? in the sense, instead of opening a single position in one direction, open two inverse each time
thanks all
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 MartingaleRobot : Robot
{
[Parameter("Initial Volume", DefaultValue = 10000, MinValue = 0)]
public int InitialVolume { get; set; }
[Parameter("Stop Loss", DefaultValue = 40)]
public int StopLoss { get; set; }
[Parameter("Take Profit", DefaultValue = 40)]
public int TakeProfit { get; set; }
private Random random = new Random();
protected override void OnStart()
{
Positions.Closed += OnPositionsClosed;
ExecuteOrder(InitialVolume, GetRandomTradeType());
}
private void ExecuteOrder(long volume, TradeType tradeType)
{
var result = ExecuteMarketOrder(tradeType, Symbol, volume, "Martingale", StopLoss, TakeProfit);
if (result.Error == ErrorCode.NoMoney)
Stop();
}
private void OnPositionsClosed(PositionClosedEventArgs args)
{
Print("Closed");
var position = args.Position;
if (position.Label != "Martingale" || position.SymbolCode != Symbol.Code)
return;
if (position.GrossProfit > 0)
{
ExecuteOrder(InitialVolume, GetRandomTradeType());
}
else
{
ExecuteOrder((int)position.Volume * 2, position.TradeType);
}
}
private TradeType GetRandomTradeType()
{
return random.Next(0) == 0 ? TradeType.Buy : TradeType.Sell;
}
}
}
Replies
... Deleted by UFO ...
pedroesplago
21 Aug 2022, 05:32
RE:
Can you solved that code instead of random trade can you make it buy only simulteneously
@pedroesplago
sifneosfx
30 Jan 2020, 14:47
RE:
I will save your time by saying, this Strategie you are about to implement, will never work :)
twoheartzin1soul said:
@sifneosfx