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

 
fxsaber :
Belki özlendi.

Kaçırmadı.

Mevcut opt dosya formatı izin vermiyor. Burada düşünmek zorundasın.

 
Slava :

Kaçırmadı.

Mevcut opt dosya formatı izin vermiyor. Burada düşünmek zorundasın.

Hiçbir şeyi değiştirmenize gerek yok gibi görünüyor.

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

Hatalar, hatalar, sorular

Slava , 2019.04.19 15:11

 //+------------------------------------------------------------------+
//| входные параметры тестирования                                   |
//+------------------------------------------------------------------+
struct TestCacheInput
  {
   wchar_t           name[ 64 ];
   int                flag;                     // оптимизируемый параметр
   int                type;                     // тип TYPE_XXX
   int                digits;                   // количество знаков после запятой
   int                offset;                   // смещение в буфере параметров
   int                size;                     // размер значения параметра в буфере
   //--- 0-start,1-step,2-stop
   union { INT64 integers[ 3 ]; double numbers[ 3 ]; };
  };
   m_header.header_size= sizeof (TestCacheHeader)+m_inputs.Total()* sizeof (TestCacheInput)+m_header.parameters_size;
//--- кешируемая запись содержит номер прохода (при генетике - номер по порядку), структуру результатов тестирования (если математика, то 1 double), буфер оптимизируемых параметров и генетический проход

Her giriş, gerekli alanları içeren bir yapı tarafından belirtilir.

 

Şimdi bilmek çok kolay

  • Tüm Test Cihazı ayarları ve Uzman Danışman giriş parametreleri.
  • Tüm istatistikler. her optimizasyon geçişinin verileri.


Ancak, örneğin stat'ı bulmak imkansızdır. tek geçiş verileri Bir tst formatı olduğu açıktır. Ancak, stat ile bir set dosyası oluşturmak için Backtest sekmesindeki Tester'da CTRL + C'yi kullanmak uygun olacaktır. veri

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
;
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
;
; 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

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, ExpTradeSummary yapısının alanlarının çıktısıdır.

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

Hatalar, hatalar, sorular

Slava , 2019.04.19 15:11

 //+------------------------------------------------------------------+
//| Структура для статистики торговли                                |
//+------------------------------------------------------------------+
struct ExpTradeSummary;

