MT4'ten MT5'e aktarma sorunu. Veya daha doğrusu, MT5'te bazı algoritmaların hatasız yürütülmesinin imkansızlığı.

 

İlk olarak, MQL5 Dil Referansından bir alıntı. Değerlendirme Tablosu Verilere erişimin organizasyonu.

"...veri kullanılabilirliği

HCC formatında veya hatta kullanıma hazır HC formatında verilerin mevcudiyeti, her zaman bu verilerin bir çizelge üzerinde görüntülenmesi veya mql5 programlarında kullanım için koşulsuz mevcudiyeti anlamına gelmez.

mql5 programlarından fiyat verisine veya gösterge değerlerine erişirken , bunların belirli bir zamanda veya belirli bir zamandan itibaren bulunmalarının garanti edilmediğini unutmayın ..."

Derhal, açıklanan sorunun nasıl aşılacağı konusunda tavsiye vermemenizi rica ediyorum. Bu çoğunlukla MQL5 geliştiricileri için yazılmıştır.

Fraktal filtreleme algoritması, МТ4 için ZUP'ta uygulanmaktadır. ZUP makalesinde - Pesavento desenli evrensel zikzak. Grafik arayüzü bu konuda biraz yazılmış. Ama burada algoritmayı tekrar anlatacağım.

Seçilen grafiksel aletlerin (örneğin, Andrews Pitchfork veya diğerleri) zikzak ekstremumlarına veya dalga sayımına bağlanmasıyla bir grafik üzerinde grafik aletleri görüntülerken, grafiksel arayüz kullanılarak fraktal filtreleme algoritması etkinleştirilir.

Fraktal filtreleme, oluşturulan grafik aleti, bu grafik aletin çıktısının anlamsız hale geldiği zaman dilimlerinde kaldırır.

Örneğin, seçilen ekstremum için, bazı zaman dilimlerinde tırnak yoktur (bu, daha düşük zaman dilimleri için geçerlidir) veya daha yüksek zaman dilimlerinde, bir çubuğun gövdesinde, çubuk içinde farklı konum varyasyonlarına sahip iki veya daha fazla ekstremum görünür.

Bu tür zaman dilimlerinde önceden oluşturulmuş bir grafik enstrümanı göstermenin bir anlamı yoktur. İşlevselliğini kaybeder. Bu gibi durumlarda fraktal filtreleme, "sorunlu" grafik araçlarının çıktısını otomatik olarak engeller. ... bu arada, sinir ağları uzmanları için ekleyeceğim ... sinir ağlarında uygulama için çok ilginç fikirler var ... ama bu başka bir planın konusu.

MQL5 ile ilgili sorun, grafiksel aracın eklendiği tüm ekstremumlar için tüm zaman çerçeveleri için oluşturulan zaman serilerinde bile, veri erişimini düzenlemenin özelliğinden dolayı (yukarıya bakın), seçilen için bazı zaman çerçevelerine erişimin olduğu zamanlar olmasıdır. ekstremum sonlandırılır. Sonuç olarak, fraktal filtreleme algoritması için yanlış zaman çerçevesi verileri oluşturulur. Yani, örneğin, tüm zaman dilimlerine erişirken, fraktal filtreleme için verilerdeki üst TF, aylık zaman diliminin üst TF değerini verir. Ancak, kullanılabilirliğin garanti edilmediği anda, bu ekstremum için üst TF, mevcut zaman çerçevesi ile sınırlıdır.

Kullanıcı, grafik aracının eklendiği simgeye tıklar. Grafik aracı görüntülenir. Kullanıcı eski TF'ye geçer. Grafiksel araç fraktal filtreleme algoritmasını kaldırır. Kullanıcının kafası karıştı. Uç noktaların hepsi görülebilir, ancak grafiksel araç ortadan kayboldu.

Ve burada, kullanıcı seçilen sembol üzerinde fareyi tıkladıktan sonra, mevcut zaman çerçevesinden farklı zaman serilerine erişimin göründüğü ana kadar bir grafik enstrümanın bağlanması için beklemeyi organize etmek imkansızdır.

