Metatrader 5'teki sembolleriniz ve veri akışlarınız - sayfa 4

 
zaskok :

Ticaret sistemlerini optimize etmek için en uygun buluşsal yöntemler vardır. Evrensel GA'ların aksine, bunun için özel olarak tasarlanmıştır. Söyleyin bana, test cihazındaki tek buluşsal yöntemi MQL5'te yazılmış kendi yönteminizle değiştirmek mümkün müdür? Test cihazını giriş verilerini özelleştirme yönünde kökten iyileştirmeye zaten karar verdiyseniz, o zaman optimizasyon yöntemlerini özelleştirmek (özel optimizasyon kriterleri uzun süredir ortalardadır) eksiksiz bir kıyma için mantıklıdır.

GA'dan başka bir şey istiyorsanız, bu yöntemleri tam olarak adlarına göre listeleyin ve lütfen doğrudan faydaların kanıtlarıyla tartışın.

Ancak en önemli soru, GA ile özellikle size uymayan nedir? Size çözüm alanları bulmuyor mu? Ardışık 10 aramayla bile, istenen özelliklere sahip kümeler hakkında bir fikriniz yok mu?

Tabii ki. Çok hızlı ve verimli. Normal numaralandırmadan on binlerce kat daha hızlı.

Diğer yöntemlerle (örneğin, monte carlo veya tavlama) daha hızlı veya daha iyi sonuçlar alıyor musunuz? bir gerçek değil.

Ancak burada, genetik algoritmamızın kendi çalıştırma değerlendirme kriterlerinin her programcıya kendi seçim varyasyonlarını uygulama özgürlüğü verdiği gerçeği var. Bu mekanizma, esasen kendi buluşsal yöntemlerinizi yaratmanın anahtarıdır.

Buna ek olarak, girdi parametrelerini yönetmek/yeniden tanımlamak için MQL5 işlevlerine sahibiz; bu, sayısal olmayan/doğrusal olmayan parametreleri özel doğrusal sayısal sayaçlarda sanallaştırarak yinelemelerini uygulamamıza olanak tanır. Örneğin, dosyalardan alınan veriler de dahil olmak üzere sayısal olmayan 30 parametre alın, 64 bitlik sayaca[i] dönüştürün ve bunu çalışan bir parametre olarak çevirin. İçinde saklı olan şey programcıya kalmış. Ve kendi değerlendirme ölçütünüzün işlevi de kendi buluşsal yönteminizi yaratmanıza yardımcı olur.

Генетические алгоритмы - это просто!
Генетические алгоритмы - это просто!
  • 2010.05.25
  • Andrey Dik
  • www.mql5.com
В статье автор расскажет об эволюционных вычислениях с использованием генетического алгоритма собственной реализации. Будет показано на примерах функционирование алгоритма, даны практические рекомендации по его использованию.
 
zaskok :

Ticaret sistemlerini optimize etmek için en uygun buluşsal yöntemler vardır. Evrensel GA'ların aksine, bunun için özel olarak tasarlanmıştır. Söyleyin bana, test cihazındaki tek buluşsal yöntemi MQL5'te yazılmış kendi yönteminizle değiştirmek mümkün müdür? Test cihazını giriş verilerini özelleştirme yönünde kökten iyileştirmeye zaten karar verdiyseniz, o zaman optimizasyon yöntemlerini özelleştirmek (özel optimizasyon kriterleri uzun süredir ortalardadır) eksiksiz bir kıyma için mantıklıdır.

Bu yöntemi ekstremumları bulmak için kullanıyorum. Örneğin, bir fonksiyonun maksimumunun aranması şöyle görünür:

ve bu aramanın kendisi:

 

Bu, 3D görselleştirme de dahil olmak üzere MT5 test cihazındadır.

 
Renat :
MT5 için kendi veri akışlarımızı yazmak için arayüzler açmaya karar verdik.

Gerçek zamanlı olanlar da dahil olmak üzere kendi veri kaynaklarınızı özgürce yazmak mümkün olacaktır. Bu, ayrıntılı bir geçmiş ve Seviye 2 sipariş defterleri dahil olmak üzere herhangi bir veriyi bağlamanıza izin verecektir.

Varsayılan olarak, çevrimdışı olanlar da dahil olmak üzere bir dizi düzenli veri akışı sağlayacağız. Test cihazında sanal semboller de mevcut olacaktır.

Bütün bunlar elbette ücretsiz.

halleluya! Kaç yıldır soruyorlar ve sonunda ... Sevinç ve hassasiyet gözyaşları bile yuvarlanıyor :)

Şahsen, MT5'i tam anlamıyla kullanmaktan her zaman için geçmiş eksikliği nedeniyle geri tutuldum. Wealth-Lab gibi üçüncü taraf programlarda araştırma yapmak ve zaten MT5'te savaş robotları yazmak zorunda kaldım. Artık üçüncü parti programlara gerek kalmayacak.

 
forexman77 :

