Geriye dönük test/Optimizasyon - sayfa 82

 

Geriye dönük test etme, teklif verme/sorma fiyatı hakkında iyi bir gönderi:

https://www.mql5.com/en/forum/181204

 

Strateji Test Edici: LotSize Limit MT4

Merhaba,

MT$ strateji test cihazında maksimum Parti Boyutu ayarlarını nasıl değiştirebilirim? Atm the Strategy Tester >50 Lot Potları açmayacak.

ve Strateji test cihazında bir Denge Limiti var mı?

Biraz yardım takdir ediyorum. Teşekkürler!!

 
lsteixeira:
Kullandığım bazı iyi veriler buradan geldi:

http://www.histdata.com

Şerefe!!

Tavsiyen için teşekkürler... %99 modelleme kalitesi atm ile Ducas'tan tickdata kullanıyorum. Bunun gerçeğe ne kadar yakın olduğunu tam olarak söyleyemem ama umarım yeterince yakındır ^^

 

[langtitle=fr]Arkadan testte sorun[/langtitle]

[lang=fr]Bonjour tout le monde,

EA'nın geri kalanını test etme.

Comme vous pourrez voir sur legraphique, il ya une chute acımasız ve je ne sais pas do ou ca vient j ai un stoploss regler sur 10 pip

Dosyalar:
graphique.jpg  117 kb
rapport.jpg  97 kb
 

Normal Test Sonu Durdurma

targetik:
[lang=fr]Bonjour tout le monde,

EA'nın geri kalanını test etme.

Comme vous pourrez voir sur legraphique, il ya une chute acımasız ve je ne sais pas do ou ca vient j ai un stoploss regler sur 10 pip

Merhaba Targetik,

Bu normal bir " Strateji Test Cihazının Sonu" Durdurmadır...

Test cihazı, test sona erdiğinde tüm açık işlemleri kapatır... ve tüm aktif açık işlemleriniz genellikle bir kayıpla kapanır.

Sadece son ticareti görmezden geliyorum...ya da düzgün bir şekilde kapanabilmesi için o ticaretin geçtiği tarihleri yeniden ayarladım... testin sonu.

Bu yardımcı olur umarım,

Robert

 

[lang=fr]Merci beaucoup [/lang]

 

Harika İplik!

--

 

Optimizasyonlardan en yüksek öz sermaye alınsın mı?

MT4'te verilen herhangi bir optimizasyon sonucu kümesinin her bir çalışmasıyla ulaşılan en yüksek öz sermaye hakkında bilgi almak mümkün müdür?