MT4'te böyle bir sorun yok.

Tarif edilen durum, bu durumda beni MT5 için program yapmaktan men eden problemdir. Bu sorun, MT5 piyasaya sürüldüğü sırada bile açıktı...

ZUP kodu MT5'e aktarıldı. Ve piyasaya arz edildi. Ancak yukarıda açıklanan bir sorun var. Bu sorunu aşmak için koltuk değneklerini yığmadım. ... Bu sorunu bilerek, oluşturulan grafik aracını silebilirsiniz. Ve tekrar dışarı çıkar. Ama bu, hafifçe söylemek gerekirse...

Açıklanan sorunun hala MQL5 dilinde veya MT5 terminalinde bir kusur olduğunu düşünüyorum. MELİ!!! Herhangi bir zamanda önceden oluşturulmuş zaman serilerine erişim garantili olun!

Sonrasında. ZUP'ta dalga işaretleri oluştururken fraktal filtreleme etkinleştirilir. Aşağıdakilere sahibiz. Tüm zaman serilerine erişim olduğunda, tüm TF dalga sayımı doğru şekilde görüntülenir. Ancak zaman serilerine erişimin aniden kesilmesi durumunda, dalga işareti öngörülemeyen bir şekilde görüntülenebilir. Yani dalga işareti oluşturulduğunda her şey en üst tipteydi. Ve sonraki bazı anlarda, diğer TF'ye geçiş sırasında dalga işareti oluşturulduğunda, öngörülemeyen bir şekilde görüntülenir. Ve burada, terminalin hatalı çalışmasını ortadan kaldırmak için koltuk değneği oluşturmak kolay değil.

 
Grafik nesneleri unutun. Bu çok uygunsuz ve sınırlıdır. Canvas ile her şey daha kolay, daha hızlı ve sınırsız grafik olanaklarıyla çalışacak.
 

Evet, bu arada, daha dün, verileri W1'den bir yıl süren parçalar halinde periyodik olarak kopyalamanın gerekli olduğu bir gösterge yazdım. Çoğu zaman başarısız kopyalama girişimleri oldu. Sonunda hiçbir şey olmadı, her şeyi tamamen farklı bir şekilde yapmak zorunda kaldım.

 
Eugeni Neumoin :

...

Ayrıca 4k'dan sonra verilere erişim tanıdık ve rahatsız edici değil.

5k'deki verilere erişim, TF ile sınırlıdır.

TF D1 veya W1'de oldukça uzun bir zaman trend çizgisi çizerseniz, M1 veya M5'e geçerek trend çizgisinin uzak noktasına sınırlı erişim nedeniyle onu göremezsiniz.

Kolayca kontrol edebilirsiniz.

Tuval ile uğraşmak zorundasın. Ama belki de orada böyle bir pusu bekliyor.

 
Verilerin erişilemezliğini tekrarlanabilir bir şekilde gösterebilir misiniz?

Tekrarlanabilir kanıt olmadan iddiada bulunuyorsunuz.
 
Harika! Bir gösterge hazırlamak, asıl şeyi göstermek için gereksizleri çıkarmak istedim. Yapılmış. Ama birdenbire her şey bir İsviçre saati gibi işlemeye başladı.
 
Uladzimir Izerski :

Ayrıca 4k'dan sonra verilere erişim tanıdık ve rahatsız edici değil.

5k'deki verilere erişim, TF ile sınırlıdır.

TF D1 veya W1'de oldukça uzun bir zaman trend çizgisi çizerseniz, M1 veya M5'e geçerek trend çizgisinin uzak noktasına sınırlı erişim nedeniyle onu göremezsiniz.

Kolayca kontrol edebilirsiniz.

Tuval ile uğraşmak zorundasın. Ama belki de orada böyle bir pusu bekliyor.

Bu tamamen farklı bir hikaye. Uzak noktada, trend çizgisinin gösterilebilmesi için küçük TF'de bir geçmiş olmalıdır.

