MetaTrader 5 전략 테스터: 오류, 버그, 개선 제안 - 페이지 9

 
Vladimir Karputov :

납품에서 표준 고문을 가져 와서 모든 것이 작동하는지 확인하십시오. 그러나 입력 매개변수가 sinput으로 선언되면 이러한 매개변수를 최적화할 수 없습니다.

표준 전문가 중에서 선택:

MACD 샘플

그러나 모든 것이 동일하게 유지됩니다.

MACD 샘플 입력

내 자신의 sinput에서는 최적화할 의미가 없기 때문에 매직 매개변수만 만들었습니다.

입력 및 입력

내 빌드는 2155입니다. 빌드에 문제가 있습니까?

 
Mihail Matkovskij :

표준 전문가 중에서 선택:

그러나 모든 것이 동일하게 유지됩니다.

내 자신의 sinput에서는 최적화할 의미가 없기 때문에 매직 매개변수만 만들었습니다.


내 빌드는 2155입니다. 빌드에 문제가 있습니까?

모두 알아냈습니다. 최적화할 매개변수의 반대쪽에 플래그를 설정해야 했지만 이전 에는 최적화 매개변수를 설정 하기 위해 이것이 필요하지 않았습니다.

 
Mihail Matkovskij :

표준 전문가 중에서 선택:

그러나 모든 것이 동일하게 유지됩니다.

내 자신의 sinput에서는 최적화할 의미가 없기 때문에 매직 매개변수만 만들었습니다.


내 빌드는 2155입니다. 빌드에 문제가 있습니까?

모든 것이 빌드와 관련되어 있지만 부주의합니다. 당신은 표준 고문을 택했고 그 매개변수가 변경 가능하다는 것을 알았습니다. "변수" 열의 확인란을 선택하기만 하면 됩니다.


추가됨: 답변을 작성하는 동안 이해해 주셨군요.

 
Vladimir Karputov :

모든 것이 빌드와 관련되어 있지만 부주의합니다. 당신은 표준 고문을 택했고 그 매개변수가 변경 가능하다는 것을 알았습니다. "변수" 열의 확인란을 선택하기만 하면 됩니다.


추가됨: 답변을 작성하는 동안 이해해 주셨군요.

네. 하지만 어쨌든 감사합니다!

 
테스터를 계산할 때(빨간색 중지 버튼) 매개변수 탭의 마우스 휠이 작동하지 않습니다(많은 매개변수를 스크롤해야 함).
 
안녕하세요! 최적화 질문입니다. 터미널에 4명의 에이전트가 있습니다. 이전에는 최적화의 결과로 전체 시스템에 프리즈가 있을 수 있었습니다. 따라서 한 에이전트를 끈 다음 모든 것이 잘 작동했습니다. 새 버전의 터미널에서는 첫 번째 에이전트가 전혀 로드되지 않은 것을 확인했습니다. 따라서 네 번째 에이전트를 포함했습니다. 내가 얼마나 잘했는지, 4개의 작업 에이전트가 있는 프리즈를 예상할 가치가 있습니까, 아니면 내가 제안한 대로 첫 번째 에이전트가 최적화 동안 여전히 언로드된 상태로 남아 있습니까?
 
Mihail Matkovskij :
안녕하세요! 최적화 질문입니다. 터미널에 4명의 에이전트가 있습니다. 이전에는 최적화의 결과로 전체 시스템에 프리즈가 있을 수 있었습니다. 따라서 한 에이전트를 끈 다음 모든 것이 잘 작동했습니다. 새 버전의 터미널에서는 첫 번째 에이전트가 전혀 로드되지 않은 것을 확인했습니다. 따라서 네 번째 에이전트를 포함했습니다. 내가 얼마나 잘했는지, 4개의 작업 에이전트가 있는 프리즈를 예상할 가치가 있습니까, 아니면 내가 제안한 대로 첫 번째 에이전트가 최적화 동안 여전히 언로드된 상태로 남아 있습니까?

첫 번째 에이전트에 열려 있는 Visual Tester 창이 있습니까? 그렇다면 Visual Tester 창을 닫으면 에이전트 #1이 무료가 됩니다.

 

테스터는 테스트 간격의 마지막 몇 틱을 전달하지 않습니다.

조언자

 #define TOSTR(A) " " + #A + " = " + ( string )Tick.A
