Optimizasyon Algoritmaları Şampiyonası. - sayfa 5

 
Andrey Dik :

Basit bir örnek. Optimizasyon algoritması grafikte bir yerde asılı kalıyor. Standart test cihazında Expert Advisor'ın optimizasyonu, kapsamlı arama ile başlatıldı. Böylece normal algoritma yerine kendi optimizasyon algoritmanızı kullanabilirsiniz.

Başka bir örnek. EA, grafik ve işlemler üzerinde çalışır. Bir süre sonra alım satım sonuçlarını parametreleriyle birlikte algoritmaya atar (belki danışmanın içinde veya dışında. Kutsallık yoktur) ve yeni parametreleri geri alır ve sonra alım satıma devam eder (sizin durumunuzda, bir deneme yapmanız gerekir) tarih, ama benim durumumda "canlı" seçeneğini seçebilirsiniz).

Vb. Yani bu örneklerde algoritma görevden tamamen ayrılmıştır.

Örnekler bilinçli olarak ticaretle ilgili olarak verilmiştir. Fare tüccarları.

Sıra dışı bir şey.

Expert Advisor'ın optimizasyonu test cihazında zaten başlatıldı, ancak bunun kendi optimizasyon algoritmasıyla ne ilgisi var?

İkinci durum biraz daha açıktır. Evet, tek bağımsız arama sağlıyorsanız, arada bir arama yapabilirsiniz. Ve tek seferde ayrı işlemlerle mümkündür. Açıktır, ancak bu algoritmanın bir karmaşıklığı ve şampiyonanın hedeflerinden bir sapmadır. Şampiyonanın amacı, uygulaması değil optimizasyon algoritmasıdır. Burada ve böylece, anlamayan kaç kişi geçti ve sonra böyle bir komplikasyon var.

 
Andrey Dik :

genel olarak, bunun gibi bir şey ve elbette bir zaman sayacı olacak. kroki:

Bu kodda, bir kerelik bir arama değil, olduğu gibi, algoritmanın ana kısmı, ayrıca, algoritmanın bir kısmının katılımcıya bir miktar dayatılmasıyla çıkarılır. Başlangıç koşullarında katılımcının tüm algoritmayı gizleme hakkı vardır.
 
Dmitry Fedoseev :

1. Genel olarak aşkın bir şey. Expert Advisor'ın optimizasyonu test cihazında zaten başlatıldı, ancak bunun kendi optimizasyon algoritmasıyla ne ilgisi var?

2. İkinci durum biraz daha açıktır. Evet, tek bağımsız arama sağlıyorsanız, arada bir arama yapabilirsiniz. Ve tek seferde ayrı işlemlerle mümkündür. Açıktır, ancak bu algoritmanın bir karmaşıklığı ve şampiyonanın hedeflerinden bir sapmadır. Şampiyonanın amacı, uygulaması değil optimizasyon algoritmasıdır. Burada ve böylece, anlamayan kaç kişi geçti ve sonra böyle bir komplikasyon var.

1. Çirkin bir şey yok, yaşam durumları. Normal test cihazı birbiri ardına çalışır (bir parametre sıralanır - sayaç) ve tüm parametrelerin optimizasyonunu ve sınırsız sayıda kontrol ederiz.

2. FF ile çalışmak için 2 seçenek kullanmaya karar verdik. Yani her şey yolunda, sorun yok, kim optimizasyon kullanmak isterse onu kullanır.

Katılımcılar, birinci veya ikinci olmak üzere hangi test komut dosyasıyla çalışacaklarını seçmekte özgürdür.

 
Dmitry Fedoseev :
Bu kodda, bir kerelik bir arama değil, olduğu gibi, algoritmanın ana kısmı, ayrıca, algoritmanın bir kısmının katılımcıya bir miktar dayatılmasıyla çıkarılır. Başlangıç koşullarında katılımcının tüm algoritmayı gizleme hakkı vardır.

dayatma nerede? Algoritmaya kaç kez ve neyi sayacağı sorulur, katılımcının algoritması böyle şeylere kendisi karar verir. Sonuçta, algoritmalar mimaride aynı GA'dan büyük ölçüde farklılık gösterebilir ve örnek, algoritmayı herhangi bir çalışma prensibi üzerinde kullanmanıza izin verir.

Orada servis fonksiyonlarını gösterdim - katılımcının ihtiyacı yoksa boş olabilirler.

 
Andrey Dik :

Bağlama nerede? Algoritmaya kaç kez ve neyi sayacağı sorulur, katılımcının algoritması böyle şeylere kendisi karar verir. Sonuçta, algoritmalar mimaride aynı GA'dan büyük ölçüde farklılık gösterebilir ve örnek, algoritmayı herhangi bir çalışma prensibi üzerinde kullanmanıza izin verir.

Orada servis fonksiyonlarını gösterdim - katılımcının ihtiyacı yoksa boş olabilirler.

Katılımcılara bir işleve veya bir yöntemle bir nesneye işaretçi verin. Bu üçüncü binyıl.
 
Ayrıca, çağ sayısı ve birey sayısının dağıtılabilmesi için izin verilen sayıda ff çağrısı üye işlevine iletin.
 
Dmitry Fedoseev :
Ayrıca, izin verilen sayıda ff çağrısı üye işlevine iletin, böylece dönem sayısı ve birey sayısı dağıtılabilir.

Örneğin, algoritmaya maksimum 100 FF çalışmasının mümkün olduğu söylendi.. Aha! - diye düşündü (algoritma), herkesi alt edeceğim ve FF'yi sadece 50 kez 50 nota arayacağım. :)

Hayır, ne kadar ihtiyacı olduğunu saymasına izin ver. Ve ne zaman durduracağımıza biz karar vereceğiz. Sonuçta FF lansmanlarının sayısı iş kalitesinin bir göstergesi olarak değerlendirilecek.

 
Andrey Dik :

Örneğin, algoritmaya maksimum 100 FF çalışmasının mümkün olduğu söylendi.. Aha! - diye düşündü (algoritma), herkesi alt edeceğim ve FF'yi sadece 50 kez 50 nota arayacağım. :)

Hayır, ne kadar ihtiyacı olduğunu saymasına izin ver. Ve ne zaman durduracağımıza biz karar vereceğiz. Sonuçta FF lansmanlarının sayısı iş kalitesinin bir göstergesi olarak değerlendirilecek.

Bu kadar kurnaz olmanın ve daha az aramanın anlamı ne? Daha azı mümkün, daha fazlası imkansız. Sorun nedir?

ff işlevi aramaları sayar. İzin verilenden fazlaysa - diskalifiye.

 

Bunun gibi bir şey bir üye kitaplığı şablonudur:

 #property library
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
#property strict

class CFF{
   public :
   virtual double fun( double & x[]){ return ( 0 );}
   virtual string type(){ return ( "" );}
   virtual double value(){ return ( 0 );}
   virtual string note(){ return ( "" );}
};

здесь участник пишет свои классы, если надо 

void function(CFF * aff, int n, double & params[], double & value) export {

    Здесь участник пишет свой код и вызывает функцию так - aff.value(x); // x - это массив double

//по окончанию поиска вернуть params (параметры соответствующие лучшему результату), value (лучший результат)

}

здесь участник создает свои вспомогательные функции
 
Dmitry Fedoseev :

Bu kadar kurnaz olmanın ve daha az aramanın ne anlamı var? Daha azı mümkün, daha fazlası imkansız. Sorun nedir?

ff işlevi aramaları sayar. İzin verilenden fazlaysa - diskalifiye.

Daha az FF başlangıcı daha iyidir, mesele bu. Bu zor olabilir.

Algoritmayı sınırlamaya gerek yok, bırakın düşünsün. Ya durması gerektiğine karar verir ya da zorla durdurulur. Tavanı kaç kişi başlatır - algoritmanın bilmemesi gerekir Kimse tavanı bilmeyecek. Diskalifiye olmayacaktır. Algoritmanın yapabileceği gibi, problem çözülecektir.

Diskalifiyenin tek nedeni, sonuçları kaydetme ve bunları test komut dosyasının sonraki çalıştırmalarında kullanma girişimidir.