본문 바로가기
트레이딩

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

by 리치굿맨 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

 

 

 

 

 

 

본 글 포함된 상위 정리글.

 

메타트레이더 5 체계정리. 활용법/지식 :  http://igotit.tistory.com/1775

 

 

 


첫등록 : 2018년 8월 19일 

최종수정 : 2019년 5월 19일

 

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

 


 

댓글1

  • 알 수 없는 사용자 2019.08.03 02:48

    5는 비용설정(스프레드설정)이 없나요? 코딩으로 집어 넣어야 하는 건가요?
    답글


   
현물 |선물 인버스 |선물 USDT     현물 | 선물 USDT |봇제작툴/카피트레이딩     현물 |선물 인버스 |선물 USDT     선물 인버스 |선물 USDT