MatriksIQ Destek
Matriks Destek
Matriks Web Destek
Matriks Mobile Destek
0 beğenilme 0 beğenilmeme
283 kez görüntülendi

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.

 

Algoritmik Trading kategorisinde (415 puan) tarafından
tarafından düzenlendi | 283 kez görüntülendi
2 0
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 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 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 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 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 0

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

1 cevap

3 beğenilme 0 beğenilmeme
En İyi 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
(3,288 puan) tarafından
tarafından seçilmiş
Hoş geldiniz, Matriks Destek Platformu sizlere sorularınızın hızlıca cevaplanması için bir ortam sağlar. 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.



2,302 soru
2,179 cevap
1,900 yorum
1,593 kullanıcı