라이브러리: 멀티 테스터 - 페이지 49

 
fxsaber #:
최신 버전의 MTTester.mqh를 사용하고 계신가요? 다음 코드가 있습니다.

최신 버전으로 업데이트한 것으로 기억하는데 왜 해당 파일을 업데이트하지 않았는지 모르겠습니다. 이제 모든 것이 정상적으로 작동합니다.

 
다운로드!

지금 바로 로그인하세요.
매개변수를 입력합니다:
매개변수 변환 유형 'short[260]'에서 'ushort[] &'로의 변환이 허용되지 않음 MTTester.mqh 156 39
int user32::GetClassNameW(long,ushort&[],int) winuser.mqh 1414 37

MTTester.mqh에 무엇을 추가해야 하나요?

지금 바로 등록하세요.

질문이 있으신가요?

С уважением, Александр
파일:
_Noc.mq5  62 kb
 
klycko #:
첨부된 스크립트의 컴파일이 중지되었습니다.

트레이딩, 자동매매 시스템, 트레이딩 전략 테스트에 관한 포럼입니다.

라이브러리: 멀티테스터

fxsaber, 2025.06.08 16:57

KB에서는 그림과 같이 해당 파일을 클릭해서만 소스를 다운로드합니다.

방금 이런 식으로 다운로드하여 오류없이 컴파일되었습니다.

 
fxsaber #:

정말 감사합니다!

모든 것이 다시 작동합니다!

 

위 이미지와 같이 다운로드되었지만 cmopile에서 오류 발생

새 빌드 MT5 V5 BULD 5142에 대한 Mttester.mqh 컴파일 오류 pls 확인


ERRROS :


매개변수 변환 유형 'short[260]'에서 'ushort[] &'로의 변환이 허용되지 않음 MTTester.mqh 135 39

'ReadFile' - 함수 호출에 과부하가 적용될 수 없음 MTTester.mqh 1283 21


 
dave365 #:

위 이미지와 같이 다운로드되었지만 cmopile에 오류가 발생했습니다.

트레이딩, 자동매매 시스템, 트레이딩 전략 테스트에 관한 포럼

라이브러리 멀티테스터

fxsaber, 2025.06.12 14:55

현재 버전의 MTTester.mqh 파일 크기는 현재 123,822바이트입니다.

 

안녕하세요 @fxsaber

잘 지내고 계시길 바랍니다.

멀티테스터에 대한 귀하의 작업을 따르고 있습니다. 예제와 라이브러리 사용 방법에 대한 설명을 읽었지만 어떻게 사용할지 알 수 없습니다.

9 개의 기호에 대한 유도자를 테스트 / 최적화하기 위해 작성한 EA가 있습니다. EA에서 다음과 같이 코드를 구현했습니다.

//+------------------------------------------------------------------+
//|멀티테스터베이스.mq5 |
//|저작권 2025, MetaQuotes Ltd. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2025, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"

#include <fxsaber\MultiTester\MultiTester.mqh>

#define  EA_NAME "IndicatorTesting\\EAs\\ash_indicator_testing.ex5"

// 이 함수는 작업 목록 생성을 담당합니다.
void SetTesterSettings()
{
   TesterSettings.Add(EA_NAME, "EURUSD", PERIOD_CURRENT);
   TesterSettings.Add(EA_NAME, "AUDNZD", PERIOD_CURRENT);
   TesterSettings.Add(EA_NAME, "EURGBP", PERIOD_CURRENT);
   TesterSettings.Add(EA_NAME, "AUDCAD", PERIOD_CURRENT);
   TesterSettings.Add(EA_NAME, "CHFJPY", PERIOD_CURRENT);
   TesterSettings.Add(EA_NAME, "CADSGD", PERIOD_CURRENT);
   TesterSettings.Add(EA_NAME, "BTCUSD", PERIOD_CURRENT);
   TesterSettings.Add(EA_NAME, "XAUUSD", PERIOD_CURRENT);
   TesterSettings.Add(EA_NAME, "US500", PERIOD_CURRENT);
}
//+------------------------------------------------------------------+

하지만 주어진 심볼에 대해 매개 변수를 최적화하고 싶기 때문에 테스터에서 ash_indicator_testing EA를 선택해야했는데, 그렇게하지 않으면 최적화 매개 변수가 없기 때문에 그 후에 무엇을해야할지 모르겠습니다. 그렇게 한 후 위에 붙여 넣은 코드 스 니펫, 즉 (멀티 테스터 ea)를 차트에 적용했습니다! 올바른 행동 방침입니까 아니면 제가 잘못하고 있습니까? 사용법에 대한 충분한 정보를 찾을 수 없었기 때문입니다.

이 부분에 대해 안내해 주세요.

최고의 안부

 
Hafiz Tamur Ahmed #:

안내해 주세요

지금까지 MultiTester.mqh는 너무 복잡한 이벤트 모델을 사용하기 때문에 Tester와의 상호 작용을 작성하는 데 사용되지 않았습니다. 따라서 지금 바로 MTTester.mqh를 통해 다른 접근 방식을 사용하는 것이 좋습니다.


다음은 좋은 예입니다.

트레이딩, 자동매매 시스템 및 트레이딩 전략 테스트에 관한 포럼입니다.

라이브러리: 멀티테스터

fxsaber, 2024.01.17 12:13 AM

#include <fxsaber\MultiTester\MTTester.mqh>    // https://www.mql5.com/ko/code/26132

#define _CS(A) ((!IsStopped()) && (A))
#define  PAUSE 200

void Run( const string Settings )
{
  while (_CS(!MTTESTER::IsReady()))
    Sleep(PAUSE);

  MTTESTER::CloseNotChart();
    
  if (_CS(MTTESTER::SetSettings2(Settings)))
    MTTESTER::ClickStart(false);

  while (_CS(!MTTESTER::IsReady()))
    Sleep(PAUSE);
}

void OnStart()
{
  string Settings[] = {"[Tester]\n" +
                       "Expert=Input_String_Example_Alternative.ex5\n" +
                       "Symbol=EURUSD\n" +
                       "Period=M1\n" +
                       "Optimization=2\n" +
                       "Model=4\n" +
                       "FromDate=2023.01.01\n" +
                       "ToDate=2024.01.01\n" +
                       "ForwardMode=0\n" +
                       "Deposit=1000000000\n" +
                       "Currency=USD\n" +
                       "ProfitInPips=1\n" +
                       "Leverage=100\n" +
                       "ExecutionMode=0\n" +
                       "OptimizationCriterion=6\n" +
                       "[TesterInputs]\n" +
                       "inAmount=1||1||1||10||N\n" +
                       "inCount=2||2||1||20||N\n" +
                       "inPeriod=3||3||1||30||N\n" +
                       "inKoef=4.56||4.56||0.456000||45.600000||N\n" +
                       "inLog=7.89||7.89||0.789000||78.900000||N\n" +
                       "inFlag=true||false||0||true||N"
                      };

  for (uint i = ArraySize(Settings); (bool)i--;)
    Run(Settings[i]);
}

테스터 설정은 CTRL+C/V를 통해 저장됩니다. 별도의 파일에 저장한 다음 위 소스의 설정[] 배열을 해당 파일의 데이터로 채울 수 있습니다.


추가 예제.

Optimize EA over a time window
Optimize EA over a time window
  • 2025.06.30
  • Maker
  • www.mql5.com
Is it possible to make the Strategy Tester to Optimize EA running it automatically multiple times over a range of time windows...
 

답장을 보내 주셔서 감사하지만 컨트롤러 EA의 구현 방법과 사용 방법과 같은 구현을 이해할 수 없습니다! 차트에 적용하거나 테스터에서 사용해야합니다. 포럼을 읽었지만 팝업이 나타나거나 그런 종류의 팝업이 나타나지 않았기 때문에 컨트롤러 EA를 차트에 적용했을 때 내 쪽에서 일어난 유일한 일은 테스터를 기다리고 수행중인 작업을 나타내는 줄과 아래의 전략 테스터가 지속적으로 깜박이는 것뿐입니다. 테스터로 아무것도 할 수 없었습니다!

저와 같은 초보자가 시나리오에 따라 쉽게 이해하고 구현할 수 있도록 라이브러리 문서에 완전한 엔드 투 엔드 가이드가 제공되면 좋을 것입니다!

감사합니다.

CC: @fxsaber

 
비표준 방식으로 달력 월의 틱 수를 구합니다.
#include <fxsaber\MultiTester\MTTester.mqh> // https://www.mql5.com/ko/code/26132

#define  PRINT(A) Print(#A + " = " + (string)(A));

void OnStart()
{
  MqlTick Ticks[];
  
  // 한 달 동안의 틱 수를 정기적으로 계산합니다.
  PRINT(CopyTicksRange(_Symbol, Ticks, COPY_TICKS_ALL, D'2025.08.01' * 1000, D'2025.09.01' * 1000 - 1));
  
  // 비표준 방식의 월별 틱 수입니다.
  PRINT(MTTESTER::GetAmountFileMonthTicks(D'2025.08.01'));
}


결과.

CopyTicksRange(_Symbol, Ticks, COPY_TICKS_ALL, D'2025.08.01' * 1000, D'2025.09.01' * 1000 - 1) = 10820615
MTTESTER::GetAmountFileMonthTicks(D'2025.08.01') = 10820615