Kütüphaneler: OnTickMulti - sayfa 2

 

fxsaber #:

double OnTester()

{return AccountInfoDouble(ACCOUNT_BALANCE); }

Bu satır ne işe yarıyor?

 
lynxntech #:

Bu satır ne işe yarıyor?

İstenen bakiye değerini geri getirmek için.

 

Çözümünüzde tiklerin zaman açısından ne kadar senkronize olduğunu kontrol ettiniz mi?

Normal testlerde, farklı karakterlerden tikler talep edildiğinde, birbirlerine göre 1 tiklik bir gecikme oluyor. Bunu kontrol etmek için dakikada bir tik içeren özel testler yaptım.

 
Rorschach #:

Çözümünüzde tiklerin zaman açısından ne kadar senkronize olduğunu kontrol ettiniz mi?

Her şey düzgün çalışıyor. Standart Test programında da sorun yok. Eğer değilse, lütfen gösterin.

 
fxsaber #:
Standart Test programında doğru. Değilse, gösterin.

EUR ve GBP'nin dakikalık grafiklerinden özel tikler oluşturdum (kolaylık olması için)

EUR için doğru, GBP için bir tik önce (zaman ve fiyata bakın)

Dosyalar:
1.mq5  3 kb
 
Rorschach #:

EUR ve GBP'nin dakikalık grafikleri üzerinden özel tikler oluşturdum (kolaylık olması için)

EUR için doğru, GBP için bir tik önce (zaman ve fiyata bakın)

Aynı zamana sahip tikler aynı anda gelmez. Hepsi sırayla gelir. Ve eğer daha geç saatli EURUSD tiki ilk olarak geldiyse, o anda ikinci olarak gelecek olan aynı zamana sahip GBPUSD tiki hakkında hiçbir şey bilinmez. Bu nedenle, EURUSD'deki ilk tik geldiği anda, GBPUSD'deki ikinci tik henüz mevcut değildir; sadece GBPUSD'deki bir önceki tik verileri mevcuttur.
 
fxsaber #:
Aynı zamana sahip tikler aynı anda gelmez. Hepsi sırayla gelir. Ve eğer EURUSD’deki daha geç saatli tik ilk olarak geldiyse, o anda ikinci olarak gelecek olan GBPUSD’deki aynı zamana sahip tik hakkında hiçbir şey bilinmez. Bu nedenle, ilk EURUSD tikinin geldiği anda, ikinci GBPUSD tiki henüz mevcut değildir; ancak önceki GBPUSD tikine ait veriler mevcuttur.

Test ortamında bu bir dezavantajdır; arbitraj için verilerin senkronize olması gerekir.

Ve bu sadece arbitraj için geçerli değildir. Sistem, enstrümanlar arasındaki korelasyona dayalıysa, geleceğe yönelik tahminler ortaya çıkar.

 
Rorschach #:

Test ortamında bu bir dezavantajdır; arbitraj için senkronize olması gerekir.

Ve bu sadece arbitraj için geçerli değil. Sistem, enstrümanlar arasındaki korelasyona dayalıysa, geleceği öngörme sorunu ortaya çıkar

Bu tür durumlar için Test Cihazında ayarlanabilir bir yürütme gecikmesi özelliği bulunmaktadır.
 
fxsaber #:
Bu tür durumlar için Test Cihazında ayarlanabilir bir yürütme gecikmesi bulunmaktadır.
Benimki biraz karmaşık oldu. Init'te özel test programı ile girişleri bir diziye kaydediyordum, ardından test programındaki OnTick'te girişleri okuyup senkronize ediyordum
 
Rorschach #:

Test ortamında bu bir dezavantajdır; arbitraj için senkronize çalışması gerekir.

Ve bu sadece arbitraj için geçerli değil. Sistem, enstrümanlar arasındaki korelasyona dayalıysa, geleceğe dair öngörüler ortaya çıkar.

Geleceğe bakma söz konusu değildir; çünkü X zamanında birkaç sembol için tikler varsa, araçlardan birinde ilk olay gerçekleştiğinde, diğer sembollerde (henüz olayları kuyrukta bekleyenler) bir sonraki tik değil, bir önceki tik olacaktır (örnekte olduğu gibi, 00:04, 00:05'ten önceydi, sonra değil).

Senkronizasyon için bunu kodunuzda algoritmik olarak sağlamanız gerekir; örneğin, OnTick işleyicisinde, işlemi başlatmadan önce ilgili tüm sembollerdeki tik zamanlarını sorgulayın. Ancak, prensip olarak, arbitraj tam olarak tikler üzerinden yapılıyorsa (çubuklar veya dakikalar üzerinden değil), güvenilir bir senkronizasyon düşünmek zordur; çünkü bazı sembollerde tikler birkaç saniye boyunca gerçekten yok olabilir.