Anlayabildiğim kadarıyla, MT4, geri test sırasında bir stratejinin ulaştığı en yüksek öz sermaye için sonuç penceresinde bilgi sağlamaz - ne optimizasyon sonuçlarında ne de tek bir manuel çalıştırmadan gelen raporda. (En yakın olduğu düşüş $'dır, bence önceki zirvenin ne olduğunu belirlemek için ilgili çukurun değerini bilmenizi gerektirir - ve bunu yalnızca son bakiyeden tahmin edebilirsiniz). Muhtemelen strateji test eden kişi, hesaplamaları sırasında bir noktada bu en yüksek öz sermaye rakamını bilecektir. Optimizasyon sonuçları için bu verileri almanın herhangi bir yolu var mı?

Kısmi bir çalışma düşünebilirim. Tek bir manuel geri test sırasında ulaşılan en yüksek eşitlik, EA'ya eşitlik açısından ulaşılan "en yüksek damganın" kaydı olarak hareket eden bir değişken eklenerek ve ardından bunu dergiye yazdırarak görülebilir. (ya da ne zaman) üzerinden geçin. Sorun, aynı strateji bir optimizasyonun parçası olarak çalıştırıldığında günlük bilgilerinin mevcut olmamasıdır... Bu, az sayıda manuel çalıştırma için iyi olur, ancak daha fazla sayıda optimizasyon için uygun değildir.

Aklıma gelen diğer tek iş, EA gibi davranan bir gösterge kullanmak ve onu normal terminal tablosuna yüklemek. Harici bir değişken olarak bir "başlangıç zamanı" girerek, kâr ve zararın bir çetelesini tutabilir (pozisyonlar mum çubuklarının içinde açılmadığı sürece). Ancak bununla ilgili sorun aynı. Optimizasyon olasılıklarının her farklı çalışması için farklı harici değişkenleri manuel olarak yazmanız gerekir - ki bu çok olabilir!

Alternatif olarak, bir EA'daki öz sermayeye yapay bir üst sınır koyabilir ve ardından önceden belirlenmiş bir öz sermayeye ulaşıldığında tüm pozisyonları kapatabilir ve EA'daki ticareti sonlandırabilirsiniz. Ardından, optimizasyonların sonuçlarında bu değerde sona eren geçişlerin sayısının bir listesini görebileceksiniz. Bununla birlikte, farklı öz sermaye üst sınırlarına sahip çok sayıda geçiş gerçekleştirmediğiniz sürece, herhangi bir geçişin daha yüksek bir öz sermayeye ulaşıp ulaşmayacağını bilemezsiniz. Bu, çok beceriksiz ve verimsiz bir iş gibi görünüyor.

(Bakiye ile işlem numarasının basit bir grafiğini görebilmek bile bir başlangıç olabilir - ancak bu da optimizasyonlardan mümkün görünmüyor).

Optimizasyonlar için daha verimli çalışacak daha iyi bir yöntem bilen var mı?

 

Sanırım kendi sorumun cevabını buldum, bu yüzden hala cevabı bilmek isteyen olursa diye buraya yazacağım.

Çözümlerden biri, global değişkenleri kullanmaktır ( Global değişkenler - MQL4 Documentation ). Görünen o ki, global değişkenler bir optimizasyonun her çalışması sırasında ayarlanır veya güncellenir. Burada sadece bir EA içindeki "global değişkenler"den değil, istemci terminali çapında global değişkenlerden bahsediyorum. Değişken global olduğundan, onu Strateji Test Cihazı dışında bir şey kullanarak sorgulayabilirsiniz. EA'nın içine, kendisini şimdiye kadarki en yüksek eşitliğe güncelleyen normal (çift) bir değişken ekleyebilir, ardından aynı EA'nın deinit() bölümünde bu değere global bir değişken ayarlayabilirsiniz. Bu global değişken daha sonra, optimizasyonun her geçişi tamamlandıktan sonra terminaldeki normal bir grafik penceresindeki bir komut dosyasında GlobalVariableGet() kullanılarak sorgulanabilir ve elde edilen değer, Yazdır kullanılarak bir Yorum olarak görüntülenebilir veya terminal günlüğüne kaydedilebilir.

Bu yaklaşımla ilgili tek sorun, optimizasyondaki her geçişten sonra (bir sonraki çalıştırma tamamlanmadan önce) komut dosyasını manuel olarak çalıştırmanız gerekmesidir - bu nedenle yine de oturup optimizasyonları izlemeniz gerekir. Global değişkeni sorgulamak için bir EA'nın kullanılabileceğini düşünmüyorum, çünkü EA'nın optimizasyonun birden çok çalışmasını yakalamak için birden çok kez çalışması gerekir. Yayılma ayarlarınızı korumak için canlı verilerle bağlantınız kesileceğinden, bir optimizasyon sırasında herhangi bir onay işareti almamanız muhtemeldir. EA'ya "sahte keneler" göndermenin çeşitli yöntemlerinin normal terminal grafiğine yapılan bir optimizasyondan işe yaramayacağını tahmin ediyorum ...

Sabit bir yayılma boyutuna sahip bir hesap kullanıyorsanız bu daha az sorun teşkil eder; bu durumda, optimizasyonları, gelen canlı verilere bağlıyken, yayılma verilerini çok fazla değiştirme riski olmadan çalıştırabilirsiniz. Yine de hafta sonu boyunca optimize etmek isteseydiniz yine de sorun olurdu. Ayrıca, bir sonraki optimizasyon geçişiniz yeni bir onay işareti alınmadan önce tamamlanırsa, son geçişteki veriler kaydedilmez.

Optimizasyonun her geçişinde bir SEPARATE global değişkeni ayarlayarak bu sorunu çözebilir ve ardından F3'e basarak hepsini okuyabilirsiniz. Bu, geçerli global değişken sayısını ("n") almak ve ardından mevcut global değişkeni "n+1" olarak adlandırmak ve ilgili eşitlik değerine ayarlamak için deinit() içindeki bir döngü işlemi ile yapılabilir. Bu şekilde sonunda F3'e basarak hepsini görüntüleyebilirsiniz ve değişkenin adı, geçişin geçiş sayısı ile aynı olacaktır (başlangıçta hiçbir global değişken olmadığı sürece). optimizasyon - her optimizasyondan önce GlobalVariablesDeleteAll() ile bir komut dosyası çalıştırılarak kolayca elde edilebilir). Maksimum global değişken sayısının ne olduğundan emin değilim - ancak makul sayıda optimizasyonunuz olduğu sürece sorun olmaz sanırım. Ne yazık ki, F3'e basmanın verilerinin dışa aktarılabilir olduğunu düşünmüyorum, bu nedenle bir ekran kapağı veya eski bir kalem ve kağıt kullanarak kopyalamanız gerekir (veya muazzam bir sayı kullanıyorsanız her optimizasyon için ayrı bir MT4 kurulumuna sahip olmanız gerekir). geçişler). Alternatif olarak, optimizasyon tamamlandıktan sonra global değişkenlerin tüm adlarını ve değerlerini terminal günlüğüne yazdıracak bir komut dosyası yazabilir ve ardından BU günlüğü dışa aktarabilirsiniz.

Bu yöntem, elbette, Strateji Test Cihazı optimizasyon sonuçları penceresinin sınırlı bilgisine güvenmek yerine, optimizasyonlardan hemen hemen her türlü veriyi almak için kullanılabilir! Umarım bu birine yardımcı olur :-)

 

ps - Hem Yazdır hem de Uyarı'nın yalnızca 64 karaktere izin verdiğini fark ettim, bu nedenle bir avuç optimizasyondan fazlasını kullanıyorsanız, genel değişkenleri yazdırmak için bir komut dosyası yazamazsınız. (Her bir global değişkeni terminal günlüğünün ayrı bir satırında yazdırmadıysanız ve ardından hepsini tek tek excel veya benzerine kopyalamadıysanız. Birden fazla giriş seçmenin bir yolu yok gibi görünüyor. herhangi bir zamanda dergi).

Bunu aşmak için, global değişkenlerin her birinin değerlerini büyük bir dizgeye sırayla yazmak için bir döngü işlemi kullanabilir (her global değişken değerini yeni bir satıra yerleştirmek için \n kullanarak) ve ardından bunu e-posta ile gönderebilirsiniz. SendMail() kullanarak kendinize bir dize oluşturun. Posta Gönder'de karakter sayısında bir sınırlama yok gibi görünüyor. Bu e-posta verilerini bilgisayarınızdaki bir metin belgesine kolayca kopyalayabilir ve bu verileri istediğiniz formatta içe aktarmak için Excel'deki Veri\Dış Verileri Al\Verileri Al düğmesini kullanabilirsiniz. Optimizasyon sonuçlarını bir metin belgesine de kopyalar ve daha sonra aynı yöntemi kullanarak (ilk ekranda "Sınırlandırılmış" öğesini seçerek, ardından "Diğer" kutusunu işaretleyerek ve bu giriş kutusuna "=" yazarak) excel'e aktarırsanız. Metni sayılardan ayırmak için), daha sonra e-postanızdaki verileri doğrudan optimizasyondan dışa aktarılan verilere kadar hizalayabilirsiniz. Bu şekilde, herhangi bir geçiş için optimizasyondan dışa aktarılan ilgili verilerle aynı satırda global değişkenleri kullanarak optimizasyondan çıkardığınız her türlü bilgiye sahip olacaksınız. Basitler.

Neden: