다중 통화 EA 백테스팅

 

저는 현재 MT5 전략 테스터에서 다중 통화 쌍 EA를 백테스트하고 있으며 다른 통화 쌍 에 연결할 때 다른 결과를 얻습니다. EA는 AUDUSD와 GBPCHF에서 거래됩니다.

AUDUSD에 첨부하면 10k 이익을 얻습니다.

GBPCHF에 붙이면 30,000 이상의 이익을 얻습니다.

USDCHF에 첨부하면(USDCHF를 따를 때 OnTick() 함수가 AUDUSD 및 GBPCHF 변경에 모두 반응할 것이라고 생각했습니다) 약 17k 이익을 얻습니다.

OnTick() 함수를 사용하는 문제인가요? 아니면 다중 통화 EA를 백테스트하는 데 숨겨진 문제가 있습니까? 아니면 내 코드에 약간의 혼란이 있습니까?

 
enivid :

저는 현재 MT5 전략 테스터에서 다중 통화 쌍 EA를 백테스트하고 있으며 다른 통화 쌍에 연결할 때 다른 결과를 얻습니다. EA는 AUDUSD와 GBPCHF에서 거래됩니다.

AUDUSD에 연결하면 10k 이익을 얻습니다.

GBPCHF에 붙이면 30,000 이상의 이익을 얻습니다.

USDCHF에 첨부하면(USDCHF를 따를 때 OnTick() 함수가 AUDUSD 및 GBPCHF 변경에 모두 반응할 것이라고 생각했습니다) 약 17k 이익을 얻습니다.

OnTick() 함수를 사용하는 문제인가요? 아니면 다중 통화 EA를 백테스트하는 데 숨겨진 문제가 있습니까? 아니면 내 코드에 약간의 혼란이 있습니까?

여기에 코드를 복사하면 더 좋습니다. 아마도 도움이 될 것입니다.
 
코드는 별로 중요하지 않습니다. 모든 거래가 두 개의 사전 정의된 통화 쌍에 대해 수행되고 모든 거래가 모든 틱이 아닌 새 막대 열림 시에도 수행되는 경우 테스터가 첨부된 통화 쌍 에 대해 차이를 만드는 이유는 무엇입니까?
 
enivid :

코드는 별로 중요하지 않습니다. 모든 거래가 두 개의 사전 정의된 통화 쌍에 대해 수행되고 모든 거래가 모든 틱이 아닌 새 막대 열림 시에도 수행되는 경우 테스터가 첨부된 통화 쌍에 대해 차이를 만드는 이유는 무엇입니까?

"온틱" 기능 은 차트 화폐만 가능한가요? 99%라고 말씀드리고 싶습니다. 더 정확한 눈금을 얻기 위해 1초마다 따옴표를 새로 고치는 무한 루프를 만들 수 있다고 생각합니다. 이것은 응용 프로그램의 전체 구조를 변경합니다.

 
enivid :

코드는 별로 중요하지 않습니다. 모든 거래가 두 개의 사전 정의된 통화 쌍에 대해 수행되고 모든 거래가 모든 틱이 아닌 새 막대 열림 시에도 수행되는 경우 테스터가 첨부된 통화 쌍에 대해 차이를 만드는 이유는 무엇입니까?

OnTick() 대신 OnBookEvent()를 시도해야 합니까? - OnTick()은 현재 기호 틱이 도착할 때만 트리거됩니다.

예약 이벤트

OnBookEvent() 함수는 BookEvent 핸들러입니다. BookEvent는 Depth of Market이 변경될 때만 Expert Advisors에 대해 생성됩니다. void 유형이어야 하고 문자열 유형의 매개변수가 하나 있어야 합니다.

무효의   OnBookEvent ( const   문자열 기호 );

모든 기호에 대한 BookEvent 이벤트를 수신하려면 MarketBookAdd() 함수를 사용하여 이 기호에 대한 이러한 이벤트를 수신하도록 사전 구독하기만 하면 됩니다. 특정 기호에 대한 BookEvent 이벤트 수신을 취소하려면 MarketBookRelease() 를 호출하십시오.