#define TOSTR2(A) " " + #A + " = " + :: DoubleToString (Tick.A, _Digits )

string TickToString( const MqlTick &Tick, const bool Flags = true )
{
   return (TOSTR(time) + "." + :: IntegerToString (Tick.time_msc % 1000 , 3 , '0' ) + TOSTR2(bid) + TOSTR2(ask));
}

void OnDeinit ( const int )
{
   MqlTick Tick;

   if ( SymbolInfoTick ( _Symbol , Tick))
     Print (TickToString(Tick)); // Распечатываем последний тик интервала тестирования.
}


결과

EURGBP.rann_RannForex: history data begins from 2018.02 . 06 00 : 00
EURGBP.rann_RannForex: ticks data begins from 2018.02 . 06 00 : 00
agent process started on 127.0 . 0.1 : 3000
connecting to 127.0 . 0.1 : 3000
connected
authorized (agent build 2162 )
EURGBP.rann_RannForex,M1 (MetaQuotes-Demo): testing of Experts\Test5- 4 .ex5 from 2019.09 . 28 00 : 00 to 2019.10 . 01 00 : 00
common synchronization completed
EURGBP.rann_RannForex: ticks synchronized already [ 73 bytes]
MetaTester 5 started on 127.0 . 0.1 : 3000
initialization finished
login (build 2162 )
4372 bytes of account info loaded
1482 bytes of tester parameters loaded
188 bytes of input parameters loaded
2813 bytes of symbols list loaded
expert file added: Experts\Test5- 4 .ex5. 13105 bytes loaded
7703 Mb available, 96 blocks set for ticks generating
calculate profit in pips, initial deposit 10000 , leverage 1 : 100
successfully initialized
14 Kb of total initialization data received
Intel Core i7- 2700 K  @ 3.50 GHz, 16301 MB
EURGBP.rann_RannForex: symbol to be synchronized
EURGBP.rann_RannForex: symbol synchronized, 3720 bytes of symbol info received
EURGBP.rann_RannForex: load 57 bytes of history data to synchronize in 0 : 00 : 00.001
EURGBP.rann_RannForex: history synchronized from 2018.02 . 06 to 2019.10 . 01
EURGBP.rann_RannForex: ticks synchronization started
EURGBP.rann_RannForex: load 64 bytes of tick data to synchronize in 0 : 00 : 00.000
EURGBP.rann_RannForex: history ticks synchronized from 2019.09 . 30 to 2019.10 . 01
EURGBP.rann_RannForex,M1: history cache allocated for 611815 bars and contains 608725 bars from 2018.02 . 06 02 : 00 to 2019.09 . 27 23 : 54
EURGBP.rann_RannForex,M1: history begins from 2018.02 . 06 02 : 00
EURGBP.rann_RannForex,M1 (MetaQuotes-Demo): generating based on real ticks
EURGBP.rann_RannForex,M1: testing of Experts\Test5- 4 .ex5 from 2019.09 . 28 00 : 00 to 2019.10 . 01 00 : 00 started
EURGBP.rann_RannForex : real ticks begin from 2019.09 . 30 00 : 00 : 00
final balance 10000.00 pips
2019.09 . 30 23 : 59 : 58      time = 2019.09 . 30 23 : 59 : 58.022 bid = 0.88612 ask = 0.88741
EURGBP.rann_RannForex,M1: 101751 ticks, 1424 bars generated. Test passed in 0 : 00 : 00.558 (including ticks preprocessing 0 : 00 : 00.031 ).
269 Mb memory used including 35 Mb of history data, 64 Mb of tick data
log file "C:\Program Files\ICMarkets - MetaTrader 5\Tester\Agent-127.0.0.1-3000\logs\20191002.log" written
connection closed


실제로 마지막에 있어야 하는 것.


버그는 임의의 간격으로 재현됩니다.

 

입력 그룹을 통해 매개변수를 그룹화하는 새로운 옵션이 있습니다.

 //+------------------------------------------------------------------+
//|                                                      ProjectName |
//|                                      Copyright 2018, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
input group           "Strategy #1"
input ENUM_TIMEFRAMES InpS1_TF    = PERIOD_M30 ;         // timeframe
input string           InpS1_Sym1  = "EURUSD" ;           // first leg
input string           InpS1_Sym2  = "GBPUSD" ;           // second leg
input int              InpS1_Period= 20 ;                 // period of sigma calculation
input double           InpS1_Sigma = 3.0 ;               // sigma level for trade
input int              InpS1_Bars  = 100 ;               // bars for correlation
input double           InpS1_Level = 0.7 ;               // correlation level for trade
input double           InpS1_Lot   = 0.1 ;               // trade lot
sinput long            InpS1_Magic = 100 ;               // Magic Number