Optimize edilecek çok fazla değişken olduğunda, yüksek bir geçmiş uydurma şansı vardır.

Değişkenlerin büyümesi ile optimizasyon süresi katlanarak artıyor, bundan kaçış yok.

Bundan bir çıkış yolu var, bir konut binasının büyüklüğünde süper güçlü bir bilgisayar)

Bu soruna aşinayım ve bu durumu çözmek için bir algoritma geliştirildi, başka bir şey anlamıyorum, yine benim için zorla genetik kullanmanın kaba kuvvetten daha iyi olduğuna karar verildi ... Sanmıyorum ve bunun nedenleri ve olumlu örnekleri var, aynı Karlılık tam olarak seçeneklere göre sıralanarak oluşturuldu, şimdi alaka düzeyi geçmişte kaldı. ama hala.

Yine, bu kadar büyük bir uzak temsilci pazarını neden kestiği açık değil, en azından işle meşguller .... ondan uzakta, mevcut olanların% 80'i (IMHO) boşta ve sonra onlar ayrıca potansiyel işlerinin önünü kestiler ...

 
Renat :

Bu, 3D görselleştirme de dahil olmak üzere MT5 test cihazındadır.

Harika, bu şeyi bilmiyordum, ama benim için işe yaramadı, 3D'deki anahtarlama konumları etkin değil, kodda özel olarak yerleştirilmiş bir şey olmalı mı?
 
IvanIvanov :
Harika, bu şeyi bilmiyordum, ama benim için işe yaramadı, 3D'deki anahtarlama konumları etkin değil, kodda özel olarak yerleştirilmiş bir şey olmalı mı?
MetaTrader 5 Strateji Test Cihazı 3D Görselleştirme
 

Ö ! Bravo Adminler!

Anladığım kadarıyla ve tarihsel verilerde hata ayıklama sonunda görünecek mi?

 
Renat :

GA'dan başka bir şey istiyorsanız, bu yöntemleri tam olarak adlarına göre listeleyin ve lütfen doğrudan yarar kanıtlarıyla tartışın.

Ancak en önemli soru, GA ile özellikle size uymayan nedir? Size çözüm alanları bulmuyor mu? Ardışık 10 aramayla bile, istenen özelliklere sahip kümeler hakkında bir fikriniz yok mu?

Tabii ki. Çok hızlı ve verimli. Normal numaralandırmadan on binlerce kat daha hızlı.

Diğer yöntemlerle (örneğin, monte carlo veya tavlama) daha hızlı veya daha iyi sonuçlar alıyor musunuz? bir gerçek değil.

Size bir kanıt sunmak oldukça sorunlu, çünkü Bazı konularda dar görüşlü olduğunuza dair kamuoyundaki tartışmalara tam olarak doğru yanıt vermiyorsunuz. Ve sizin başlatmış olduğunuz bu dal, ne yazık ki, bu ifadenin nihai kanıtı olarak hizmet ediyor. Bunu yıllarca arayıp soran başkaları değildi elbette ama iddiaya göre yalanladınız... Ama ne oldu, oldu. Ancak yanıldığınızı kanıtlamak biraz anlamsız görünüyor çünkü. değerlendirmede işe yarayan mantık değil, insan faktörüdür.

Bu nedenle artık sizin için değil, forum üyeleri için GA'dan biraz farklı olan sezgisel optimizasyon yöntemleri lehinde mantıklı argümanlar vereceğim. Aşağıda, daha önce alıntıladığım makaleden birkaç yırtık alıntı + özellikle dikkat etmeye değer altını çizdiğim noktalar var:

Tüm stokastik optimizasyon yöntemlerinin ortak bir dezavantajı vardır - bir tür yerel ekstremumla karşılaşabilirler ve bu optimal olanı gözden kaçırabilirler . Bunu önlemek için örnek alanlarını ve iterasyon sayısını maksimize etmek gerekir. Ancak hesaplamaların hızı bundan muzdariptir. Bu yüzden her zaman altın ortalamayı aramalısınız.


Ancak, bunun hakkında düşünürsek , küresel ekstremumun kendisi, yakınsama yoksa bizim için hiçbir işe yaramaz . Yani, ekstremumun etrafındaki komşular şartlı olarak düzgün bir şekilde azalmazsa, o zaman bu global ekstremumun doğası gereği rastgele olması çok muhtemeldir ve yetersiz olduğu için bizim için çok az faydası olacaktır ve hesaplamalarımızı bozacaktır. . Bu nedenle, ekstremum etrafındaki parametreleri incelemek çok önemlidir. Yakınsama varsa, o zaman bir sistem vardır ve bu strateji daha fazla çalışılabilir .