#define TOSTRING(A) #A + " = " + ( string )(A) + "\n"

   string ToString( void ) const
  {
     return (
      TOSTRING(initial_deposit) +       // начальный депозит
      TOSTRING(withdrawal) +           // снято средств
      TOSTRING(profit) +               // общая прибыль (+)
      TOSTRING(grossprofit) +           // общий плюс
      TOSTRING(grossloss) +             // общий минус
      TOSTRING(maxprofit) +             // максимально прибыльная сделка
      TOSTRING(minprofit) +             // максимально убыточная сделка
      TOSTRING(conprofitmax) +         // прибыль максимальной последовательности прибыльных сделок
      TOSTRING(maxconprofit) +         // максимальная прибыль среди последовательностей
      TOSTRING(conlossmax) +           // убыток максимальной последовательности убыточных сделок
      TOSTRING(maxconloss) +           // максимальный убыток среди последовательностей
      TOSTRING(balance_min) +           // минимальное значение баланса (для расчёта абсолютной просадки)
      TOSTRING(maxdrawdown) +           // максимальная просадка по балансу
      TOSTRING(drawdownpercent) +       // отношение максимальной просадки по балансу к её пику
      TOSTRING(reldrawdown) +           // максимальная относительная просадка по балансу в деньгах
      TOSTRING(reldrawdownpercent) +   // максимальная относительная просадка по балансу в процентах
      TOSTRING(equity_min) +           // минимальное значение equity (для расчёта абсолютной просадки по equity)
      TOSTRING(maxdrawdown_e) +         // максимальная просадка по equity
      TOSTRING(drawdownpercent_e) +     // отношение максимальной просадки по equity к её пику (+)
      TOSTRING(reldrawdown_e) +         // максимальная относительная просадка по equity в деньгах
      TOSTRING(reldrawdownpercnt_e) +   // максимальная относительная просадка по equity в процентах
      TOSTRING(expected_payoff) +       // матожидание выигрыша (+)
      TOSTRING(profit_factor) +         // показатель прибыльности (+)
      TOSTRING(recovery_factor) +       // фактор восстановления (+)
      TOSTRING(sharpe_ratio) +         // коэффициент Шарпа (+)
      TOSTRING(margin_level) +         // минимальный уровень маржи
      TOSTRING(custom_fitness) +       // пользовательский фитнесс - результат OnTester (+)
      TOSTRING(deals) +                 // общее количество сделок
      TOSTRING(trades) +               // количество сделок out/inout
      TOSTRING(profittrades) +         // количество прибыльных
      TOSTRING(losstrades) +           // количество убыточных
      TOSTRING(shorttrades) +           // количество шортов
      TOSTRING(longtrades) +           // количество лонгов
      TOSTRING(winshorttrades) +       // количество прибыльных шортов
      TOSTRING(winlongtrades) +         // количество прибыльных лонгов
      TOSTRING(conprofitmax_trades) +   // максимальная последовательность прибыльных сделок
      TOSTRING(maxconprofit_trades) +   // последовательность максимальной прибыли
      TOSTRING(conlossmax_trades) +     // максимальная последовательность убыточных сделок
      TOSTRING(maxconloss_trades) +     // последовательность максимального убытка
      TOSTRING(avgconwinners) +         // среднее количество последовательных прибыльных сделок
      TOSTRING(avgconloosers)           // среднее количество последовательных убыточных сделок
    );
 

Güçlü önbellekler ortaya çıktığından, onları biraz iyileştirmeniz önerilir.

Artık yalnızca bir kullanıcı parametresi önbelleğe giriyor - OnTester.


ExpTradeSummary'nin üç ila beş kat daha fazla yağlanması çok uygun olurdu. hangi doldurulabilir

 double OnTester ( double &CustomDoubles[] );


Şimdi önbellekleri analiz ediyorsunuz ve açıkçası bir değil birkaç kullanıcı değerini görmek için yeterli fırsat yok.

 

Bu, Metaquotes'a bir istektir, umarım ekipteki en az bir geliştirici yanıtlayabilir (bu daha önce soruldıysa özür dilerim, ancak bir dil sorunu nedeniyle yanıtı Rus forumunda bulamıyorum).

Bir demo hesabında asla gerçekleşmeyen, ancak yalnızca gerçek bir hesapta olmayan bir ticaret durumunu test etme yeteneği eklemek için Strateji Test Cihazında bir iyileştirme istemek mantıklı mı? Çünkü tam olarak test etmeden güvenilir kod oluşturmak gerçekten zor.

Bu, esas olarak merkezi bir pazarla çalışmaktan kaynaklanmaktadır (Forex / CFD'nin aksine). Örneğin, bir siparişin kısmen doldurulması , bu bir demo hesapta (bildiğim kadarıyla) asla olmaz, ancak vadeli veya hisse senedi üzerindeki gerçek bir hesapta bu yaygın bir durumdur. Böyle bir durumu simüle etmek için bir araca sahip olmak çok faydalı olacaktır.

Kısmi tamamlama sadece bir örnektir, eğer Metaquotes bu tür özelliklerle çalışmanın iyi bir fikir olduğunu düşünüyorsa, fikirleri merkezileştirmeye ve bu tür özelliklerin ayrıntılı bir tanımını sunmaya hazırım. (Kendi ihtiyaçlarıma özel bir şey yok).

Zaman ayırdığınız ve cevap(lar)ınız için teşekkürler.

 
Alain Verleyen :

tam olarak test etme imkanı olmadan güvenilir kod oluşturmak zordur.

Bunu yapmak için, her ciddi danışman geliştiricisi, ticaret kitaplıklarında yıllarca gerçek hesaplarda hata ayıklar.

Bu olmadan, güvenilir kod oluşturmak imkansızdır.

 
fxsaber :

Bunu yapmak için, her ciddi danışman geliştiricisi, ticaret kitaplıklarında yıllarca gerçek hesaplarda hata ayıklar.

Bu olmadan, güvenilir kod oluşturmak imkansızdır.

Bu böyle, ancak bu tür işlevsellik, gerçek bir hesapta çok fazla zaman alan testlerden kaçınmaya yardımcı olur.

 
Artyom Trishkin :

Bu böyle, ancak bu tür işlevsellik, gerçek bir hesapta çok fazla zaman alan testlerden kaçınmaya yardımcı olur.

İki görev var.

  1. Mevcut ticaret durumunu, ticaret geçmişini nasıl göstereceğini ve emirleri nasıl göndereceğini bilen yeterli bir ticaret kütüphanesi. Burada Tester neredeyse hiç yardımcı olmuyor. Stres testi yaparsanız bir demo çok yardımcı olabilir. Gerçek hayatta, onları yeniden yaratmamak pahalıdır. Bu nedenle, burada sadece çok sayıda sembol / sunucu üzerinde bir demo var. Bir elin parmaklarında bu tür kütüphaneler.
  2. Kısmi yürütmelerin, reddetmelerin vb. işlem mantığı üzerinde çalışmak. Bu nokta birincisinden çok daha basittir. Ve birçok kez aynı MT4'e herhangi bir Test Cihazı olmadan karar verdim. Bu gerçekten basit.

Test cihazı yalnızca ikinci noktada, basit bir noktada yardımcı olabilir. TS'nin iddia edilen "likidite tavanını" ölçerek, son cilt üzerinden kısmi bir icra uygulamak mümkündür. Ama bu son derece kaba bir tahmin olurdu.


Aynı zamanda, Test Cihazındaki herhangi bir zil ve ıslığın ek olduğunu anlamanız gerekir. Bu ziller ve ıslıklar kullanılmasa bile fren yapar.

 
fxsaber :

Bunu yapmak için, her ciddi danışman geliştiricisi, ticaret kitaplıklarında yıllarca gerçek hesaplarda hata ayıklar.

Bu olmadan, güvenilir kod oluşturmak imkansızdır.

Faydasız ve küstah yazılarınla beni bir kereliğine unutmanı tavsiye ederim.

Maalesef onları filtrelemenin bir yolu yok.

Lütfen mesajıma cevap vermeyin, bildirimlerle zamanımı boşa harcıyorsunuz.

 
Alain Verleyen :

Faydasız ve küstah yazılarınla beni bir an önce unutmanı tavsiye ederim.

Rus dilinden kullandığınız otomatik tercümanların yeterliliğinden şüphe etmeye başlamanızı tavsiye ederim.


Ne yazık ki, onları filtrelemenin bir yolu yok.

Lütfen mesajıma cevap vermeyin, bildirimlerle zamanımı boşa harcıyorsunuz.

TAMAM.