Optimizasyon ve numune dışı test. - sayfa 6

 
Mathemat :
Vita , iyi nokta. Ama genelleme yeteneğinin sadece bir Uzman Danışmanın değil, aynı zamanda bu yeteneği doğru bir şekilde tanımlaması gereken bir öğrenme algoritmasının da bir özelliği olduğunu söyleyebilirim. Metaquota algoritması böyle bir yeteneği ortaya çıkarmaz, ancak yeniden optimizasyon ile tomurcukta yok eder.

Metaquota algoritması böyle bir yeteneği ortaya çıkarmaz, ancak yeniden optimizasyon ile tomurcukta yok eder. -- Bir örnek görmek istiyorum.
 

Gereğinden fazla örnek. Kendimi belli belirsiz ifade ettim. Optimize edicinin acelesiz kullanımının "bir, iki, üç!" kâse yazarlarının aşırı ve mantıksız iyimserliğine yol açar. Örneğin, en son - 'Forex bize karşı mı hareket ediyor? Ya da bir şey anlamıyorum . Veya 'Trend Uzman Danışmanı'. Geribildirim için beklemek.' . Hepsi uygun.

"Tomurcukta yok etme" konusuna gelince: Bir veri segmentindeki aşırı eğriliğin, gerçek hayatta, örneklem dışı segmentte sürdürülebilir karlılığa yol açma olasılığı son derece düşüktür. Optimum, süper karlılık ile başa baş arasında ortada bir yerdedir; bu, sinir ağı eğitim algoritmasının doğasında olan şeydir.

Lütfen söyle bana Vita , saf haliyle genetik optimizerimiz, Expert Advisor'ın gelecekte kârlılığı konusunda en azından bazı garantiler veriyor mu - test/optimizasyon sitesinde süper-süper kârlılık olsa bile? Test cihazından bahsetmiyorum, test cihazı sadece iyi.

PS Sonunda, genetik optimizer hakkında MQ'nun ilk sözlerinden birini buldu: https://www.mql5.com/en/forum/50805 . Filin'in gönderisine ve Slava'nın yanıtına bakın. Yanıttan, optimize edicinin yalnızca Expert Advisor'ın yeteneklerinin kaba bir tahmini için yararlı olduğu ve başka bir şey olmadığı görülebilir. Çoğu kâse yazarı, bunu Uzman Danışmanların "tam" testi için ilk ve tek araç olarak kullanır. Bu, yanlış illüzyonların ortaya çıktığı amatörce iş yaklaşımıdır. Aslında, ortalamalık yasasına göre yalnızca kaba bir tahmin için tasarlanan böyle bir araç, yalnızca açıkça olumsuz bir sonuç olması durumunda açıkça kötü danışmanları reddetmek için uygundur - ancak bir danışmanın değeri hakkında olumlu bir sonuç için değil ...

 

Mathemat писал (а):

Gereğinden fazla örnek. Kendimi belli belirsiz ifade ettim. Optimize edicinin acelesiz kullanımının "bir, iki, üç!" kâse yazarlarının aşırı ve mantıksız iyimserliğine yol açar. Örneğin, en son - 'Forex bize karşı mı hareket ediyor? Ya da bir şey anlamıyorum . Veya 'Trend Uzman Danışmanı'. Geribildirim için beklemek.' . Hepsi uygun.

--> :) Anlaşıldı. Ancak, meta alıntıların "iyileştiricinin kötü düşünülmüş kullanımından" sorumlu olamayacağını kabul edeceksiniz. Bir kişinin düşünmesinden ve optimize edicinin optimize edilmesinden yanayım. Örneğin, danışmanımın ticaret yaptığı yasayı biliyorum. Optimize edici bana birçok karlı parametre seti veriyor. Alnına "aptalca", genetik yoluyla "kurnazca", sinir ağı aracılığıyla "akıllıca" nasıl aldığı - umurumda değil çünkü. her durumda, eleştirel olarak (tabii ki, tabiri caizse) sonuçlara bir göz atacağım ve sinekleri pirzolalardan hemen ayıracağım, çünkü Danışmanımın ticaret yaptığı yasayı tam olarak bilen tek kişi benim.

--> Kendiniz karar verin, bir "akıllı" optimize edicinin oluşturulduğunu hayal edin, bu da doğru bir şekilde şunu söyleyebilir: "İşte sizin için en uygun işletim parametreleri seti. Bir diş veriyorum, ayar yok!" veya "Hayır, çocuklar, bu Uzman Danışman için çalışan parametreleri bulamıyorum ve onu sadece eğriye sığdırmıyorum." O zaman olurdu! Uzman Danışmanlarda yerleşik stratejileri onaylayan Optimize Edici! Meta alıntılardan ücretsiz olarak temin edilebilir! Sınıf! Gerçekten istemek.