Ancak yukarıda belirttiğim gibi, ekstremumun etrafındaki alanı incelemek önemlidir ve bu nedenle, sona yaklaşmaya karar verdim ve son yinelemede tüm komşu stratejileri tamamen kontrol ettim. Gradyanlarla oynamadım ve yakınsamayı ilk örneğin yüzdesi olarak statik yaptım. Yani, çok boyutlu bir matrisi her yinelemeden sonra %1 veya %20 oranında ne kadar keseceğimize en baştan karar veririz. Ayrıca, zaman yeteneklerimizi hesaba katarak, test için her yinelemede matristen kaç strateji alacağımıza hemen karar veririz. Bu nedenle, matrisin boyutu bizim için hiç önemli değil, tam olarak kaç yineleme ve hangi hacimde gerçekleştireceğimizi biliyoruz! Bu, stokastik yöntemlerin güzelliğidir.

İlk yinelemeden sonra, uzayın ilk etüdünü yaptığımızda, bir sonraki örnek için çalışma alanını bir şekilde küçültmeliyiz. Ama hala bu alan hakkında neredeyse hiçbir şey bilmiyoruz ve bana öyle geliyor ki, bilinmeyen alanları kesmek oldukça pervasız . Genel olarak, algoritma global bir maksimumu aramak için tasarlanmıştır ve biz tüm yerel ve global maksimumlarla ilgileniyoruz .

Stratejinin karlı olabileceği tüm parametreleri bilmemiz gerekiyor. Belki bazı parametrelere sahip bir strateji iyi bir kâr getirir, ancak daha risklidir ve diğer parametrelerle biraz daha az kâr getirir, ancak daha istikrarlı ve daha az riskli olduğu ortaya çıkar ve algoritmamızı takip edersek gözden kaçırabiliriz. o .

En kötü stratejileri kasıtlı olarak keşif alanından çıkarıyoruz. Böylece, sonraki iterasyonlarda, daha karlı stratejilere sahip alanları keşfediyoruz ve ihtiyacımız olmayan alanları incelemek için değerli test zamanını boşa harcamayız. Sonuçta, çalışma alanımız uzayın tüm maksimumlarına yakınsar.

Diyelim ki uzayı keşfettik ve kabaca kaç tane maksimum olduğunu hayal edin. Ve bize ne veriyor? Şimdiye kadar, neredeyse hiçbir şey...
Rastgele mi yoksa sistemik mi olduklarını anlamak için bu maksimumları araştırmamız gerekiyor. Bunu yapmak için, test cihazı optimize edici en iyi stratejileri seçme ve ek olarak daha ayrıntılı olarak etraflarındaki alanları keşfetme fırsatı sağladı . Optimize ederken gözden kaçırdığımız stratejileri keşfedin. Artık uzayın aşırılığı hakkında neredeyse her şeyi biliyoruz! Elde edilen veriler, kümeleme, yeniden optimizasyon vb. için daha fazla araştırılabilir. Ama bu başka bir hikaye!

Bu, bu makale ile ilgili değil, pratikte hiçbir yerde tartışılmayan TS'yi arama ve optimize etmenin genel ilkeleri hakkındadır. Bu nedenle, GA, ES'yi optimize ederken cephanelikte sahip olmak istediği şey değildir.

Ancak, genetik algoritmamızın kendi çalıştırma değerlendirme kriterlerinin her programcıya kendi seçim varyasyonlarını uygulama özgürlüğü verdiği gerçeği de şudur. Bu mekanizma, esasen kendi buluşsal yöntemlerinizi yaratmanın anahtarıdır.

Buna ek olarak, girdi parametrelerini yönetmek/yeniden tanımlamak için MQL5 işlevlerine sahibiz; bu, sayısal olmayan/doğrusal olmayan parametreleri özel doğrusal sayısal sayaçlarda sanallaştırarak yinelemelerini uygulamamıza olanak tanır. Örneğin, dosyalardan alınan veriler de dahil olmak üzere 30 sayısal olmayan parametre alın, 64 bitlik sayaca[i] dönüştürün ve bunu çalışan bir parametre olarak çevirin. İçinde saklı olan şey programcıya kalmış. Ve kendi değerlendirme ölçütünüzün işlevi de kendi buluşsal yönteminizi yaratmanıza yardımcı olur.

"Giriş parametrelerini yönetmek/yeniden tanımlamak için MQL5 işlevleri" - hiç duymadım, bana bir bağlantı verin.
 
event :

Bu yöntemi ekstremumları bulmak için kullanıyorum. Örneğin, bir fonksiyonun maksimumunun aranması şöyle görünür:

Teşekkür ederim! Yaklaşık işleviniz için bir formül verebilir misiniz, böylece OnTester'da yerel ekstremalarını OnTester'da bulmaya çalışabilirsiniz - karşılaştırma için.

Sizden yöntem hakkında birkaç yapıcı kelime (açıklama, kaynaklar, artılar / eksiler) duymak ilginç olurdu.