Matriks Destek ve Yardım Platformu

Matriks Ürünleri ile ilgili tüm sorularınız için bizlere buradan ulaşabilirsiniz. Daha önce sorulan soruları ve verilen cevapları ilgili sekmelerden ve arama üzerinden inceleyebilirsiniz. Sağ taraftaki kategoriler üzerinden İlgilendiğiniz özelliklerle ilgili soruları filtreleyebilirsiniz. Soru ve cevapları sosyal medyada paylaşabilirsiniz. Sorduğunuz ve cevapladığınız soruların ve yorumlarınızın aldığı oylar üzerinden puan kazanırsınız. Puan sistemine bağlı kampanyamızla ücretsiz kullanım avantajlarından faydalanabilirsiniz.

0

Backtest ve canlıda farklı sonuçlar alma (çözüldü)

Soruldu
Görüntülenme
1.877 görüntülenme
Durum
Çözüldü

Haftalardır yaşamış olduğum backtest ve canlı farklı çalışma sorununun kaynağını tespit etmek amacıyla detaylı debug incelemesi yaptım ve sorunun sebebini  buldum.
 

SORUN: 30 dklık periyodda canlıda close ve open değerlerinin aynı dönmesi. open ve close değerlerini şu şekilde çekiyorum:

BarDataValue barVeri = barDataCurrentValues.LastUpdate;

var close = barVeri.Close;

var open = barVeri.Open;

--------------------------------------------------------------

Canlıdan elde edilmiş debug verisi

fotoğraf belli olmuyor link bırakayım : https://ibb.co/74JDLL7

--------------------------------------------------------

Aynı saat aynı tarih için backtestle elde edilmiş debug verisi

fotoğraf belli olmuyor link bırakayım : https://ibb.co/DgDct4B

Şimdi bu sorunun ortaya çıkmasının sebebi nedir? ve nasıl giderebiliriz?

edit: fotoğraf linkleri eklendi.

 

Paylaş
CevaplaBayrakladüzenlendi · gimmemoregimmemore390

Yorumlar (7)

  • ▲2
    Merhaba,

    Böyle dener misiniz.

    var bardata = GetBarData();

    var close = bardata.Close[barDataCurrentValues.LastUpdate.BarDataIndex - 1];

    var open = bardata.Open[barDataCurrentValues.LastUpdate.BarDataIndex - 1];
  • ▲0
    Merhaba,
    bu şekilde bir önceki barın açılış ve kapanış verilerini çekeriz ama

    var bardata = GetBarData();

    var close = bardata.Close[barDataCurrentValues.LastUpdate.BarDataIndex ];

    var open = bardata.Open[barDataCurrentValues.LastUpdate.BarDataIndex ];

    şeklinde deneyeceğim, teşekkürler.
  • ▲0

    var bardata = GetBarData();

    var close = bardata.Close[barDataCurrentValues.LastUpdate.BarDataIndex ];

    var open = bardata.Open[barDataCurrentValues.LastUpdate.BarDataIndex ];

    VE

     

    BarDataValue barVeri = barDataCurrentValues.LastUpdate;

    var close = barVeri.Close;

    var open = barVeri.Open;

    şeklinde YENİ AÇILAN BARIN VERİLERİNİ ÇEKİYORMUŞUZ.

    Sayın merper,

    sizin tavsiyeniz haftalardır uğraştığım sorunun çözümü. ÇOK TEŞEKÜR EDERİM İYİ ÇALIŞMALAR.


     

  • ▲0

    Ben prime da çalışan formülümü birebir iq ya geçirmeyi başarmıştım. Tüm sinyal yerleri birbirini tutuyordu. Ama canlıya alınca sinyal gelmiyordu. Yukarıdaki şekilde kodu değiştirdim, canlıda emir gelmeye başladı ancak şimdi de backtest sonuçları prime testine göre tamamen farklı geliyor.

    Bu kodla sizin backtest sonuçlarınız doğru geliyor mu?

  • ▲0

    düzelttiğimde backtestte farklı sonuçlar geldi evet. Sanırım backtestte 


    var bardata = GetBarData();

    var close = bardata.Close[barDataCurrentValues.LastUpdate.BarDataIndex ];

    var open = bardata.Open[barDataCurrentValues.LastUpdate.BarDataIndex ];

    şeklinde kullandığımızda canlıdaki

    var bardata = GetBarData();

    var close = bardata.Close[barDataCurrentValues.LastUpdate.BarDataIndex - 1];

    var open = bardata.Open[barDataCurrentValues.LastUpdate.BarDataIndex - 1];

    sonuçlarını alıyoruz. Ama emin değilim.

    Kodu düzelttiğimden beri backtestte bir kayma söz konusu.
     

  • ▲0

    bar indexleri seviyesinde iyice irdeleyip size dönüş yapacağım bu konuda.

  • ▲0
    Selamlar, bu sorunu çözebildiniz mi? Aynı dertten müzdaribim, 2 haftadır çözemedim.

1 Cevap

3

Kabul edilen cevap

Merhaba,

Sorununuz çözüme ulaşmış olduğunu görüyorum. Bilgilendirme amaçlı olarak canlı yayın akışında kalıcı sinyal ile çalışırken OnDataUpdate sadece yeni bar açılışında tetiklenir. Bar açılışında da yüksek, düşük, açılış ve kapanış değerleri eşittir. Bu nedenle barDataCurrentValues.LastUpdate ile gelen close, open vb. değerler eşit olacaktır.

İyi çalışmalar
BağlantıBayrakladüzenlendi · Seçkin DurgayOrçunMatriks Destek4.555

Cevabınız

Cevap yazmak için giriş yapın.Giriş yapKayıt ol