0 beğenilme 0 beğenilmeme
1,365 kez görüntülendi

decimal en_yuksek = HighestHigh(bardata, OHLCType.Close, 10);

ile açık bar hariç, son 10 barın en yüksek kapanışını almaya çalışıyorum. backtestte sonuç doğru gelirken canlıda yanlış geliyor.

Ref(HighestHigh(bardata, OHLCType.Close, 10),0) şeklinde kullandığımda da hata veriyor. Ne yapabilirim?

Algoritmik Trading kategorisinde (240 puan) tarafından | 1,365 kez görüntülendi

2 Cevaplar

1 beğenilme 0 beğenilmeme
Merhaba,

Ref(HighestHigh(bardata, OHLCType.Close, 10),-1)

olarak dener misiniz lütfen.

iyi çalışmalar
(13,600 puan) tarafından
0 0

denedim. aynı hatayı verdi.

kod :

        public override void OnDataUpdate(BarDataCurrentValues barDataCurrentValues)
        {

var bardata = GetBarData(Symbol, SymbolPeriod);

decimal en_yuksek = Ref(HighestHigh(bardata, OHLCType.Close, 10),-1);

...

hata :

error CS1503:1 bağımsız değişkeni:'decimal' öğesinden 'Matriks.Indıcators.Indicator' öğesine dönüştürülemiyor

0 beğenilme 0 beğenilmeme

Merhaba,

decimal en_yuksek = HighestHigh(bardata, OHLCType.Close, 10);

formülü son 10 bar içerisindeki en yüksek kapanış değerini verecektir(açık olan barda dahil)

backtestte debug sekmesine barın açılış zamanı ile birlikte değer yazılırken, canlıda yeni bar açıldığında sistem saati ile birlikte değer yazılacaktır.

Aşağıdaki resme bakıldığında bire bir  tuttuğu görülmektedir.

 

Ayrıca Ref() fonksiyonu içerisine sadece dataserisi eklenmesi gerektiğinde hata alıyorsunuz.

 

(15,892 puan) tarafından
0 0

merhaba,

decimal en_yuksek = HighestHigh(bardata, OHLCType.Close, 10); kodu açık barı dahil ediyor.

İlk mesajımda da belirttiğim gibi ben açık bar hariç almak istiyorum. Refli denemem bu yüzden.

 

Şimdilik bu kodu almak istediğim bar sayısını 1 artırarak kullanıyorum. Yeni açılan bar gaplı olursa sistemim hatalı işlem yapacak ama ne yapayım bulduğum tek yol bu.

 

8,636 soru
8,590 cevap
4,821 yorum
19,786 kullanıcı