MetaTrader 5 Strateji Test Cihazı: Hatalar, Hatalar, İyileştirme Önerileri - sayfa 44

 
traveller00 :
Evet, parametrelerden kopyala-yapıştır yaptım ve hangi biçimde görmeyi beklediğini gördüm. Ama bir insanın bu tür değerlerle uğraşması pek uygun değil . Bu nedenle, kaynak kodunda olduğu gibi, orada tarih biçimleri için destek sunmanın mümkün olup olmadığını sordum.

İnsan düzenleme seti dosyaları?


Tarih-saat girdileri (set-files, CTRL+C Tester, tpl-files ve muhtemelen başka bir şey) sayı olarak değil de bir dize olarak görüntüleniyorsa, bu verileri ayrıştırmanın tüm kolaylığı çökecektir.

Artık yalnızca üç tür girdi verisi vardır: double, long ve string. İlk ikisi her zaman sayılardır. Hatta sadece tarih saatini değil, aynı zamanda renk, numaralandırma ve genel olarak string dışında her şeyi içerir. Süper uygun!


Bir çok kodu çalışmaz hale getirerek bir varlık daha üretmek, şüpheli bir çıkarımdır. Yorumlar var. İşte otomat tarafından oluşturulan bir küme örneği.

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

Kitaplıklar: TesterCache

fxsaber , 2019.11.11 04:45

; saved on 2019.11 . 13 19 : 40 : 01
; Experts\Examples\MACD\MACD Sample LImitTP.ex5
; EURUSD
; 2019.09 . 01 - 2019.11 . 13
; 479 , 10 , Max, 47.92 , - 253.60
;
InpLots= 0.1
InpTakeProfit= 200 || 10 || 5 || 500 ||Y
InpTrailingStop= 290 || 30 || 10 || 300 ||Y
InpMACDOpenLevel= 5 || 5 || 5 || 200 ||Y
InpMACDCloseLevel= 180 || 5 || 5 || 200 ||Y
InpMATrendPeriod= 8 || 1 || 1 || 200 ||Y
;
; Pass = 1838
; initial_deposit = 10000.0
; withdrawal = 0.0
; profit = 479.15
; grossprofit = 479.15
; grossloss = 0.0
; maxprofit = 99.8
; minprofit = 0.0
; conprofitmax = 479.15
; maxconprofit = 479.15
; conlossmax = 0.0
; maxconloss = 0.0
; balance_min = 10000.0
; maxdrawdown = 0.0
; drawdownpercent = 0.0
; reldrawdown = 0.0
; reldrawdownpercent = 0.0
; equity_min = 9997.700000000001
; maxdrawdown_e = 253.6000000000004
; drawdownpercent_e = 2.457388152985982
; reldrawdown_e = 253.6000000000004
; reldrawdownpercnt_e = 2.457388152985982
; expected_payoff = 47.91500000000001
; profit_factor = 1.797693134862316 e+ 308
; recovery_factor = 1.889392744479493
; sharpe_ratio = 1.069726339729858
; margin_level = 1.797693134862316 e+ 308
; custom_fitness = 0.0
; deals = 15
; trades = 10
; profittrades = 10
; losstrades = 0
; shorttrades = 6
; longtrades = 4
; winshorttrades = 6
; winlongtrades = 4
; conprofitmax_trades = 10
; maxconprofit_trades = 10
; conlossmax_trades = 0
; maxconloss_trades = 0
; avgconwinners = 10
; avgconloosers = 0
; 
; version = 515
; copyright = Copyright 2000 - 2019 , MetaQuotes Software Corp.
; name = TesterOptCache
; header_size = 2526
; record_size = 328
; expert_name = MACD Sample LImitTP
; expert_path = Experts\Examples\MACD\MACD Sample LImitTP.ex5
; server = MetaQuotes-Beta
; symbol = EURUSD
; ( ENUM_TIMEFRAMES )period = PERIOD_M1
; date_from = 2019.09 . 01 00 : 00 : 00
; date_to = 2019.11 . 13 00 : 00 : 00
; date_forward = 1970.01 . 01 00 : 00 : 00
; opt_mode = 1
; ticks_mode = 4
; last_criterion = 0
; msc_min = 501
; msc_max = 2342
; msc_avg = 801
; group = demo (netting)
; trade_currency = USD
; trade_deposit = 10000
; trade_condition = 0
; trade_leverage = 100
; trade_hedging = 1
; trade_currency_digits = 2
; trade_pips = 0
; parameters_size = 28
; parameters_total = 6
; opt_params_size = 40
; opt_params_total = 5
; dwords_cnt = 0
; snapshot_size = 0
; passes_total = 0
; passes_passed = 2510

