problem
problem
30 Sep 2020, 16:20
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 ema : Robot
{
[Parameter("Source")]
public DataSeries Source { get; set; }
[Parameter("Stop Loss", Group = "Protection", DefaultValue = 15)]
public int StopLoss { get; set; }
[Parameter("Take Profit", Group = "Protection", DefaultValue = 30)]
public int TakeProfit { get; set; }
private ExponentialMovingAverage Ema4;
private ExponentialMovingAverage Ema9;
protected override void OnTick()
{
Ema4 = Indicators.ExponentialMovingAverage(Source, 4);
Ema9 = Indicators.ExponentialMovingAverage(Source, 9);
var longPosition = Positions.Find("Miaposizione", SymbolName, TradeType.Buy);
var shortPosition = Positions.Find("Miaposizione", SymbolName, TradeType.Sell);
if (longPosition == null && shortPosition == null)
{
if (Ema4.Result.HasCrossedAbove(Ema9.Result.LastValue, 0))
{
ExecuteMarketOrder(TradeType.Buy, SymbolName, 100000, "Miaposizione", StopLoss, TakeProfit);
}
else if (Ema4.Result.HasCrossedBelow(Ema9.Result.LastValue, 0))
{
ExecuteMarketOrder(TradeType.Sell, SymbolName, 100000, "Miaposizione", StopLoss, TakeProfit);
}
}
}
}
}
hi this is a simple example bot.
when the ema4 goes above the ema9 he goes buy while if the ema4 goes below the ema9 he goes sell.
the problem is that when the position takes the tp or the sl it opens a new one. I would like it to open only 1 in these conditions
thanks
Replies
luca.tocchi
30 Sep 2020, 16:30
RE:</
PanagiotisCharalampous ha detto:
Ciao Luca,
Si prega di pubblicare questo nell'argomento corretto.
Migliori saluti
Panagiotis
oh I'm sorry
@luca.tocchi
PanagiotisCharalampous
30 Sep 2020, 16:23
Hi Luca,
Please post this in the correct topic.
Best Regards,
Panagiotis
Join us on Telegram
@PanagiotisCharalampous