자동매매프로그램에 사용될 매매전략은 래리 윌리엄스(Larry R. Williams) 의 변동성돌파전략이다.

만약 읽으시는분이 트레이딩에 조예가 깊으시다거나, 엄청난 전략을 구상중이라면 굳이 이 전략을 살펴보지 않아도 된다. 나의 경우 이 전략을 선택한 이유는 대략 세가지가 있다.

1. 정말정말 간단해서 전략 구현에 필요한 코드가 매우 간략하다.
2. 이 프로그램을 만들려고 하던 당시, 코인/주식 광풍으로 매일같이 폭발하는 종목이 있었다.
3. 이유는 모르지만 인터넷에 참고자료가 널리고 널렸다

위와같은 이유들로 자동매매에 변동성돌파전략을 사용했다.

변동성돌파전략 프로세스에 필요한 값은 단 세가지다. 전날의 고가 ( H ) , 전날의 저가 ( L ) , 변동성상수 ( K )
1. Range = ( 전날의 고가 H - 전날의 저가 L)
2. Target = 오늘의 시가 + ( Range * 변동성상수 K )
3. 계속해서 현재가를 감시하다가 Target Price 이상으로 거래가 될 경우 전량 매수
4. 현재 거래 기준봉의 거래시간이 끝나는 때 전량 매도

변동성 돌파전략은 위의 프로세스를 따른다. 여기서 사용자가 선택하는것은 오로지 변동성상수 K 뿐이고 Target Price 를 넘어갈 경우 전량매수, 거래시간의 끝에 전량매도의 큰 틀은 기계적으로 지켜야한다.

변동성돌파전략은 흔히 상승장, 그 중에서도 거래량이 급증하는 종목에서 유효하나, 하락장 및 횡보장에서는 역망치형이나 유성형 캔들의 움직임에 의해서, 그리고 수수료에 의해서 수익을 올리기가 어렵다.

 

변동성돌파전략 희망편

옆의 이미지는 비트코인의 2021년 7월 21일 13시 경의

1시간봉 그래프이다.
만약 변동성돌파전략을 사용했다면, 계속 감시하며 종목을 보유하고있지 않으므로 그래프 앞부분의 큰 손실을 피한다.
동시에 노랗게 표시한 부분의 고가는 29,924$ 저가는 29,787$ 이므로 다음 Target 가격은 0.5 의 K 를 설정하여
다음 시가 29,855$에 68.5$ 를 더한 29,923.5$ 이다.

따라서 13-14시 사이에 Target 가격에 도달, 전량 매수 후 14시가 되는 순간 전량 매도하여 약 한시간만에 단 한번의 거래로 2.5%의 수익을 올린다.

 

 

 

 

 



변동성 돌파전략 절망편

옆의 이미지는 2017/11/28 일경의 비트코인 일봉 그래프이다.만약 이때도 당신이 변동성 돌파전략을 사용하고있었다면 전날의 고가 9,968$ - 전날의 저가 9,582$ =  Range 386$
를 통해 K = 0.5,  Target Price 10,070$ 을 기점으로 전량 매수했을 것이다.


17/11/29일의 고가는 11,395$ 로 이미 Target Price를 상회하므로 당신은 구매했을것이고 이 날의 종가 9,824$에 전량 매도하여 하루, 한번의 거래만에 -2.5% 의 손해를 보았을것이다. 정작 전날에 비해서 하락한 값은 -0.4% 에 불과함에도, 당신은 기계적 매수 매도로 인해 6배에 달하는 실현손해를 보게 된 것이다.

 

 

 

 

 

위의 두 상황은 조금 극단적 예시라고 할 수 있겠다. 흔히 횡보장에서는 전날의 고가 저가의 차이가 너무 작아서 시가에서 조금만 올라고 전량 매수가 되버리기때문에 수수료만큼을 날리거나, 0.5% 내외의 손익을 계속 보아서 상당히 뼈아프다. 또한 하락장에서의 유성형의 하락의  경우 더욱 큰 손해로 이어지기때문에, 이 경우 스탑로스 또한 코딩하는것이 정신건강에 이롭다고 할 수 있다.

물론 위의 시뮬레이션에서도 만약 K 값을 다르게 두었다면 손해가 더 작아졌을수도, 또 수익이 더 커졌을 수도 있다. 일반적으로 추천되는 K 값은 0.5 이지만 종목에 따라서, 기준봉의 시간에 따라서 최적의 K 값은 다르게 나타난다.
변동성돌파전략에서 우리가 바꿀 수 있는것은 오로지 변동성상수 K 뿐이다. 따라서 적절한 K 값을 지정하는것이 우리의 돈복사에 필연적이라고 할 수 있겠다.


[[ 마무리 ]]

우리는 어느 새 당연해져버린 배달음식의 단돈 약 2,3천원의 배달비를 놓고도 깐깐하게 비교를 하곤 한다. 하지만 나의 투자수익을 결정지을 K 값을 우리집 고양이 삐삐에게 골라달라고 할 순 없는 노릇 아니겠는가? 그렇다고 추천되는 0.5,1만을 사용하자니 내가 거래하고자 하는 그래프와는 맞지 않는 경우도 빈번하다.
따라서 해당 종목에서의 최적 K 값을 찾기 위해서 해당 종목의 거래데이터를 받아와 변동성 돌파전략 백테스팅을 실행해보고, K값에 변화를 주어 가장 큰 수익을 내준 K 값을 사용하고자 한다. 여기서 이 백테스팅은 Pandas 와 같은 데이터프레임 라이브러리를 통해 수행 할 수 있지만, 앞으로 나는 MS office 의 엑셀과 openpyxl 라이브러리를 이용하여 엑셀로 만들어 찾아내고자 한다.

P.S. 저는 절대 자동매매를 추천드리지 않습니다. 자동매매가 돈이 됐으면 저도 이렇게 취업준비를 하고 있지 않겠지요? 재미로만 만들고 구동해보시길 추천드립니다.

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기