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

터틀 트레이딩 2 - 매매 신호 발생 시키기

페이지 정보

본문

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


지금까지의 스크립트 입니다.


지표(study)와 전략(strategy)의 차이 중 하나가 매매 신호를 발생시켜 백테스트를 할수 있다는 것입니다.

지표에서는 불가능하고 전략에서만 백테스트가 가능합니다.


매매에서는 2개의 함수를 사용할것입니다.

진입(매수, 매도)은 strategy.entry, 청산은 strategy.close 를 사용합니다.


strategy.entry(id, long, qty, limit, stop, oca_name, oca_type, comment, when)


strategy.close(id, when, comment, qty, qty_percent)


함수의 원형은 위와 같습니다.



[매수 주문]


매수 주문을 발생시키기 전에 언제 매수를 하는지, 매수 조건을 생각해봐야합니다.

S1은 주가가 20일 최고점을 돌파한 다음날 매수입니다.

주가가 20일 최고점을 돌파하면 다시 20일 최고점이 갱신되므로 고가(high)와 20일 최고점(s1_highest)은 같은 값을 같게 됩니다.

이것을 코드로는 이렇게 표현할 수 있습니다.

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


S1 매수 진입 코드를 plot 함수 바로 위해 쓰고 저장을 누릅니다.


dbfafb5a8e02941b7439a8883eb36a4b_1588667212_41.png
스크립트 버전이 올라가고 자동으로 전략테스터가 선택됩니다.

전략테스터가 자동으로 선택되지 않았다면, 상관없습니다.

전략테스터를 선택해주세요.


아직 표시되는 것은 없습니다.

차트에도 변화가 없죠.

전략테스터의 오버뷰, 성과요약, 거래목록을 눌러봅시다.


dbfafb5a8e02941b7439a8883eb36a4b_1588667212_54.png
거래목록을 눌러보면 뭔가 하나가 생긴것을 볼수 있습니다.

하나의 거래가 생겼고, 엔트리 롱(롱 진입, 매수 진입), 주문 이름은 S1 Long(우리가 앞서 지정했었죠.), 날짜는 2018년 12월 25일, 가격은 4033.0 이렇게 나타났습니다.

엑시트 롱(롱 청산, 매수 청산)은 아직 다른 정보가 없고, 열기라고만 되어있습니다.


이것은, 2018년 12월 25일에 4033.0달러로 S1 Long이라는 이름을 갖는 매수 주문이 발생했다는 의미입니다.

그리고, 엑시트 롱이 열린 상태이므로, 이 S1 Long 주문은 아직 청산되지 않고 진행중이다. 열려있다. 마감되지 않았다라는 의미가 됩니다.

매수만 발생시켰고, 청산은 아직 구현하지 않았으므로 당연한 결과입니다.

청산이 이루어지지 않았으니, 다음 매수 조건이 되더라도 진입할 수 없기 때문에 매수 주문도 1개만 표시된것이죠.


차트를 2018년 12월 25일로 이동해보면 파란색 화살표가 표시되고, S1 Long, +1 이렇게 나타난 것을 볼 수 있습니다.

윗쪽 파란 화살표는 매수라는 의미이고요. S1 Long은 주문의 이름, +1은 주문 수량입니다.

즉, 2018년 12월 25일에 비트코인 1개를 4033달러에 매수했다는 의미가 됩니다.


그리고, 매수 주문이 우리가 생각한 20일 최고점 돌파한 다음날에 생겼는지 꼭 확인해볼 필요가 있습니다.

2018년 12월 24일에 20일간의 최고점 라인(녹색선)을 갱신했기 때문에 그 다음날 화살표가 생긴것을 천천히 살펴보시기 바랍니다.



[청산 주문]


매수를 했으니 청산 주문을 내서 이익이든 손실이든 봐야겠죠.

그래야 다음 매수 조건에서 매수 주문을 또 낼 수 있습니다.


그러면, 언제 청산 주문을 내야할까요?

매수 주문과 똑같은 방법으로 생각해보면 됩니다.


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


파인 에디터로 돌아가서 S1 청산 주문 코드를 매수 진입 코드 아래에 써주고 저장을 누릅니다.



[백테스트 결과]


dbfafb5a8e02941b7439a8883eb36a4b_1588669979_3.png

차트에 변화가 생겼을 것입니다.

최신 날짜로 이동해보겠습니다.

파란색 윗쪽 화살표가 몇개 생겼고, 보라색 아랫쪽 화살표도 생겼습니다.


새로 생긴 보라색 화살표가 청산 주문 신호가 됩니다.

청산 주문 신호도 우리가 생각한 조건에 맡게 발생했는지, 차트를 확대하여 살펴보시기 바랍니다.

10일간의 최저점을 갱신(빨간색 선이 내려가고)한 다음날에 보라색 화살표가 생깁니다.


과거에도 빨간색 선이 내려가는 구간이 있는데, 왜 보라색 화살표가 생기지 않았을까요?

청산 주문은 매수 주문이 우선 발생하여 매수 상태일때만 청산 주문이 나갈 수 있기 때문입니다.

그 전에 매수된 것이 없기 때문에 10일 최저점을 갱신하더라도 청산 주문이 나갈 수 없는 조건일때는 아무 신호도 발생하지 않습니다.


전략테스터의 오버뷰탭을 보면 수익 곡선을 볼 수 있습니다.

순수익에 대한 그래프가 됩니다.

파란색이 누적 순수익에 대한 그래프, 빨간색이 누적 손실에 대한 그래프입니다.

우리는 파란색 그래프가 우상향하는 결과를 보여주는 전략을 짜야 돈을 벌 수 있는 것입니다.


승률과 수익 팩터(총 누적 수익/총 누적 손실)가 높으면 더 우수한 전략이라고 할 수 있습니다.

최대 손실폭까지 낮추면 금상첨화입니다.


dbfafb5a8e02941b7439a8883eb36a4b_1588669979_43.png
성과 요약 탭에서는 좀더 자세한 수치들을 볼 수 있습니다.


dbfafb5a8e02941b7439a8883eb36a4b_1588669979_56.png
거래 목록 탭에서는 각각의 매매에 대한 진입 가격과 날짜, 수익, 누적 수익, 최대 수익, 최대 손실등을 볼 수 있습니다.


지금까지의 결과로 보면 이 터틀 트레이딩 전략이 비트코인 일간 전략으로 좋은 결과를 내고 있다고 판단됩니다.

백테스트 기간 중의 승률도 50% 이상이고, 수익 팩터도 1 이상이고, 최대 손실 폭도 2%이니까요.


그런데, 위의 결과는 비트코인을 딱 1개씩만 매매했을때의 결과입니다.

실제로 우리는 소수점 단위로 매매를 하기도 하고, 수익으로 돈을 벌면 더 많은 수량을 매매하기도 합니다.

그럴때는 결과가 달라지지 않을까요?


1개씩이 아니라 내가 가진 자본금을 모두 투입하여 복리로 투자했을때의 결과를 어떻게 백테스트해 볼 수 있는지 다음시간에 계속 알아보겠습니다.

관련자료

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

+ 최근글


+ 새댓글


통계