"Tomurcukta öldürmeye" gelince: bir veri segmentinde aşırı eğriliğin, gerçek hayatta, örneklem dışı segmentte sürdürülebilir karlılığa yol açma olasılığı son derece düşüktür. Optimum, süper karlılık ile başa baş arasında ortada bir yerdedir; bu, sinir ağı eğitim algoritmasının doğasında olan şeydir.

--> "Optimum - ortada bir yerde" - sınıra optimize edilmiş "kaselerin" gelecekte birleşeceğinin garanti edilmesinin bir sonucu olan sezgisel bir anlayış, bu nedenle sınıra optimize etmeye değmez veya "gerçek yakınlarda bir yerde" veya Togo gibi bir şey. Bu duygunun gerçeklikle hiçbir ilgisi yoktur. Desen, en sınıra kadar optimize edilebilir ve sadece orada tüm ihtişamıyla kendini gösterecektir. Düzen eksikliğine nasıl bakarsanız bakın, hiçbir anlamı olmayacak, ancak optimumun ortada bir yerde olduğu hissi geliştirilebilir.

Lütfen söyle bana Vita , saf haliyle genetik optimizerimiz, Expert Advisor'ın gelecekte kârlılığı konusunda en azından bazı garantiler veriyor mu - test/optimizasyon sitesinde süper-süper kârlılık olsa bile? Test cihazından bahsetmiyorum, test cihazı sadece iyi.

--> hayır ve optimize edici sonuçlarından bu tür garantiler talep etmenin uygun olmadığını düşünüyorum. "Akıllı" garanti eden optimize edici hakkında yukarıya bakın.

PS Sonunda, genetik optimizer hakkında MQ'nun ilk sözlerinden birini buldu:

https://www.mql5.com/ru/forum/50805

. Filin'in gönderisine ve Slava'nın yanıtına bakın. Yanıttan, optimize edicinin yalnızca Expert Advisor'ın yeteneklerinin kaba bir tahmini için yararlı olduğu ve başka bir şey olmadığı görülebilir. Çoğu kâse yazarı, bunu Uzman Danışmanların "tam" testi için ilk ve tek araç olarak kullanır. Bu, yanlış illüzyonların ortaya çıktığı amatörce iş yaklaşımıdır. Aslında, ortalamalık yasasına göre yalnızca kaba bir tahmin için tasarlanan böyle bir araç, yalnızca açıkça olumsuz bir sonuç olması durumunda açıkça kötü danışmanları reddetmek için uygundur - ancak bir danışmanın değeri hakkında olumlu bir sonuç için değil ...

-->"iyileştirici yalnızca Uzman Danışmanın yeteneklerinin kaba bir tahmini için yararlıdır" - yine Uzman Danışmanın yeteneklerini doğru bir şekilde değerlendiremeyen ve aslında Uzman Danışmanlarda yerleşik stratejileri onaylayamayan optimize ediciye karşı iddialar . Geriye kalan tek şey, stratejiler üreten, bunları optimize ediciye besleyen, uygunluk konusunda bir sonuç alan ve garantili bir biçme ekibine ileten bir robot yaratmaktır. Bu illüzyon nasıl hoşunuza gider?


 

İllüzyon harika, ama sadece bir illüzyon. Ancak mevcut MQL4 araçlarını kullanarak sahip olduklarımızın (test/optimizer) kullanımını radikal bir şekilde geliştirmek oldukça mümkündür. Aksi takdirde, her üç günde bir, sadece normal test olarak verilen montaj sonuçlarıyla süper kesiciler göreceğiz ...

Ve metakotalar hakkında hiçbir şikayetim yok: optimize edici tam olarak beyan edildiği şeyi yapar, yani. yani EA parametreleri alanında genetik optimizasyon, ama aslında - eğri uydurma.

Testçi için bir dilek var: test() gibi, her şeyin test edildiği geçmiş dosyasının adı da dahil olmak üzere gerekli tüm parametreleri açıkça gösteren normal bir işleve sahip olmak güzel olurdu. Bir dosya adını içeriğine sabit olarak bağlamak, yeterince esnek bir çözüm değildir.

 
leonid553 :

Hepinize iyi günler.

Expert Advisor'ı optimize ettikten sonra, optimize edici tarafından önerilen bir düzineden fazla parametre setini sık sık sıkıcı bir şekilde örneklememiz gerekir.

Numune dışındaki uzmanları optimize etmek için bir fikir vardı. Optimizasyon için EA'yı bir dizi parametreyle "ücretlendirdiğimizi" varsayalım. Gün belirlemek. Örneğin, 1 Ocak'tan itibaren. 2006 - 1 Ocak 2007

Birkaç bin seçenek aldı. Ardından OPTIMIZASYON SONUÇLARI sayfasını ayrı bir dosya olarak kaydedin. Ardından, optimizasyon için izlemeyi ayarladık. tarihin dönemi, yani bir veya iki ay veya neye ihtiyacınız varsa ekleyin.