다른 이벤트와 달리 BookEvent 이벤트는 브로드캐스트됩니다. 즉, 하나의 Expert Advisor가 MarketBookAdd를 사용하여 BookEvent 이벤트 수신을 구독하면 OnBookEvent() 핸들러가 있는 다른 모든 Expert Advisor가 이 이벤트를 수신합니다. 따라서 const string& symbol 매개변수로 핸들러에 전달되는 기호 이름을 분석해야 합니다.

 

동일한 문제가 발생합니다. 다중 통화 EA를 백테스트하는 중 전략 테스터 패널에서 선택한 기호에 따라 완전히 다른 동작이 나타납니다.

이것은 매우 귀찮습니다. 로쉬? 아무도? 댓글 부탁드려도 될까요?

온 틱이 선택한 차트에만 적용된다 해도 엔비와 나 모두 새로운 바를 여는 일을 하고 있다. 제 경우에는 일일 막대를 사용하므로 다양한 통화로 된 새 막대의 오픈 틱이 다른 시간에 발생하더라도 제가 경험한 것과 같은 급격한 차이는 발생하지 않아야 합니다.

명백한 이유로 내 EA를 포함하지 않습니다. https://www.mql5.com/en/articles/105 에 게시된 EA와 동일한 문제가 있는지 봅시다.

다중 통화 EA 구축에 성공하고 특히 이러한 불일치로 고통받지 않는 사람의 소식을 듣게 되어 매우 기쁩니다.

Creating an Expert Advisor, which Trades on a Number of Instruments
  • 2010.07.08
  • Nikolay Kositsin
  • www.mql5.com
The concept of diversification of assets on financial markets is quiet old, and has always attracted beginner traders. In this article, the author proposes a maximally simple approach to a construction of a multi-currency Expert Advisor, for an initial introduction to this direction of trading strategies.
 
investeo :

OnTick() 대신 OnBookEvent()를 시도해야 합니까? - OnTick()은 현재 기호 틱이 도착할 때만 트리거됩니다.

예약 이벤트

OnBookEvent() 함수는 BookEvent 핸들러입니다. BookEvent는 Depth of Market이 변경될 때만 Expert Advisors에 대해 생성됩니다. void 유형이어야 하고 문자열 유형의 매개변수가 하나 있어야 합니다.

무효의   OnBookEvent ( const   문자열 기호 );

모든 기호에 대한 BookEvent 이벤트를 수신하려면 MarketBookAdd() 함수를 사용하여 이 기호에 대한 이러한 이벤트를 수신하도록 사전 구독하기만 하면 됩니다. 특정 기호에 대한 BookEvent 이벤트 수신을 취소하려면 MarketBookRelease() 를 호출하십시오.

다른 이벤트와 달리 BookEvent 이벤트는 브로드캐스트됩니다. 즉, 하나의 Expert Advisor가 MarketBookAdd를 사용하여 BookEvent 이벤트 수신을 구독하면 OnBookEvent() 핸들러가 있는 다른 모든 Expert Advisor가 이 이벤트를 수신합니다. 따라서 const string& symbol 매개변수로 핸들러에 전달되는 기호 이름을 분석해야 합니다.

OnBookEvent()를 사용해 보았지만 단순히 작동하지 않습니다(적어도 백 테스트에서는). 두 쌍 모두에 대해 OnInit() 함수에서 MarketBookAdd()를 사용했습니다.
 

다음은 예입니다. https://www.mql5.com/en/articles/105 에서 TEMA EA를 사용하면 다음과 같은 다양한 동작이 나타납니다.

EA exp_tema_en.mq5와 지표 multistochastic_en.mq5만 있으면 됩니다.

이 예에서는 첨부된 매개변수 세트 파일을 사용했습니다. EA는 EURUSD, USDCHF 및 USDJPY 쌍을 거래합니다(이 매개변수 사용).

EURUSD에 첨부하면

EURUSD에 첨부될 때의 자기자본

USDCHF에 연결할 때 얻을 수 있습니다

usdchf

그런 다음 USDJPY로 우리는

usdjpy

더 좋은 점은 AUDUSD에서 EA를 실행할 때 결과입니다.

오더스드

동일한 EA, 동일한 기간(H1), 동일한 거래 쌍, 동일한 날짜(2009.01.01-2009.03.01).

그래야만 하는 걸까? 만약 그렇다면 누군가 우리에게 이것의 의미가 무엇인지 말해 줄 수 있습니까?

다중 통화 백테스팅/최적화를 할 준비가 되었습니까?

Creating an Expert Advisor, which Trades on a Number of Instruments
  • 2010.07.08
  • Nikolay Kositsin
  • www.mql5.com
The concept of diversification of assets on financial markets is quiet old, and has always attracted beginner traders. In this article, the author proposes a maximally simple approach to a construction of a multi-currency Expert Advisor, for an initial introduction to this direction of trading strategies.
 
trendick :

다음은 예입니다. https://www.mql5.com/en/articles/105 에서 TEMA EA를 사용하면 다음과 같은 다양한 동작이 나타납니다.

EA exp_tema_en.mq5와 지표 multistochastic_en.mq5만 있으면 됩니다.

이 예에서는 첨부된 매개변수 세트 파일을 사용했습니다. EA는 EURUSD, USDCHF 및 USDJPY 쌍을 거래합니다(이 매개변수 사용).

EURUSD에 첨부하면


USDCHF에 연결할 때 얻을 수 있습니다


그런 다음 USDJPY로 우리는

더 좋은 점은 AUDUSD에서 EA를 실행할 때 결과입니다.

동일한 EA, 동일한 기간(H1), 동일한 거래 쌍, 동일한 날짜(2009.01.01-2009.03.01).

그래야만 하는 걸까? 만약 그렇다면 누군가 우리에게 이것의 의미가 무엇인지 말해 줄 수 있습니까?

다중 통화 백테스팅/최적화를 할 준비가 되었습니까?




안녕하세요, 동일한 문제(다른 결과)가 있었지만 IsNewBar()로 해결했습니다.

나는 baq에 동의합니다. 그래서 우리는 무엇을 해야 합니까? 따옴표를 얻으면 이 함수는

IsNewBar(일부 기호)인 경우에만 ㅋ ㅋ ㅋ

내 EA의 경우 다른 기호에 연결된 동일한 결과를 얻었습니다.

내가 기능을 얻은 기사는 여기에 있습니다 : https://www.mql5.com/en/articles/105

Creating an Expert Advisor, which Trades on a Number of Instruments
  • 2010.07.08
  • Nikolay Kositsin
  • www.mql5.com
The concept of diversification of assets on financial markets is quiet old, and has always attracted beginner traders. In this article, the author proposes a maximally simple approach to a construction of a multi-currency Expert Advisor, for an initial introduction to this direction of trading strategies.
 
Ali2e7a :

안녕하세요, 동일한 문제(다른 결과)가 있었지만 IsNewBar()로 해결했습니다.

나는 baq에 동의합니다. 그래서 우리는 무엇을 해야 합니까? 따옴표를 얻으면 이 함수는

IsNewBar(일부 기호)인 경우에만 ㅋ ㅋ ㅋ

내 EA의 경우 다른 기호에 동일한 결과를 첨부했습니다.

내가 기능을 얻은 기사는 여기에 있습니다 : https://www.mql5.com/en/articles/105

Ali, 위에서 언급한 예는 귀하가 언급한 EA이며 귀하가 언급한 IsNewBar() 함수 의 소스이며 이미 사용하고 있습니다.

이것을 어떻게 설명합니까?

 

https://www.mql5.com/en/forum/1520 에서 다중 통화 동기화 스레드를 참조하십시오.

Multi-Currency synchronization
  • www.mql5.com
Here some tests results and below details:.