저는 현재 MT5 전략 테스터에서 다중 통화 쌍 EA를 백테스트하고 있으며 다른 통화 쌍에 연결할 때 다른 결과를 얻습니다. EA는 AUDUSD와 GBPCHF에서 거래됩니다.
AUDUSD에 연결하면 10k 이익을 얻습니다.
GBPCHF에 붙이면 30,000 이상의 이익을 얻습니다.
USDCHF에 첨부하면(USDCHF를 따를 때 OnTick() 함수가 AUDUSD 및 GBPCHF 변경에 모두 반응할 것이라고 생각했습니다) 약 17k 이익을 얻습니다.
OnTick() 함수를 사용하는 문제인가요? 아니면 다중 통화 EA를 백테스트하는 데 숨겨진 문제가 있습니까? 아니면 내 코드에 약간의 혼란이 있습니까?
코드는 별로 중요하지 않습니다. 모든 거래가 두 개의 사전 정의된 통화 쌍에 대해 수행되고 모든 거래가 모든 틱이 아닌 새 막대 열림 시에도 수행되는 경우 테스터가 첨부된 통화 쌍에 대해 차이를 만드는 이유는 무엇입니까?
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 구축에 성공하고 특히 이러한 불일치로 고통받지 않는 사람의 소식을 듣게 되어 매우 기쁩니다.
- 2010.07.08
- Nikolay Kositsin
- www.mql5.com
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 매개변수로 핸들러에 전달되는 기호 이름을 분석해야 합니다.
다음은 예입니다. 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).
그래야만 하는 걸까? 만약 그렇다면 누군가 우리에게 이것의 의미가 무엇인지 말해 줄 수 있습니까?
다중 통화 백테스팅/최적화를 할 준비가 되었습니까?
- 2010.07.08
- Nikolay Kositsin
- www.mql5.com
다음은 예입니다. 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
- 2010.07.08
- Nikolay Kositsin
- www.mql5.com
안녕하세요, 동일한 문제(다른 결과)가 있었지만 IsNewBar()로 해결했습니다.
나는 baq에 동의합니다. 그래서 우리는 무엇을 해야 합니까? 따옴표를 얻으면 이 함수는
IsNewBar(일부 기호)인 경우에만 ㅋ ㅋ ㅋ
내 EA의 경우 다른 기호에 동일한 결과를 첨부했습니다.
내가 기능을 얻은 기사는 여기에 있습니다 : https://www.mql5.com/en/articles/105
Ali, 위에서 언급한 예는 귀하가 언급한 EA이며 귀하가 언급한 IsNewBar() 함수 의 소스이며 이미 사용하고 있습니다.
이것을 어떻게 설명합니까?
저는 현재 MT5 전략 테스터에서 다중 통화 쌍 EA를 백테스트하고 있으며 다른 통화 쌍 에 연결할 때 다른 결과를 얻습니다. EA는 AUDUSD와 GBPCHF에서 거래됩니다.
AUDUSD에 첨부하면 10k 이익을 얻습니다.
GBPCHF에 붙이면 30,000 이상의 이익을 얻습니다.
USDCHF에 첨부하면(USDCHF를 따를 때 OnTick() 함수가 AUDUSD 및 GBPCHF 변경에 모두 반응할 것이라고 생각했습니다) 약 17k 이익을 얻습니다.
OnTick() 함수를 사용하는 문제인가요? 아니면 다중 통화 EA를 백테스트하는 데 숨겨진 문제가 있습니까? 아니면 내 코드에 약간의 혼란이 있습니까?