[Parameter(10)]
public int DüşüşYüzdesi;
public override void OnInit()
{
AddColumns(5);
SetColumnText(0, "Fiyat");
SetColumnText(1, "EnYüksekFiyat");
SetColumnText(2, "DüşüşYüzdesi %");
}
public override bool OnExplorer(List<BarDataEventArgs> bardatas)
{
var bardata = GetBarData();
var BarDataIndex = bardatas.FirstOrDefault().BarDataIndex;
var lastBarData = bardatas.Last();
var close = lastBarData.BarData.Close;
// Geçmiş BarSayısı kadar bar verisi al
var recentBars = bardatas.Take(1).Select(b => b.BarData).ToList();
// Son BarSayısı bar içindeki en yüksek fiyatı bulma
var peakPrice = recentBars.Max(b => b.High); // Bu barların yüksek fiyatları arasından en büyüğünü seçiyoruz
// Tepeden düşüş yüzdesi hesaplama
var dropPercentage = ((peakPrice - close) / peakPrice) * 100;
// Düşüş yüzdesi DüşüşYüzdesi'nden büyükse sinyal ver
if (dropPercentage > DüşüşYüzdesi)
{
SetColumn(0, close); // Kapanış fiyatını yazdır
SetColumn(1, peakPrice); // En yüksek fiyatı yazdır
SetColumn(2, Math.Round(dropPercentage, 2)); // Düşüş yüzdesini yazdır
return true; // Sinyali tetikle
}
return false;
}
}
}