Bahsettiğiniz konuya yakın olarak iki indikatörün kesişmesiyle stop olma koşulunu paylaşıyorum. Zannediyorum ki paylaştığım kod istediğinize göre evrilebilir.
public override void OnDataUpdate(BarDataEventArgs barData)
{
var barData1 = GetBarData(Symbol1, SymbolPeriod1);
var ohlcData1 = GetSelectedValueFromBarData(barData1, OHLCType.Close);
if ((CrossBelow(ema, sma, 0, 0) && superTrend.Value[0][superTrend.CurrentIndex] > ohlcData1)
||
(CrossBelow(ema, superTrend, 0, 0) && superTrend.Value[0][superTrend.CurrentIndex] > ohlcData1)
)
{
var portfoy = GetPortfolio();
var adet = portfoy.ContainsKey(Symbol1) ? portfoy[Symbol1] :0;
if (adet > 0)
{
SendMarketOrder(Symbol1, adet, OrderSide.Sell);
Debug("Pozisyon kapatıldı");
LastOrderSide.Obj = Side.All;
sentetikEmirdenMI = true;
}else if (adet < 0)
{
SendMarketOrder(Symbol1, Math.Abs(adet), OrderSide.Buy);
Debug("Pozisyon kapatıldı");
LastOrderSide.Obj = Side.All;
sentetikEmirdenMI = true;
}else
{
Debug("Pozisyon kapatma koşulu sağlandı ama elde pozisyon yok");
}
}
}