Genetik algoritma ve olası uygulaması - sayfa 4

 
Edgar Akhmadeev :

Bunu uzun zaman önce bir Expert Advisor'da çerçeve kullandığımda yazmıştım. Özü tam olarak hatırlamıyorum, görünüşe göre tüm kareler bana gelmeye başlamadı (ve en iyi sonuçlar). Eski gönderileri arayacağım ve netleştirmeye çalışacağım.

Ama tam olarak hatırlıyorum, Uzman Danışmanımda açıkça tekrarlanabilirdi - arama sayısı belirli bir sayıyı aştığında ve bilimsel bir şekilde görüntülendiğinde genetiğim bozuldu. Değişkenin yalnızca çok sayıda adıma sahip olması değil, aynı zamanda değişken sayısının da büyük olması önemlidir.

Temiz.

"Büyük" genetikle ilgili çerçevelerle ilgili bir sorun var.

Düzelteceğiz.

 
Slava :

"Hiç çalışmıyor" ne anlama geliyor?

Hatayı nasıl yeniden oluşturabilirsiniz?

https://www.mql5.com/ru/forum/321656/page17#comment_13569022

Artık çerçeveleri kontrol etmeyeceğim, reddettim.

Ve her zamanki genetikle, son yapıda kontrol ettim. İşte "bit taşması" olmayan sonuç


Kesintiden sonra:

 2020.03 . 16 20 : 50 : 57.436 Tester  genetic optimization finished on pass 646 (of 160164854439975000 )
2020.03 . 16 20 : 50 : 57.436 Statistics      optimization done in 8 minutes 36 seconds
2020.03 . 16 20 : 50 : 57.436 Statistics      shortest pass 0 : 00 : 00.002 , longest pass 0 : 00 : 23.060 , average pass 0 : 00 : 06.276

"Taşma" ile:


Uzman tarafından kesintiye uğratılan birkaç geçişten geçtikten sonra (giriş değişkenlerinin doğruluğunu kontrol ederek), genetik sonsuza kadar durdu. Kesintiden sonra:

 2020.03 . 16 20 : 59 : 08.235 Tester  genetic optimization finished on pass 18
2020.03 . 16 20 : 59 : 08.235 Statistics      optimization done in 6 minutes 10 seconds
2020.03 . 16 20 : 59 : 08.235 Statistics      shortest pass 0 : 00 : 00.003 , longest pass 0 : 00 : 05.978 , average pass 0 : 00 : 01.339

Gerçek sonuç yok.

Advisors/MAPSARSizeOptimized.ex5'i örnek olarak denedim, işe yarıyor. "Bit derinliği taşması" ve çerçevelerle ilgili sorunun yalnızca Uzman Danışmanım tarafından yeniden üretildiği açık, ancak sorunun nasıl bulunacağı... Orada her şey çok karmaşık, OnTradeTransaction vb. Çerçeveleri de kaldırdım. Kodu gösteremiyorum ve devasa, bir megabaytın altında. Ve tekrarlanabilir bir örneğe inmek umutsuzca uzun. Vaktim olursa, OnTradeTransaction'ı kaldırmaya çalışacağım, belki başka şeyler de olabilir.

Gerçek şu ki, geçiş sayısını aşmazsanız her şey yolunda gider.

Ve çerçeveler 2286 dahil olmak üzere (aşmadan) iyi çalıştı.

Тестер стратегий MetaTrader 5: ошибки, баги, предложения по улучшению работы
Тестер стратегий MetaTrader 5: ошибки, баги, предложения по улучшению работы
  • 2019.10.16
  • www.mql5.com
В настоящий момент тестер стратегий MetaTrader 5 подвергается глубокой переработки командой MQ...
 
Igor Makanu :

...

sadece bir problem varken - bir süre sonra GA küçük bir optimizasyon parametresi grubu etrafında birleşmeye başlayabilir - bence bu normaldir, tüm GA'lar bu şekilde çalışır ve bu onların kullanım problemidir

...

Bazı ekstremumlara yakınsama, herhangi bir optimizasyon algoritması için tamamen normal bir olgudur, bu bölümün global veya yerel olmadığını/olmadığını varsaymak için herhangi bir ön koşul yoktur.

AO'nun, bir ekstremum olsun veya olmasın, belirli bir alanda çiğneme başlangıcında mutasyonların yüzdesini (veya arama mahallelerinin genişlemesini artırmaya izin veren mantıkta başka bir eşdeğeri) artırmaya izin veren bir mekanizmaya sahip olması başka bir konudur. Daha iyisinin bulunup bulunmayacağı önceden bilinmez, ama kesinlikle başka yerlerde aramanın zamanı geldi.

AO, herhangi bir sorun yok, bir başkasında sorun var - optimizasyon kriterinin çok boyutlu uzaydaki olası düzlemlerin mümkün olduğunca az kesişeceği şekilde tanımlanması, bu araştırmacının sorumluluğundadır, örneğin, maksimum bakiye kriterini belirlediler, bu kriter mutlak olarak birkaç veya daha fazla puana karşılık gelebilir, ancak sadece bazıları gerçekten değerli, yani 98756423 bakiyesine 1523 işlem ile% 11'lik bir düşüş ile ulaşıldı ve aynı 12 işlemle bakiyeye ulaşıldı ancak %95'lik bir düşüşle hangi seçenek tercih edilir? - böylece optimizasyon kriterini, karşılık gelen parametre vektörlerinin düzlemlerinin kesişimini hariç tutacak şekilde sunmak, yalnızca küresel uç noktaya yakınsamayı kolaylaştırmak ve böylece hızlandırmakla kalmaz, aynı zamanda ticaretin açık değişkenlerini elde etmek için de mümkündür. sistem parametreleri.

 
Edgar Akhmadeev :

