파인스크립트 심화반
분류 전략강좌

터틀 트레이딩 8 - 백테스트 기간 설정

페이지 정보

본문

지금까지 스크립트 내용을 정리하면 아래와 같습니다.


...중략 (심화반 이상만 볼 수 있습니다.)...



백테스트 기간을 설정할 수 있다면, 특정 기간내의 결과만을 쉽게 분석할 수 있습니다.

가령 하락장이 시작할때부터 끝날때까지 백테스트를 진행했을때도 성적이 괜찮았다면 하락장 방어에도 효과적인 전략이라고 생각할 수 있습니다.


모든 기간에서 테스트를 할 수 있는 것은 아니고, 트레이딩 뷰에서 제공해주는 시간내에서만 가능합니다.

시간봉 단위에서는 대략 2년 정도의 기간만을 테스트할 수 있습니다.

일봉 이상 단위라면 수년, 수십년까지도 기간이 제공될 수 있습니다.

이는 종목마다 다를 수 있으므로 직접 확인해보시기 바랍니다.


터틀 트레이딩 강좌를 진행하는 동안, 기본반에 기간 설정에 대한 강좌를 올렸습니다.

http://kimchulho.com/pineclass/17 


기간 설정에 있어서 기초 지식은 위 강좌를 보시기 바랍니다.


그럼, 바로 구현해보겠습니다.


...중략 (심화반 이상만 볼 수 있습니다.)...


기간 설정에 필요한 부분을 전체 복사해왔습니다.

앞으로 어떤 전략에 기간 설정이 필요할 경우 위 소스를 그대로 복사해서 넣으면 됩니다.

어떤 자리에 넣는지가 중요하겠죠.

매수, 매도와 같은 주문이 일어나는 부분 바로 위에 넣으면 됩니다.


...중략 (심화반 이상만 볼 수 있습니다.)...


strategy.entry 함수 바로 위에 붙여넣었습니다.

if (testPeriod) 아래에 주문, 청산 함수가 오면 됩니다.

if 문에 종속시키기 위해서 strategy.entry와 strategy.close 함수는 4칸 들여썼습니다. 탭으로 띄워도 됩니다.



[주석]


구분을 위해서 기간 설정이 시작되는 부분에 // Backtest period 이렇게 주석문을 달았습니다.

주석은 스크립트 동작에는 아무런 영향이 없는 코드인데, 사람이 보기 위한 목적으로 간단한 메모라고 보시면 됩니다.

// 이렇게 슬래시 2개를 연달아 쓰고 그 다음에 메모를 쓰면 됩니다.

실제로 동작하는 코드 앞에는 쓰면 안되겠지요.


//startYear   = input(1,      "Start year")


이렇게 동작하는 코드 앞에 슬래시 2개를 쓰면 주석으로 인식되어서, 저 코드는 실행되지 않습니다.

당연히 에러가 발생할것입니다.


startYear   = input(1,      "Start year") // Backtest period


이런식으로 코드 뒤에 주석을 다는 것은 가능합니다.

간단하거나 짧은 스크립트는 주석을 달지 않아도 어떤 스크립트인지 금방 파악이 되지만,

길거나 다른 사람이 만든 스크립트를 파악하고 동작을 해석하는데에는 시간이 걸릴 수 있습니다.

적절하게 주석을 달아놓으면 나중에 보더라도 금방 파악을 할 수 있습니다.



[결과 확인]


기간을 설정해서 제대로 동작하는지 보겠습니다.


8ac98712184b690f8b9b36dbb3a8a240_1590157653_47.png

전략테스터의 거래목록을 보시면 이 전략이 언제 처음 시작되는지 알 수 있습니다.

차트를 맨 앞쪽으로 이동시켜봐도 됩니다.


바이비트 비트코인 종목에 일간 터틀 트레이딩 전략은 2018년 12월 25일 부터 매매가 시작됩니다.

따라서 그 이전의 기간은 테스트 할 수 없습니다.

2017년 1월 부터 2017년 6월까지의 결과는 알 수 없는 것이죠.



8ac98712184b690f8b9b36dbb3a8a240_1590157652_95.png
기간을 2019년 6월 1일부터 2020년 3월 31일까지로 설정해보겠습니다.

 


8ac98712184b690f8b9b36dbb3a8a240_1590157652_38.png
배경색이 설정 기간에만 표시되므로 금방 결과를 알 수 있습니다.

2019년 6월부터 3월말까지 배경색이 표시되었습니다.

테스트 기간이 6월 1일부터지만, 매수 신호는 6월 17일부터 떴기 때문에 당연히 결과도 6월 17일부터 나옵니다.



8ac98712184b690f8b9b36dbb3a8a240_1590157651_74.png
해당 기간 동안 비트코인의 수익률보다 높은 수익률을 기록했습니다.

오버뷰 그래프 아래에 매수 후 보유 주식을 켜면 해당 기간 동안 비트코인을 사서 팔지 않고 가지고 있었을떄(바이 앤드 홀드)의 결과가 나옵니다.



8ac98712184b690f8b9b36dbb3a8a240_1590158435_21.png
시작 날짜는 위와 동일하고, 끝나는 날짜를 2월 5일로 바꿔봤습니다.

S1과 S2가 각각 1월 29일과 15일에 진입했는데, 2월 5일은 아직 포지션이 진행중이므로 청산되지 않고 열린 상태로 마감됩니다.

백테스트 결과는 완전히 청산이 끝난 6번째 거래까지만 결과가 나오는 것입니다.


이렇게해서 기간 설정이 끝났습니다.

관련자료

등록된 댓글이 없습니다.
전체 15건 / 1페이지

+ 최근글


+ 새댓글


통계