0 beğenilme 0 beğenilmeme
1,535 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 (257 puan) tarafından | 1,535 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,800 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.

 

(16,179 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.

 

9,148 soru
9,103 cevap
5,027 yorum
28,107 kullanıcı