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
Büyük olasılıkla özleyecek.
Tabii ki olmalı, hepsi sadece tamsayılar, ayrı bir tür değil.
Küçük tavsiye.
Doğal olarak, stratejiyi test eden için veya başka bir şekilde yeniden yazmaya gerek olmaması arzu edilir - böylece yazılı strateji hem test edende hem de onsuz (gerçek hayatta) çalışır.
Bunu kütüphaneler yardımıyla yapabilirsiniz.
1. Ticaretle ilgili tüm işlevlerin adlarını değiştirin (benim... - çok iyi değil, belki daha iyi _....).
2. 2 kitaplık oluşturun. İlki test için kod içerir (aslında sipariş göndermeden), ikincisi standart fonksiyon çağrılarında parametreleri basitçe çoğaltır. Çalışma/Test anahtarı, kitaplığın değiştirilmesiyle yapılır.
Tabii ki, tüm bunları tek bir kütüphaneye yerleştirebilir ve geçiş için global bir parametre girebilirsiniz, ancak bu muhtemelen gereksizdir.
Ve IMHO'nun böyle bir test cihazının yazılmasını radikal bir şekilde basitleştireceği MT'ye bir işlev daha eklemek harika olurdu - bu, mevcut son çubuğu ayarlama işlevidir.
Onlar. Diyelim ki üzerinde test ettiğimiz tarihte 1000 bar var.
200 barı sonuncu olarak tanımlarız ve ardından Kapat[0] yerine her yerde Kapat[200] değiştirilir. Ve bu özellik tüm yerleşik işlevlerde çalışmalı (etkilemeli).
Test cihazı daha sonra bu değerin ayarlandığı (testteki son çubuk) ve stratejide başlatma fonksiyonunun çağrıldığı çubuk sayısına göre bir döngü gibi görünecektir.
aslında o kadar basit değil :)
biraz daha puan lazım..
"Test kodu" ifadesi bir testçinin kodu mu yoksa bir danışmanın kodu mu? Belirtin.
Ve bu da
Sonuncusu olarak 200 bar tanımlarız ve ardından Kapat[0] yerine her yerde Kapat[200] değiştirilir.
Ve bu özellik tüm yerleşik işlevlerde çalışmalı (etkilemeli).
Herhangi bir EA kodu kolaylıkla bir gösterge koduna dönüştürülebilir:
EA'nın start() bloğunu alıyoruz , değişken bildiriminden sonra for(testerconter=Bars;testerconter>=0;testerconter--) yapısını ekliyoruz
{
parantez ile bitir
}
Bağlantı kullanan tüm yerler [testerconter+link] ile değiştirilir
İşte yerleşik MACD_sample.mq4 EA'dan bir örnek.
Orjinal metin:
değişti
Gördüğünüz gibi, herhangi bir sorun yok. İsterseniz, daha sonra testerconter=0'ı her zaman geçersiz kılabilirsiniz.
kod, bir Uzman Danışman değil, bir Uzman Danışman gövdesinde yürütülür.
İlk kütüphanede, fonksiyon
test cihazında sipariş yürütmeyi taklit eder, yani. test cihazındaki siparişler listesine ekler ve siparişi sunucuya göndermez.
İkinci kitaplıkta, bu işlev yalnızca yerleşik işlevi çağırır.
EA'nın start() bloğunu alıyoruz, değişken bildiriminden sonra for(testerconter=Bars;testerconter>=0;testerconter--) yapısını ekliyoruz
{
parantez ile bitir
}
Bağlantı kullanan tüm yerler [testerconter+link] ile değiştirilir
Valla bende aynı şeyden bahsediyorum
MT'de (varsayılan 0) testerconter değişkeninin değerini ayarlayan bir işlevi çağırmak yerine değiştirmek yerine daha kolay olurdu ve bu değiştirme ([testerconter+referans]) MT'nin kendisinde yapılır.
O zaman bu ikamelerin stratejinin kendisinde yapılması gerekmeyecekti.
Lütfen değiştirin. ön alıntı "Öyleyse 1000 barımız olduğunu varsayalım ..."
ve sonra tekrar sayfa ayrıldı.
hakkında
Sonuç: Görünüşe göre aynı şeyden bahsediyoruz. Şu anki son çubuğun talebini şimdilik unutabilirsiniz -
bunu yapmaya çalışmalısın.
Şimdilik, sadece standart ticaret fonksiyonlarını yeniden tanımlayın, _.. önekini de kullanabilirsiniz, bu daha da sağlam :)
Bu testler için birkaç hafta geçirdim. İlk bakışta, her şey basit görünüyor.
"Çok kanla" test ettiğinizden şüpheleniyorum, yani ticaret işlevlerini yeniden tanımlamadınız. Ve her yeni test
yeni bir test cihazı göstergesi yazmak gerekli. Ancak bunu yalnızca bir kez yapmak yeterlidir - ve sonra sorun olmaz.
Eğer yanılıyorsam - işlevleri sıralayın - cimri olmayın.
Görünüşe göre, Expert Advisor'dan doğrudan başlatma işlevini çağırmak mümkün olmayacak.
Bu nedenle, Expert Advisor'ın kodunu kütüphaneye yazıp _init, _deinit ve _start fonksiyonlarını buraya eklemek daha iyidir.
Sonra EA'nın kendisinde şunu yazıyoruz:
Parametrelerle nasıl başa çıkılacağı biraz belirsiz.
Omega'da nasıl yapılır:
Çok güzel değil, ama işe yarayacak.
Genelde kendi kendine yapılan bir olay işleme sistemi elde edilir :))
Bu kodu işler - Balance , Equity vb. altına her türlü içerme, çalışan diziler ekler,
Lot to ve _Lots (ve diğerleri) değişkenlerini yeniden adlandırır. Genel olarak, kaba işleri o yapacak.
Çıktıyı yalnızca bir dosya ile işlemek ve iletmek gerekli olacaktır. :)
Basit bir boru hattı yöntemi.
"Çok kanla" test ettiğinizden şüpheleniyorum, yani ticaret fonksiyonlarını yeniden tanımlamadınız. Ve her yeni test, yeni bir test cihazı göstergesinin yazılmasını gerektiriyordu. Ancak bunu yalnızca bir kez yapmak yeterlidir - ve sonra sorun olmaz. Eğer yanılıyorsam - işlevleri sıralayın - cimri olmayın.
Kesinlikle doğru. "Büyük kan". Yedek yoktu. Bu tür test cihazlarını MT3.x'te yaptım. MQL4, yeryüzünden cennet gibi MQL2'den farklıdır. Ancak MQL4 özelliklerinden faydalanmadım. Psikolojik uyuşukluk. Önce düşünmem, sonra çalışmam gerekiyordu.
Kadına "Önce düşün, sonra konuş" nasihat edildi. Kadın, "Henüz söylemediğim bir şeyi nasıl düşünebilirim?" diye yanıtladı.