Onlar. bizim durumumuzda, örneğin 1 Ocak'tan itibaren belirledik. 2007 1 Haziran 2007'ye kadar Ve optimizasyonu tekrar açın. Daha doğrusu, tam bir optimizasyon olmayacak. Optimize edici, UZMAN ÖZELLİKLERİ'ndeki parametreleri almamalı, ancak ilk optimizasyondan sonra kaydettiğimiz dosyadan sırayla parametre setlerini yinelemelidir. Bu ikinci optimizasyondan sonra, yalnızca numuneden kâr sağlayan seçeneklerle kalıyoruz!

Sonuç olarak, ideal olarak, daha fazla çalışma ve çevrimiçi test için "ideal parametreler" elde ederiz!

Bunun MT4 test cihazına faydalı bir katkı olacağını düşünüyorum. Belki ve büyük olasılıkla, birileri bunu zaten uygulamıştır. Bilen varsa lütfen linki paylaşsın!

Mütevazı bilgi sayesinde, fikrin pratik uygulamasına nasıl yaklaşılacağını henüz çözemedim.

Elbette bu algoritmanın pratik bir uygulaması zaten var... Forumda sadece türevlerini buldum... Örneğin, 'Kendi optimizasyon kriterinizi nasıl uygularsınız' ...

Bu soruna çözümümü paylaşmak istiyorum....

Expert Advisor'ı hazırlayalım... Dış parametreleri ekleyelim...

 extern int      Counter       = 1 ;         // Счетчик подсчета количества оптимизаций. Если равен 0, то обычная оптимизация...
extern string Filename      = "";       // Имя файла с оптимизируемыми параметрами

int      FilePtr = 0 ;                       //  Положение файлового указателя

Aşağıdaki bloğu init() işlevine ekleyin....

   if ( IsOptimization () && Counter > 0 )
   {
// Для ускорения процесса будем поддерживать сквозной указатель файловой позиции
// с помощью глобальной переменной FilePtr 
// На первом проходе инициализируем её нулём.
       if ( GlobalVariableCheck ( " FilePtr " ) == false || Counter == 1 ) 
       {
         FilePtr = 0 ; 
         GlobalVariableSet ( " FilePtr " , 0 ) ; 
       } 
       else 
       {
         FilePtr = GlobalVariableGet ( " FilePtr " ) ; 
       }

       int handle = FileOpen ( Filename , FILE_CSV | FILE_READ ,';' ) ;
       FileSeek ( handle , FilePtr , SEEK_SET ) ;
       Parametr1 = StrToInteger ( FileReadString ( handle )) ;
       Parametr2 = StrToInteger ( FileReadString ( handle )) ;
       Parametr3 = StrToInteger ( FileReadString ( handle )) ;

       FilePtr = FileTell ( handle ) ; 
       GlobalVariableSet ( " FilePtr " , FilePtr ) ;
      
       FileClose ( handle ) ; 
   }

Parametre1, Parametre2, Parametre3 - optimize edilmesi gereken EA'nın harici parametreleri....

Aslında hepsi bu...

 
kharko :

Elbette bu algoritmanın pratik bir uygulaması zaten var... Forumda sadece türevlerini buldum... Örneğin, 'Kendi optimizasyon kriterinizi nasıl uygularsınız' ...

Bu soruna çözümümü paylaşmak istiyorum....

'Popüler ticaret sistemlerine dayalı uzmanlar ve bir ticaret robotunu optimize etme simyası (Devamı)' gibi Nikolai Kositsin'in makalelerine bakın.

 

Nasıl çalışır?

A zaman aralığında, parametrelerin olağan optimizasyonunu gerçekleştiriyoruz ( Counter=0)...

Sonuçları Excel'e aktarıyoruz ... Şimdi görevimiz optimize edilmiş parametrelere sahip bir dosya oluşturmak ve onu ...\tester\files dizinine yazmak.

Excel'de parametrelerimizle sütunları seçin, kopyalayıp Word'e veya Not Defteri'ne biçimlendirilmemiş metin olarak aktarın ...

Word veya Notepad'de her satırı şu forma getiriyoruz: değer1; değer2; değer3

...\tester\files dizinine kaydedin

Çok tembel olmayan biri varsa makinede yukarıdaki işlemleri yapmak için bir makro yazın...

Artık B zaman aralığında optimizasyona başlayabilirsiniz ... Şimdi optimizasyon parametresi Sayaç olacak... Maksimum değeri belirtin (listedeki satır sayısı)...

İşte bu, görev çözüldü... Hayırlı olsun...

 

Bu makaleyi okudum... Bana öyle geliyor ki benim versiyonum daha basit ve daha kullanışlı.... ve en önemlisi evrensel...

Yukarıdaki uygulama, şube yazarının istekleriyle tamamen örtüşmektedir...

 
Gerçek optimizasyon örneği... Eke bakın
Dosyalar:
sample.zip  1201 kb
 

Çözüm için teşekkürler kharko . Kullanmaya çalışacağım!

Neden: