Merhaba,
Kullandığınız indeks aralık dışında olduğunu için hata oluşuyor.
var hisse_data = GetBarData(Sembol, SembolPeriyodu);
var USD_data = GetBarData(Doviz, SembolPeriyodu);
var hisse = hisse_data.Close[hisse_data.BarDataIndexer.LastBarIndex];
var USD = USD_data.Close[USD_data.BarDataIndexer.LastBarIndex];
SISE 10DK için 15.12.2023 tarihine kadar giderken USDTRY 10DK grafik verileri 14.02.2024 tarihine kadar gitmektedir grafikten kontrol edebilirsiniz. tarih aralığını iki sembol içinde uygun bir şekilde girip deneyebilirsiniz.
Ayrıca çoklu sembol ya da periyot kullanıldığında istenmeyen sinyallerin oluşmaması adına ek kontroller eklenmesi gerekir.
Çoklu sembol kontrolü
public override void OnDataUpdate(BarDataEventArgs barData)
{
if (barData.SymbolId == GetSymbolId(SinyalOlusturanSembol))
{
if (CrossBelow(alphaTrend, alphaTrend, 0, 1))
{
SendMarketOrder(IslemYapilacakSembol, BuyOrderQuantity, OrderSide.Buy, includeAfterSession:false);
}
if (CrossAbove(alphaTrend, alphaTrend, 0, 1))
{
SendMarketOrder(IslemYapilacakSembol, SellOrderQuantity, OrderSide.Sell, includeAfterSession:false);
}
}
}
Çoklu periyot kontrolü
public override void OnDataUpdate(BarDataEventArgs barData)
{
if (barData.PeriodInfo == GrafikPeriod.ToPeriodInfo())
{
if (CrossAbove(mov, mov2))
{
SendMarketOrder(Symbol, BuyOrderQuantity, OrderSide.Buy);
}
if (CrossBelow(mov, mov2))
{
SendMarketOrder(Symbol, SellOrderQuantity, OrderSide.Sell);
}
}
}