Uzman tarafından kesintiye uğratılan birkaç geçişten geçtikten sonra (giriş değişkenlerinin doğruluğunu kontrol ederek), genetik sonsuza kadar durdu. Kesintiden sonra:

Gerçek sonuç yok.

Bunun hakkında forumda bir yere yazıp yazmadığımı hatırlamıyorum ama bu gerçekten bir sorun ve MT'de neden bu kadar uygulandığı açık değil. Teoride, EA "geçersiz parametreler" hata kodunu döndürdüyse, popülasyonun tamamlanması için test cihazının karşılığında başka bir örnek oluşturması gerekir.

 
Stanislav Korotky :

Bunun hakkında forumda bir yere yazıp yazmadığımı hatırlamıyorum ama bu gerçekten bir sorun ve MT'de neden bu kadar uygulandığı açık değil. Teoride, EA "geçersiz parametreler" hata kodunu döndürdüyse, popülasyonun tamamlanması için test cihazının karşılığında başka bir örnek oluşturması gerekir.

Tüm yanlış parametre kombinasyonları için INIT_PARAMETERS_INCORRECT döndürülürse, çok fazla vardır ve oluşturma bir hata ile sona erer. Bu yüzden INIT_PARAMETERS_INCORRECT'i yalnızca sınırların dışındaysa yanlış bir parametrede döndürürüm. Ve eğer kombinasyon yanlışsa (bir parametre diğerini geçmemelidir), geçişi durdurur, INIT_SUCCEEDED ve Custom = -N döndürürüm. Muhtemelen genetiği bozar, ancak herhangi bir seçenek göremiyorum. Daha doğrusu, yanlış kombinasyonlardan kurtulma seçeneği vardır (belirli bir durumda - bir parametreyi diğerine delta yapmak: v1=X, v2=Y+v1), ancak bu çok güçlü bir mutajendir. İki parametre birbirine sıkı sıkıya bağlı olacak ve biri değiştiğinde her şey yoluna girecek. Bu seçeneği bir hata yerine sahte bir sonuç lehine bıraktım.

 
Edgar Akhmadeev :

Tüm yanlış parametre kombinasyonları için INIT_PARAMETERS_INCORRECT döndürülürse, çok fazla vardır ve oluşturma bir hata ile sona erer. Bu yüzden INIT_PARAMETERS_INCORRECT'i yalnızca sınırların dışındaysa yanlış bir parametrede döndürürüm. Ve eğer kombinasyon yanlışsa (bir parametre diğerini geçmemelidir), geçişi durdurur, INIT_SUCCEEDED ve Custom = -N döndürürüm. Muhtemelen genetiği bozar, ancak herhangi bir seçenek göremiyorum. Daha doğrusu, yanlış kombinasyonlardan kurtulma seçeneği vardır (belirli bir durumda - bir parametreyi diğerine delta yapmak: v1=X, v2=Y+v1), ancak bu çok güçlü bir mutajendir. İki parametre birbirine sıkıca bağlanacak ve biri değiştiğinde her şey yoluna girecek. Bir hata yerine sahte bir sonuç lehine bu seçenekten uzaklaştım.

döndürülecek iyi bir değişken - DBL_MAX , bir hata yerine geçersiz bir değişkende.

genel olarak, MT test cihazının çoklu para birimi tik-tik güvenilirliğinin tüm cazibesini korurken harici bir ha uygulamayı başardım, ancak bulut dahil tüm işlemci çekirdeklerini ve / veya ağ aracılarını kullanmak mümkün geçişlerin erken tamamlanması veya yetersiz personel nedeniyle acentelerin boşta kaldığı durumlardan kaçınırken, ha.

bilgi var, sadece TSSSSS .... düzenli optimize edicide çeşitli AO türleri ve hatta parametrelerle uygulanması planlanıyor, ancak bu yanlış.

 
Andrey Dik :

döndürülecek iyi bir değişken - DBL_MAX , bir hata yerine geçersiz bir değişkende.

ve rastgele bir değer döndürürseniz - AO için daha mı kötü olur?

 
Igor Makanu :

ve rastgele bir değer döndürürseniz - AO için daha mı kötü olur?

çok daha kötü.

amacımız "mosk" AO'yu toz haline getirmekse, o zaman en iyi yol rastgele bir sayı döndürmektir.

 
Andrey Dik :

döndürülecek iyi bir değişken - DBL_MAX , bir hata yerine geçersiz bir değişkende.

Bu çok fazla, grafik ölçeklendi, böylece faydalı sonuçları göremiyorsunuz. En kötü Custom'dan biraz daha büyük bir değer döndürüyorum. Ana şey, iyileştirme için doğru yönü belirlemektir.

Igor Makanu :

ve rastgele bir değer döndürürseniz - AO için daha mı kötü olur?

Peki ya anlamı? Ana şey doğru yöndür, bu yüzden GA'ya burada sadece zayıf olanı değil, en kötü sonucu gösterdiğini göstermeniz gerekir.

 
Slava :

"Hiç çalışmıyor" ne anlama geliyor?

Hatayı nasıl yeniden oluşturabilirsiniz?

OnTradeTransaction kaldırıldı , yardımcı olmadı. Daha fazla düşüneceğim.