Benim gibi HEIKIN ASHI kullananlar için sentetik emirlerin doğru çalışmasını sağlayan çok önemli bir detayı öğrendim. Matriks'den gelen cevabı paylaşıyorum. Eğer AddSymbol ilk olarak normal barlar ile çağrılmazsa sentetik emirler doğru uzaklığa ayarlanmıyor (HeikinAshi bar değerlerine göre ayarlanıyor) ve bazı durumlarda anında stop gelebiliyor. AddSymbol hem normal bar hem de HeaikinAshi ile çağrılınca da OnDataUpdate iki defa geliyor. Kodun buna göre yazılması gerekiyor.
----------------
Sentetik emirler tanımlandığı andaki değerleri referans almaktadır
Stratejide Heikenashi kullanılırsa sentetik emirler Heikenashi hesaplamasına göre tanımlanmaktadır.
Sentetik emrin normal barlara göre tanımlanması için OnInit() metodunda ilk olarak normal bar verisine kayıt olunması gerekir.
Aşağıdaki örnekte OnDataUpdate() üst üste 2 sefer tetikleneceği için istenmeyen sinyallerin önüne geçmek için çoklu periyot kontrolü eklemeniz gerekir.
PeriodInfo HeikenAshi;
public override void OnInit()
{
AddSymbol(Symbol,SymbolPeriod);
HeikenAshi=GetHeikinAshiPeriodInfo(SymbolPeriod);
AddSymbol(Symbol,HeikenAshi);
}
public override void OnDataUpdate(BarDataEventArgs barData)
{
if(barData.PeriodInfo==HeikenAshi){
// yapılacaklar
}
}