input group           "Strategy #2"
input ENUM_TIMEFRAMES InpS2_TF    = PERIOD_M30 ;         // timeframe
input string           InpS2_Sym1  = "EURJPY" ;           // first leg
input string           InpS2_Sym2  = "GBPJPY" ;           // second leg
input int              InpS2_Period= 20 ;                 // period of sigma calculation
input double           InpS2_Sigma = 3.0 ;               // sigma level for trade
input int              InpS2_Bars  = 100 ;               // bars for correlation
input double           InpS2_Level = 0.7 ;               // correlation level for trade
input double           InpS2_Lot   = 0.1 ;               // trade lot
sinput long            InpS2_Magic = 200 ;               // Magic Number

input group           "Strategy #3"
input ENUM_TIMEFRAMES InpS3_TF    = PERIOD_M30 ;         // timeframe
input string           InpS3_Sym1  = "EURCHF" ;           // first leg
input string           InpS3_Sym2  = "GBPCHF" ;           // second leg
input int              InpS3_Period= 20 ;                 // period of sigma calculation
input double           InpS3_Sigma = 3.0 ;               // sigma level for trade
input int              InpS3_Bars  = 100 ;               // bars for correlation
input double           InpS3_Level = 0.7 ;               // correlation level for trade
input double           InpS3_Lot   = 0.1 ;               // trade lot
sinput long            InpS3_Magic = 300 ;               // Magic Number

input group           "Strategy #4"
input ENUM_TIMEFRAMES InpS4_TF    = PERIOD_M30 ;         // timeframe
input string           InpS4_Sym1  = "EURUSD" ;           // first leg
input string           InpS4_Sym2  = "AUDUSD" ;           // second leg
input int              InpS4_Period= 20 ;                 // period of sigma calculation
input double           InpS4_Sigma = 3.0 ;               // sigma level for trade
input int              InpS4_Bars  = 100 ;               // bars for correlation
input double           InpS4_Level = 0.7 ;               // correlation level for trade
input double           InpS4_Lot   = 0.1 ;               // trade lot
sinput long            InpS4_Magic = 400 ;               // Magic Number

input group           "Strategy #5"
input ENUM_TIMEFRAMES InpS5_TF    = PERIOD_M30 ;         // timeframe
input string           InpS5_Sym1  = "USDCAD" ;           // first leg
input string           InpS5_Sym2  = "USDCHF" ;           // second leg
input int              InpS5_Period= 20 ;                 // period of sigma calculation
input double           InpS5_Sigma = 3.0 ;               // sigma level for trade
input int              InpS5_Bars  = 100 ;               // bars for correlation
input double           InpS5_Level = 0.7 ;               // correlation level for trade
input double           InpS5_Lot   = 0.1 ;               // trade lot
sinput long            InpS5_Magic = 500 ;               // Magic Number

input group           "Strategy #6"
input ENUM_TIMEFRAMES InpS6_TF    = PERIOD_M30 ;         // timeframe
input string           InpS6_Sym1  = "USDCHF" ;           // first leg
input string           InpS6_Sym2  = "USDJPY" ;           // second leg
input int              InpS6_Period= 20 ;                 // period of sigma calculation
input double           InpS6_Sigma = 3.0 ;               // sigma level for trade
input int              InpS6_Bars  = 100 ;               // bars for correlation
input double           InpS6_Level = 0.7 ;               // correlation level for trade
input double           InpS6_Lot   = 0.1 ;               // trade lot
sinput long            InpS6_Magic = 600 ;               // Magic Number

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
   return ( INIT_SUCCEEDED );
  }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTick ()
  {

  }  
//+------------------------------------------------------------------+


그룹은 작업하기 더 편리하고 접을 수 있습니다.

 
MetaQuotes Software Corp. :

입력 그룹을 통해 매개변수를 그룹화하는 새로운 옵션이 있습니다.

그룹은 작업하기 더 편리하고 접을 수 있습니다.

고맙습니다. "모든 그룹 축소/확장"으로 설정합니다.