"MetaTrader 5'de Sınamanın Temelleri" makalesi için tartışma

 

Yeni makale MetaTrader 5'de Sınamanın Temelleri yayınlandı:

MetaTrader 5'deki üç test modu arasındaki farklar nelerdir ve özellikle nelere dikkat edilmelidir? Birden fazla enstrüman üzerinde aynı anda işlem gören bir EA'nın testi nasıl yapılır? Test sırasında gösterge değerleri ne zaman ve nasıl hesaplanır ve olaylar nasıl ele alınır? Bir "yalnızca açılış fiyatı" modunda test yaparken farklı enstrümanlardan çubukları nasıl senkronize edebilirim? Bu makale, bunlara ve diğer birçok soruya cevap vermeyi amaçlamaktadır.

Herhangi bir açık pozisyon veya bekleyen emir yoksa, gizli tiklerin üzerinde bu kontrolleri gerçekleştirmemiz gerekmez ve ciddi bir hız artışı sağlanabilir. "Sadece Açılış Fiyatları" modu, işlemleri sadece açılış fiyatından gerçekleştiren ve StopLoss, TakeProfit ve bekleyen emir kullanmayan stratejiler için oldukça uygundur. Bu tip stratejiler için gereken test geçerliliği korunur.

Standart paketteki Uzman Danışmanlardan, her modda test edilebilecek olan Moving Average Uzman Danışmanını örnek olarak alalım. Bu Uzman Danışmanın mantığı, tüm kararların çubuğun açılışında verilmesi, işlemlerin hemen uygulanması ve bekleyen emir kullanılmaması üzerine kuruludur.

Bu uzman için EURUSD H1 sembolünde, 2010.01.09 ile 2010.31.12 aralığında bir test düzenleyip sonuç grafiklerini karşılaştıralım. Aşağıdaki resim, üç modun her biri için test raporundaki bakiye grafiğini göstermektedir.


Yazar: MetaQuotes

 
"Custom max" kriteri ile optimizasyon yapılırken her zaman yerel bir maksimumun arandığı unutulmamalıdır. Yerel minimum değeri bulmak için, функции OnTester adresinden fonksiyonun hesaplanan değerinin tersi olan değeri döndürebilirsiniz:

return(1/значение_функции);



Kullanmak daha iyidir

return(-значение_функции);

ya da sıfıra bölme ile karşılaşabilirsiniz ve daha az bozulma olur.

 
Urain:

Kullanmak daha iyi

ya da sıfır bölme elde edebilirsiniz ve daha az bozulma olur.

Katılıyorum. Bunu makaleye ekleyeceğiz, öneri için teşekkürler!
 

Необходимо помнить, что при оптимизации по критерию "Custom max" всегда ищется локальный максимум. Для поиска локального минимума можно из функции OnTester ..........

"Yerel" kelimesi "küresel" ile değiştirilmelidir. Verilen aralıkta aranan küresel ekstremumdur.

 
joo:

"Yerel" kelimesi "küresel" ile değiştirilmelidir. Belirli bir aralıkta aranan küresel ekstremumdur.

Bunu söylemek zordur. Bir yandan, optimizasyon küresel ekstremumun bulunacağını garanti etmez.
 
Rosh:
Bunu söylemek zordur. Bir yandan, optimizasyon küresel bir ekstremum bulunacağını garanti etmez.
Neyin bulunacağı, yerel ya da küresel ekstremum, başka bir konudur. Ancak aranan küresel ekstremumdur - optimizasyonun tüm amacı budur.
 
Rosh:
Anlaştık. Makaleye ekleyeceğim, öneri için teşekkürler!
Eklendi
 
iAlligator(...) ve IndicatorCreate(...) kullanarak bir gösterge tanıtıcısı (örn. Alligator) oluşturmanın farkını açıklayabilir misiniz ?
 
slyusar:
Lütfen iAlligator(...) ve IndicatorCreate(...) kullanarak bir göstergenin (örneğin Alligator) tutamacını oluşturmanın farkını açıklayın ?
Tutamaçlar "dokunarak" farklılık göstermeyecektir. Ancak makalenin konusu bu değil.
 
Rosh:
Kulplar "dokunuşa" göre farklılık göstermeyecektir. Ama bu makalenin konusu bu değil.

Ben dokunuş farklılıklarını kastetmedim.....

Şöyle yazmışsınız:

"Belirli bir olay işleyicide bir gösterge çağrısı olsun ya da olmasın, tutamaçları iCustom() veya IndicatorCreate() tarafından oluşturulan tüm göstergeler, olay işleyici işlevi çağrılmadan önce zorla yeniden hesaplanacaktır."

Soru:

Kulpları (Alligator'a geri dönersek) iAlligator() kullanılarak oluşturulan göstergeler neden yeniden hesaplanmayacak, IndicatorCreate() 'den farkı nedir, ne daha iyi, ne daha kötü, ne kullanılmalı ve neden?

 
" Teknik Göstergeler veya IndicatorCreate() fonksiyonları tarafından oluşturulan tüm göstergeler..." okuyun.