"Uzman Danışmanlar İçin Özel Optimizasyon Kriterleri Oluşturma" makalesi için tartışma - sayfa 2
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Kodun şu türde olduğunu mu söylüyorsunuz
if (bakiye < 3000) ExpertRemove();
çalışmıyor mu?
Çalışıyor. Zaten anladım. optimizasyonu kesiyor ama yine de sonuçları gösteriyor, bu yüzden çalışmadığını düşündüm.
Karlson:
Ama benim söylediğim bu değildi. Böyle bir bozulmanın (en azından daha önce çalıştı) sonunda genetiğin ayrılmasına yol açtığını.
Karlson: Öyle.
Ancak OnTester() sonuçlarını sıfırlarsanız veya yukarıdaki gibi yaparsanız (eksi değer -777 atayın), genetik gerçekten öngörülemeyen şekilde davranabilir, çünkü seçim sadece OnTester()'in geri dönüş değeri ile sonuçlar üzerinde gerçekleştirilir.
MT4'te böyle bir şey vardı:
Geliştiriciler bu tür işlevleri tamamen kaldırdığından, kesinlikle MQL5 araçlarının yardımıyla yapılabilir.
Elbette her şey Excel'e kopyalanabilir, ancak yeni platformdan yararlanmak istiyorum.
Sınırlamaları çözdük - bunu ExpertRemove() ile yapabiliriz.
Raporda gereksiz sonuçları atlamaya ne dersiniz?
Raporda gereksiz sonuçları atlamaya ne dersiniz?
Bunu standart raporda yapamazsınız ve yapmanız da gerekmez (ben buna karşıyım). Kendi raporunuzu oluşturun.
Artık optimizasyon aşamasında(https://www.mql5.com/tr/docs/optimization_frames) istediğiniz formatta bir rapor oluşturabilirsiniz.
Ve yakında (hoo-hoo) genetiği kendi başınıza yönetmeniz mümkün olacak.
Mükemmel.
Sinir Ağları ve Genetik Algoritmalar alanında vadeli işlemleri tahmin etmek için daha önce yaptığım çalışmalardan, makul ölçüde düz bir öz sermaye eğrisinin önemini fark ettim.
ve bunu dikkate almak için bazı rutinler yazdım. Bu gerçekten de bir tahmin sisteminin "sağlamlığının" bir ölçüsüdür.
Pratik çalışma yapan bulgular.
Doğruluk modülü iyi bir başlangıçtır ancak eksiktir. Sıfır kârla çok iyi bir derece elde etmek mümkündür. Dolayısıyla kâr da denkleme dahil edilmelidir. Sadece toplam kârdan bir tür ölçü eklemek için
işe yaramıyor. Başlangıçta bazı kazançlar, ortada bazı düşüşler ve sonunda bazı daha iyi kazançlar elde ederek iyi bir değere sahip çok düz bir çizgi elde edebilirsiniz. Bu, iyi uyum sağlayan düz bir çizgi oluşturacak ve bir miktar kâr gösterecektir. Ancak aradığımız şey gerçekten bu değil.
Biz gerçekten iyi bir uyumla yukarı doğru yükselen bir regresyon çizgisi istiyoruz. Dolayısıyla, mümkün olduğunca az sapma gösteren bir regresyon doğrusu kullanma fikrini hayata geçirmek için yukarı doğru eğim katsayısının denkleme dahil edilmesi gerekmektedir. İşte bu
görmek istiyoruz. İyi uyum sağlayan yukarı doğru eğimli bir regresyon çizgisi. Bunu dahil etmek için bir girişimde bulunacağım. Öneri ve yardımlarınızı bekliyoruz :-)
CSTS kodunu deniyorum.
Bu sonucu biraz garip buluyorum:
Sonuç Kar #İşlemler Frofit faktörü DrawDown Beklenen Ödeme Kurtarma Faktörü
0.58 1237 84 1.26 12.70 14.74 0.93
0.57 1598 90 1.38 8.69 17.36 1.76
İşte başka bir örnek
0.61 3175 123 1.33 21.04 25.82 1.48
0.60 4460 145 1.49 11.32 30.77 2.56
Tüm bakış açılarına göre ikinci hattın değerleri daha iyi!!! Ancak puan daha düşük
Çıkarabildiğim tek şey, birçok işlemde bir ceza olduğu. Ben olsam tam tersini yapardım.
Ve son bir nokta olarak. Bu konuyla ilgilenen tek bir kişi var gibi görünüyor. Ben.
Dahası var. Kodumda bir hata yaptım ve bekleyen siparişlerin temizlenmemesine neden oldu. Ayrıca 12 ay boyunca test süresi için yalnızca 5 sipariş verilmesiyle sonuçlandı. İyi bir kârla.
Bu, optimizasyon sonucunu gerçekten 100'ün üzerine çıkardı. Açıkça görülüyor ki "ortalama kazanç" değeri son derece yüksekti ve bu aşırı skorla sonuçlandı. Teknik olarak doğru ancak anlamsız
backtesting bağlamında. Bunun gibi uzun trendlerin temsil edici olması ne kadar olasıdır? Bu yüzden işlem sayısının bir şekilde denkleme dahil edilmesi gerektiğini düşündüm.
Biraz deneme yanılma ile kodu değiştirerek faydalı bulduğum sonuçlar üreten bir yönteme ulaştım.
değişiklikler:
// CSTS:
double tssf=real/teor;
if(tssf <= 0) return 0;
work = TesterStatistics( STAT_TRADES );
if( work <= 0) work = 1;
work = MathSqrt(work/4);
tssf = tssf * work;
if( tssf < 1 ) tssf = 0;
if(TesterStatistics(STAT_PROFIT) <= 0) tssf = 0;
return(tssf);
Orijinal yöntem muhtemelen çalışan bir sistemi değerlendirmek için iyidir, ancak temelde bir backtest çalışmasından parametreleri temel almak için işe yaramaz
İşte yine buradayım, bu evrendeki yalnız kurt :-)
Hesaplanan düz çizginin eğimini denkleme dahil etmeye çalışan Düzlük Özel Kriterini deniyorum. Bu haliyle size çok düşük bir kâr üzerinden çok yüksek bir derecelendirme verebilir. Sadece son kârı eklemek
gerçek eğimi denkleme ekleme girişiminde kodu aşağıda görüldüğü gibi değiştirdim.
Mükemmel bir çözüm değil ama görmek istediğim şeye daha yakın. Sonucu denge veya kar ile birlikte kullanmak bu kodla benim için iyi çalışıyor
İşte yine buradayım, bu evrendeki yalnız kurt :-)
Hesaplanan düz çizginin eğimini denkleme dahil etmeye çalışan Düzlük Özel Kriterini deniyorum. Bu haliyle size çok düşük bir kâr üzerinden çok yüksek bir derecelendirme verebilir. Sadece son kârı eklemek
gerçek eğimi denkleme ekleme girişiminde kodu aşağıda görüldüğü gibi değiştirdim.
Mükemmel bir çözüm değil ama görmek istediğim şeye daha yakın. Sonucu bakiye veya kâr ile birlikte kullanmak bu kodla benim için iyi çalışıyor
Örneğin, genetik algoritmalar için, iyi bir fitness algoritmasına sahip olmalısınız ve kesinlikle bu fitness ile uyumlu özel bir kriter oluşturmalısınız.
Denge eğrisinin eğimini hesaplamanın daha iyi bir yol olduğundan emin değilim, çünkü başka yollarımız da var, yine de bu fikirleri keşfetmek ve tartışmak için bana güvenin.