W1 üzerinde bir bağlama ile bir dirgen oluşturuyoruz. Minimum tf m20. Bu, fraktal filtreleme algoritması ile gösterilir. Bu durumda, bir araç ipucunda. Daha küçük TF'lerde, yabanın ilk noktasına atıfta bulunarak bir şey inşa etmenin bir anlamı yoktur.

Aşağıdaki resimde m20 üzerinde yukarı ok ile gösterilen yer dikey çizgi ile işaretlenmiştir. Her şey harika çıkıyor. Ancak daha küçük TF'lerde, fraktal filtreleme bu dirgenlerin görüntülenmesini engelleyecektir. Orada, daha küçük TF'lerde geçmiş, TERMINAL_MAXBARS 'ın ötesine geçer. Bu nedenle, m20'den daha az TF'ye çekilmek işe yaramaz.

Her şey harika çıkıyor. Ofset yok. Ve MT5'te harika çalışıyor. Ancak bunu bu şekilde gösterebilmek için, dirgen geri çekilirken ekstremumun tam zamanını minimum TF'ye, bu durumda m20'ye ayarlamak gerekir.

Bu arada, 09-11-2018'de SLM318 hattının (kesikli) güzel çalıştığını görüyorsunuz. Minsk'ten Forex Akademisi'nin desteklediği bir keskin nişancı tekniği gibi. Ama burada pazar SLM318 hattını "gördü" ve ustaca çalıştı ...

 
Renat Fatkhullin :
Verilerin erişilemezliğini tekrarlanabilir bir şekilde gösterebilir misiniz?

Tekrarlanabilir kanıt olmadan iddiada bulunuyorsunuz.

Resmi kaydetmedi. Ama bu olduğunda, resimleri yayınlayacağım. Bazı test kodlarını kullanarak çoğaltamıyorum. Oluşturulacak çok fazla kod var.

Ben sadece nasıl olduğunu anlatacağım. Dirgeni H3'e getirdi. Daha eski TF'lerde de bulunan ekstremumlara bağlı. H4'e geçildi. Dirgenler gitti. Bunun neden olduğunu anlamaya başladım. Fraktal filtreleme sınırının bulunduğu TF'lerin araç ipucunu kontrol ettim. Üst sınırın H3 üzerinde olduğu ortaya çıktı. Tablodan dirgen kaldırıldı. Dirgeni tekrar aynı ekstrema bağladım. Üst limit kontrol edildi. Aylık telefonundaydı. Ve bu tür durumlar tekrarlandı. Ama sıklıkla değil.

Program, bir zikzak görüntülerken ilk 10 ekstremum için tüm zaman dilimlerini çağırır. Her seferinde zikzak yeniden çizilir. ZigZag, yalnızca fiyat sıfır çubuğunu terk ettiğinde yeniden çizilir. Her tikte değil.

Terminali kapatıyorum. Bilgisayarın hafızasından siliyorum. *.hc dosyalarının bulunduğu geçmiş klasörüne giriyorum. Tüm zaman dilimleri için zaman serisi dosyaları, terminalin bilgisayar belleğinden boşaltıldığı andaki tarih ve saate sahiptir. Yani tüm zaman serileri oluşturulmuştur.

 
Resim ilgi çekici değil, kodunuzun bir türevidir.

Net günlüklerle veri sağlamanın reddedilmesi ilgi çekicidir.
 
Renat Fatkhullin :
Resim ilgi çekici değil, kodunuzun bir türevidir.

Net günlüklerle veri sağlamanın reddedilmesi ilgi çekicidir.

Modellenmesi gerekiyor. Günlükler oluşturmak için. Nasıl yapacağımı düşüneceğim.

 
Renat Fatkhullin :
Verilerin erişilemezliğini tekrarlanabilir bir şekilde gösterebilir misiniz?

Tekrarlanabilir kanıt olmadan iddiada bulunuyorsunuz.

Bu benim için bir soruysa?

Burada basit bir örnek tekrarlıyorum.

D1.

v1

H4'e taşındı

H4


H1'e taşındı

H1


Küçük zaman dilimlerinde temiz bir grafik olacaktır.

Listelerde nesneler var, ancak haritada değiller.

m1

Neden: