본문 바로가기
트레이딩

메타트레이더 5. 전략 백테스팅. Strategy Tester.

by i.got.it 2019. 5. 19.

 

 

 

개요

 
 
MT5 에서 EA 를 과거 데이터에 시험적용하여 매매 전략 평가 하는 수단 활용법. 
 
본 글에서는 Strategy Tester 가장 기본적인 사용법이 정리된다. 
 
예로 사용되는 전략은 MT5 설치시 기본 제공되는  EA 인 MACD Sample 을 예로 한다. 
 
MT5 메뉴의 View -> Strategy Tester 클릭하여 뜬 창에서 EA 백테스팅이 모두 진행된다. 
 

Strategy Tester 특징.

- EA 와 Indicator 를 Strategy Tester 에서 시험가능하다.
- 계산처리는 멀티스레드로 작동되며, 컴퓨팅 에이전트 (계산처리기) 기반 실행된다. 
- 컴퓨팅 에이전트는 병렬처리 가능하다. 
- 컴퓨팅 에이전트는 "원격 에이전트"에 무제한 연결가능하다. 
- 컴퓨팅 에이전트는 "MQL5 클라우드 네트워크기반 에이전트" 활용 가능하여 방대한 계산도 빠르게 처리가능.
 
 
   

 

 

 

Stratgey Tester 기본활용.

 
 
Strategy Tester 실행시켜 EA 지정하고 백테스팅 하기. 


1. MT5 실행하여 메뉴 View -> Strategy Tester 클릭하여 실행시킨다. 
2. Strategy Tester 의 탭 Settings 에서 설정하고 버튼 Start 클릭.
버튼 Start 눌렀을때 선택한 시험구간의 데이터가 없는 경우엔 신규다운로드 부터 먼저 진행된후 데이터 다운로드 완료되면 전략 시험 진행된다.










 

Visualization 선택한 경우.

Strategy Tester 의 탭 Settings 에서 Visualization 을 선택하여 버튼 Start 클릭하면 새창이 뜨면서 좀더 실감나는 매매 상황을 보여준다. 




  
   

 

 

 
 

Strategy Tester 셋팅 상세 설명. 

 
 
Strategy Tester 의 탭 셋팅 상세 설명. 
 








Tick generation mode 선택. 

- 상기 그림에서 1번 부분. 
 


개념이해. 
 
1. 메타트레이더의 EA는 매번의 Tick 마다 계산 및 주문여부 처리하게되어있다. 즉, EA코드에서의 함수 OnTick() 내부.
 
2. EA를 과거데이터에 적용하여 시험하려고 하는 경우 tick 데이터가 필요하다. 
 
3. 통상 과거데이터 저장되어있는 것은 대부분이 Bid 가격기준 캔들의 시, 고, 저, 종 4개의 가격과 "Tick Volume" 데이터만 저장되어있다
 - 주의사항 FX마진 시세 데이터에서 Tick Volume 은 거래량 아니며, 해당 봉 시간 내에서의 tick count 총 수량을 의미한다. 
 - tick count +1 의 개념 정의 : tick 챠트에서 Ask price , Bid price 2개 중 1개의 가격이라도 변경되면 tick 데이터 갱신되고 tick count +1 됨. 
 
4. 상기 3과 같은 tick 정보 없는 과거 데이터를 이용하여 EA 를 시험하기 위해서는 캔들과 거래량데이터로부터 틱 데이터를 생성해야 전략 시험가능하다. 
 
5. 상기 4를 위하여 메타트레이더에서는 틱 데이터를 가상으로 생성하여 전략 시험시 활용한다. 
- tick generation mode  의 제조사 도움말 : https://www.metatrader5.com/en/terminal/help/tick_generation#tick_mode


6. 전략 시험시 과거 데이터로 틱 데이터가 있는 경우 가장 실제와 유사한 전략 시험이 가능하다. 


메타트레이더에서는 틱 생성방식에서 총 5개의 옵션이 있다. 
  • Every tick 
  • Every tick based on real ticks
  • 1 minute OHLC 
  • Open prices only
  • Math calculations 
 

Every tick 

- 캔들가격과 Volume 정보로 틱 을 가상 생성하는 것. 
 
Every tick based on real ticks
- 틱 데이터를 에뮬레이션 하지 않고, 실제 시장에서의 과거 틱 데이터를 이용하는 것이다. 메티트레이더에서 계좌 연결하여 사용중인 브로커에서 저장해둔 틱데이터를 활용하는 것. 초기 시험에 데이터 다운로드 에 많은 시간이 소요될 수 있다. 
 

1 minute OHLC 

- 1분바의 시, 고, 저, 종가 총 4개 틱 만 생성된다. 
- tick 생성순서 : 양봉인 경우 시 -> 저 -> 고 -> 종 , 음봉인 경우 시->고->저->종. 
 

Open prices only 

- 바의 시가 1개만 tick 생성된다. 
 

Math calculations 

- 이 모드에서는 전략 평가시 과거 데이터를 다운로드 하지 않고 틱데이터 생성도 되지 않는다. 
- EA 코드내의 함수 OnInit(), OnTester(), OnDeinit() 만 호출된다. EA를 수학적 처리 용도로 활용할때 사용하는 모드.  
 
 
추가정보.  
Every Tick, 1minute OHLC, Open price only 의 비교 : https://www.mql5.com/en/articles/239
 
   

 

 
 
 
 

 

연관 외부링크. 

제조사 제공 백테스팅 도움말 : https://www.metatrader5.com/en/terminal/help/testing

 

 

 

 

 

 

profits in pips for faster calculations <-  신뢰 불가한 최악의 전략 평가 모드임. 

상기 설명한 것은  과거 버전의 MT5 인데 이후 추가된 기능 중에 사용자 혼선 일으키는 기능이 추가되었다. 

아래 붉은 줄 친 기능인데 체크한 경우 빠른 계산 처리 한다는 것이다 

 

해당 기능 설명문을 보면 아래와 같다. 빠르게 대충 평가해본다는 취지의 기능인데... 이것 체크하고 나온 결과 절대 신뢰 못하는 결과 보여준다.   쓸데없는 기능 추가된것임. 틀려도 적당히 틀려야 활용하지... 

 

빠른 계산한다는 점은 좋겠다만  체크하고 시험해보면 대부분의 전략의 실적이 너무 좋게 나오는 경우가 많다. 절대 실전에서는 달성불가능한 허구의 실적을 보여준다. 

 

투자원금 100달러로 1개월에 5천달러 수익 낸것처럼 보여줌. 

 

체크 하지 않고 전략 시험 해보면 아래처럼 나온다. 동일 전략을 실전매매 시험해보면 유사한 결과 나온다. 

투자원금 100달러로 1개월에 14달러 수익. 

 

profits in pips  기능 시험해본 결론 

profits in pips  이것 체크한 상태의 시험결과 절대 신뢰불가.

 

혹은 활용한다면 수익 못내는 전략 걸러내는 용도로 활용해도 되겠다.

profits in pip 체크한 상태로도 전략 시험 결과 우상향 안나온다면 그냥 버리면 됨. 해당 전략 개선의 여지가 없다고 판단해도 됨.  

  

 

 

 

 

 

 

연관 

 

 

메타트레이더 5. 체계정리. 활용법/지식

MetaTrader 5  메타트레이더 5 , 메타에디터, MQL5 활용정보 체계정리. 본 글에서 주요 정리대상 정보  1. 메타트레이더 5 사용법.2. MQL5 언어 기반 "직접 코딩"하여 메타프레이더5에서 자동매매 달성

igotit.tistory.com

 


첫 등록 : 2018.08.19

최종 수정 : 2024.09.12

단축 주소 : https://igotit.tistory.com/1805


 

댓글



 

비트코인




암호화폐       외환/나스닥/골드         암호화폐/외환/나스닥/골드
     
현물 |선물 인버스 |선물 USDT       전략매니저(카피트레이딩)         프랍 트레이더 온라인 지원가능. MT4,MT5