Başkalarını bilmiyorum, ancak tüm bilgiler set dosyasında yer aldığında benim için uygun. Ne olduğunu, nerede ve ne kadar olduğunu anlamak çok hızlı bir şekilde ortaya çıkıyor.


Bu yeterli değil mi?


ZY Datetime'ın da optimize edildiğini unutmamak gerekir, Start, Step, Stop ayarlarının yapılması mümkündür. Adım, elbette, GUI'de bile saniyeler içinde ayarlanır.

 
Numarayı olduğu gibi bırakmak için CTRL + C ile panoya kopyalamayı kastetmiştim. Ancak CTRL + V ile ekleme, hem eski formatı (esas olarak ulong) hem de yeni dize formatını anlayacak şekilde genişletilir. Bu hiçbir şeyi bozmamalı, ancak sayı yerine bir dize belirtmek isteyenler için genişleyecektir.
 
traveller00 :
Numarayı olduğu gibi bırakmak için CTRL + C ile panoya kopyalamayı kastetmiştim. Ancak CTRL + V ile ekleme, hem eski formatı (esas olarak ulong) hem de yeni dize formatını anlayacak şekilde genişletilir. Bu hiçbir şeyi bozmamalı, ancak sayı yerine bir dize belirtmek isteyenler için genişleyecektir.

İyi açıklama. Gerçekten hiçbir şeyi kırmayacak. Doğru, tarih ayarını CTRL + V ile kullanan kişileri tanımıyorum.

 
fxsaber :

Doğru, tarih ayarını CTRL + V ile kullanan kişileri tanımıyorum.

Bu daha çok tarihi değil, tarihin nerede olduğu da dahil olmak üzere genel olarak parametreleri ayarlama meselesidir. Birincisi, tek tip hale getirmek için, mql'nin kendisi tarih biçimini içerdiğinden ve ikincisi, görsel olması ve yorum üretmemesi için. Testim için gözle değerlendirilmesi gereken girdi parametreleri üretilir ve ardından koyulur.

Slava :
Belki. Haydi Yapalım şunu.

Danışman için aynı zamanda (CTRL + V aracılığıyla) Giriş parametrelerinin eklenmesi için destek sağlamak mümkün müdür? Parametrelerde test için mükemmel bir şekilde yerleştirilmiştir. Ancak, test edilmediğinde, yalnızca grafiğe bir Uzman Danışman eklendiğinde, Girdi Parametreleri sekmesi eklemeyi desteklemiyor gibi görünüyor ve aynı parametreleri elle doldurmanız gerekiyor. Teşekkür ederim.

 
traveller00 :

Danışman için aynı zamanda (CTRL + V aracılığıyla) Giriş parametrelerinin eklenmesi için destek sağlamak mümkün müdür? Parametrelerde test için mükemmel bir şekilde yerleştirilmiştir. Ancak, test edilmediğinde, yalnızca grafiğe bir Uzman Danışman eklendiğinde, Girdi Parametreleri sekmesi eklemeyi desteklemiyor gibi görünüyor ve aynı parametreleri elle doldurmanız gerekiyor. Teşekkür ederim.

Ve CTRL+C.

 

Geliştiriciler, merhaba!

Bazı nedenlerden dolayı, OnTimer'da, strateji test cihazında Uzman Danışman çalışması sırasında böyle bir kontrol her zaman geçmez (bununla neyin bağlantılı olduğu açık değildir):

     if ( MQLInfoInteger ( MQL_PROFILER ) == 0 && MQLInfoInteger ( MQL_TESTER ) == 0 ) {
         Print ("You can't use this version of EA in trade mode!");
         return ;
    }

OnInit'te her zaman normal çalışıyor gibi görünüyor.

not. Ancak ticaret her zaman yapılmaz. Test modları için günlükler ekleyeceğim, ticaret neden yasak. Bazı yüzen aksaklıklar.
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 

Görselleştirme modunda MT5 test cihazındaki grafik nesnelerin beklediğim gibi çizilmediği gerçeğiyle karşı karşıya kaldım. Sınıra basitleştirilmiş EA testi, 50. ve 45. çubuklar temelinde alınan koordinatlara göre bir dikdörtgen oluşturmalıdır. Kod ekte, ancak tüm mantık tek satırda:

if (!IsNewBar()) return;
RectangleCreate(0, "5BarZone", 0, iTime(NULL,0,50), iHigh(NULL,0,50), iTime(NULL,0,0), iLow(NULL,0,45), clrGreen, STYLE_SOLID, 1, true, true);
ChartRedraw(0);

EA, mevcut TF'nin her yeni çubuğunda böyle bir kanalı yeniden çizmelidir. Resim şöyle görünmelidir:


Gerçekte, dikdörtgen hem uzunluk hem de genişlik olarak rastgele gerilir ve resim şöyle görünür:


Çalışan EA kodu çok daha fazla nesne içerir ve bunların her biri daha fazla bozulur ve bu da bir karışıklığa neden olur.

Ayrıca, bir test EA'sının görsel testini düşük hızda çalıştırırsanız, oluşturma neredeyse her zaman doğrudur. Maksimum hızda veya ona yakın bir testte veya minimum hızda bile birçok nesne ile gerçek bir Expert Advisor çalıştırırsanız, yukarıda açıklanan bozulmaları alıyorum.

Lütfen bana sorunun ne olduğunu ve çözülüp çözülemeyeceğini söyleyin. Cevabı aramaya çalıştı ama başarısız oldu.

Herhangi bir yardım için çok teşekkürler.

Dosyalar:
 
Andrey Pogoreltsev :

Geliştiriciler, merhaba!

Bazı nedenlerden dolayı, OnTimer'da, strateji test cihazında Uzman Danışman çalışması sırasında böyle bir kontrol her zaman geçmez (bununla neyin bağlantılı olduğu açık değildir):

OnInit'te her zaman normal çalışıyor gibi görünüyor.

not. Aynı zamanda, ticaret her zaman yapılmaz. Test modları için günlükler ekleyeceğim, ticaret neden yasak. Bazı yüzen aksaklıklar.
&&'yi || ile değiştirin
 
Grigori.SB :

Görselleştirme modunda MT5 test cihazındaki grafik nesnelerin beklediğim gibi çizilmediği gerçeğiyle karşı karşıya kaldım. Sınıra basitleştirilmiş EA testi, 50. ve 45. çubuklar temelinde alınan koordinatlara göre bir dikdörtgen oluşturmalıdır. Kod ekte, ancak tüm mantık tek satırda:

EA, mevcut TF'nin her yeni çubuğunda böyle bir kanalı yeniden çizmelidir. Resim şöyle görünmelidir:


Gerçekte, dikdörtgen hem uzunluk hem de genişlik olarak rastgele gerilir ve resim şöyle görünür:


Çalışan EA kodu çok daha fazla nesne içerir ve bunların her biri daha fazla bozulur ve bu da bir karışıklığa neden olur.

Ayrıca, bir test EA'sının görsel testini düşük hızda çalıştırırsanız, oluşturma neredeyse her zaman doğrudur. Maksimum hızda veya ona yakın bir testte veya minimum hızda bile birçok nesne ile gerçek bir Expert Advisor çalıştırırsanız, yukarıda açıklanan bozulmaları alıyorum.

Lütfen bana sorunun ne olduğunu ve çözülüp çözülemeyeceğini söyleyin. Cevabı aramaya çalıştı ama başarısız oldu.

Herhangi bir yardım için çok teşekkürler.

Oluşturulduktan sonra bir nesnenin koordinatlarını basitçe değiştirmeye çalışın
 
Grigori.SB :

Görselleştirme modunda MT5 test cihazındaki grafik nesnelerin beklediğim gibi çizilmediği gerçeğiyle karşı karşıya kaldım. Sınıra basitleştirilmiş EA testi, 50. ve 45. çubuklar temelinde alınan koordinatlara göre bir dikdörtgen oluşturmalıdır. Kod ekte, ancak tüm mantık tek satırda:

EA, mevcut TF'nin her yeni çubuğunda böyle bir kanalı yeniden çizmelidir. Resim şöyle görünmelidir:


Gerçekte, dikdörtgen hem uzunluk hem de genişlik olarak rastgele gerilir ve resim şöyle görünür:


Çalışan EA kodu çok daha fazla nesne içerir ve bunların her biri daha fazla bozulur ve bu da bir karışıklığa neden olur.

Ayrıca, bir test EA'sının görsel testini düşük hızda çalıştırırsanız, oluşturma neredeyse her zaman doğrudur. Maksimum hızda veya ona yakın bir testte veya minimum hızda bile birçok nesne ile gerçek bir Expert Advisor çalıştırırsanız, yukarıda açıklanan bozulmaları alıyorum.

Lütfen bana sorunun ne olduğunu ve çözülüp çözülemeyeceğini söyleyin. Cevabı aramaya çalıştı ama başarısız oldu.

Herhangi bir yardım için çok teşekkürler.

Hatalar için kodu kontrol edin, büyük olasılıkla ERR_OBJECT_ALREADY_EXISTS.

Nesneyi yeniden oluşturmadan önce silmeniz gerekir veya

Slava :
Oluşturulduktan sonra bir nesnenin koordinatlarını basitçe değiştirmeye çalışın