저번 포스팅에서 제작한 Volatility Stop (이하 VS) 과 Keltner Channel 을 이용하여 제작한 보조지표를 최적화 해보겠습니다. VS 와 켈트너 채널에는 여러 가지 변수가 들어가는데, 이 변수를 조작하여 보다 높은 수익률을 낼 수 있는 보조지표를 "초보적인" 수준에서 접근해보도록 하겠습니다!
정리
먼저 진입에 대한 부분과, 청산에 대한 부분은 그림으로 정리를 하고 넘어가겠습니다. 그리고 VS 와 켈트너 채널 전략에 대한 특성도 살짝 리뷰를 하고 넘어가도록 하겠습니다.
진입은 Keltner Channel 을 돌파하며 매수세가 생겼을 경우 진입을 합니다. 이때 VS 가 상승 추세를 가르키고 있어야 합니다.
청산은 가격이 VS 를 전환시키는 지점에서 나오게 됩니다. 수익이 될 수도, 손해가 될 수도 있습니다. 손절은 고점을 높일 때 마다 높아지며, 변동성이 낮아져도 높아지게 됩니다. 만약 변동성이 극심하게 줄어들면, 보조지표가 비추세라고 판단하며, 극도로 VS 가 높아지며, 자동으로 청산하게 됩니다.
수익률
이제 이 전략을 한 시간봉에 대하여, 보조지표에 대한 기본 계수들을 입력 후 수익률을 계산해보면,
위와 같은 수익률을 가지고 오게 됩니다. 리스크는 자본금 천불, 배팅 회당 천불로, 선형 배팅으로 진행하였습니다. (복리 X, 단리 Yes)
가장 이상적인 수익률은 "우상향" 하는 수익률 입니다.
그 전에 위 수익률이 분석된 부분에서 네 가지의 숫자에 대해 어느정도 이해를 해야합니다.
Net Profit: 얼마 벌었니~
위 예시에서는 37.55% 를 벌었다고 했습니다. 자본금을 천 달러로 시작했으니, 375.47% 를 번 것 이죠! 자본에 해당하는 Capital 아니라는 점! (저도 맨날 헷갈립니다 ㅋㅋ)
Total Closed Trades: 몇 번 진입했니~
보통 베테랑 트레이더 분들이 말씀하실때 거래 횟수는 적으면 적을 수록 좋다! 라고 말씀 하십니다. 하지만 보조지표를 이용하여 통계를 이용한 전략으로 수익를 내고자 하실 때에는 충분한 거래횟수가 나와야, 통계적으로 이점을 가지고 있는 전략이다 라는 점을 확인하실 수 있습니다.
예를 들어 3번 진입하여 3번 승리했을 경우 승률이 100%고, 100번 진입하여 100번 승리했을 경우도 승률이 100% 인데 어떤 전략을 더 신뢰할 수 있을 까요? 당연히 후자 입니다. 진입 횟수도 충분해야 하며, 이에 따른 승률/수익률을 분석해야 합니다.
Percent Profitable: 승률
이게 이제 가장 조심하셔야되는 부분입니다. 위 예시에서는 승률이 40.5% 임에도 불구하고 수익을 37%를 기록하였습니다. 즉, 승률이 50% 이상 나오지 않아도 충분히 수익을 내실 수 있으며, 보통 일반 투자자가 쉽게 따라하실 수 있는 전략들을 전부 50% 이하의 승률을 가지고 있습니다. (추세 추종 전략들) 50% 이상의 전략들은 기본적으로 모든 기회에 진입해야 하며, 노이즈를 끼고 트레이딩을 하여 성공시켜야 하기에, 훨씬 난이도가 어렵습니다.
승률 X 손익비 = 수익률
위 공식을 생각해보면, 승률과 손익비 둘 중 하나만 높다면 수익을 내실 수 있습니다. 즉, 승률은 트레이딩을 할 때 가장 중요한 요소가 아닙니다.
Max Drawdown: 최악의 경우 얼마를 잃었니~
위 기간 동안 116 번을 진입하여 최악의 경우 23.95% 만큼의 자본 손실을 기록했다고 합니다. 이제 리스크를 생각해줘야 하는 부분 입니다. 만약 회당 배팅금액을 2배로 늘리면 47% 가량의 자본 손실률을 기록했을 것 이며, 배팅 금액을 반으로 낮추면, 23% 정도의 최대 자본 손실률을 기록했을 것 입니다.
회당 진입 액수를 2천 달러로 올렸을 경우, 수익률도, 자본 손실률도 2배
회당 진입 액수를 5백 달러로 내렸을 경우, 수익률도, 자본 손실률도 0.5배
배팅 액수를 조정하여 리스크를 최소화/최적화 하는 부분에 대해서는 추후 포스팅에~ :)
(지루하고... 어렵고... 복잡하고.....)
변수 조작
이제 보조지표가 가지고 있는 변수들을 조작하여, 수익률을 극대화 해보겠습니다.
https://school.stockcharts.com/doku.php?id=technical_indicators:keltner_channels
이미 켈트너 채널만 해도, 변수가 ATR 주기, ATR 에 붙는 계수, EMA 주기, 세 개가 나오고, 만약 하단 채널과 상단 채널의 변수를 분리시켜주면 6개가 나옵니다.... 우리의 머리는.... ㅎㅎ....
VS 도 ... 크게 다르지 않습니다. ATR 주기, ATR 에 붙는 계수 두 가지가 나오는 군요.
매수 추세에서만 생각을 해본다면 켈트너 채널에서 3개, VS 에서 2개, 총 5 개의 변수가 나오게 됩니다.
하지만! 나는 루스터! 모든걸 간단하게 만들지. 켈트너 채널에서는 ATR 에 붙는 계수만, VS 에서도 ATR 에 붙는 계수만 조작하여 수익률을 최적화 하겠다!
고렇다면,
계수들을 조작하여 최고의 수익률을 내야 하니께~ 위와 같은 삼차원 형태로 나타낼 수 있습니다.
거기에 또! 3차원에 대한 연결된 미분 가능한 함수는 아니기에 (계수 조정하다보면 붕붕 뜹니다!) 내가 아는 방법으로는 최고 수익률을 내는 값을 못 찾기에 여기서 또 꼼수를 부려줍니다.
먼저 VS 계수 조작을 통하여 최고 수익률을 내는 값을 찾습니다.
그리고 조작된 VS 계수를 이용한 상태에서 Keltner Channel 계수 조작을 통하여 최고 수익률을 내는 변수 값을 찾습니다.
고렇게 하면, 정확한 값을 주진 않겠지만, 그냥 대충 값을 사용하는 것보다는 최적화된 값을 사용하실 수 있습니다.
3 차원에 대한 값이기에 최고 수익률일 가능성은 없습니다.
어느 피크에 대한 값을 구했는지 알려면 모든 변수에 대하여 위 작업을 해야하기 때문이죠.. ㅠㅠ
파이썬으로 가격을 집어 넣고, 할 작업을 코드화 하고, GA 로 최고의 수익률을 가지는 변수를 찾으라고 돌리면 2 변수 이상을 찾을 수 있긴 합니다! (저도 못해서 동생 찬스 씁니다 ㅎ헤헤헤헿 )
이제 방법은 배우셨으니.. 숙제로... 하시면 안되겠죠? ㅎㅎㅎ
이제 차트로 돌아와서 VS 는 input 으로 입력하였으니, 더블 클릭시 위와같이 계수를 UI 에서 조작할 수 있게 해주었습니다. 이걸 1부터 20 까지 넣어봅시다.
넣을 때 마다 Net Profit 이 변하는 것을 보실 수 있습니다. 이걸 기록해두세요! 엑셀로! 1부터 20 까지!
재미있는 결과가 나왔습니다!
그래프로 보는게 더 편하니께, 한 시간이라서 그런지 수익률이 손절이 길수록 높아집니다. 역시 존버는 승리하는 군요 ㅋㅋㅋㅋㅋ
켈트너 채널 변수 조정으로 값이 눈에 안띄게 변하지 않아, 변수를 VS 의 ATR 주기로 변경하였습니다!
손절 자체가 길어졌기에, 진입을 어디에서 하는지에 따라서는 크게 수익률이 변하지 않는 걸로 분석!
ATR 주기를 5 부터 100 까지 넣으면~
요런 데이터와 그래프가 나옵니다! 생각보다 조밀하게 나왔습니다.
고민해봐야 하는 피크는 세 군데 정도 있습니다. 10 주기, 70 주기, 95 주기 정도.
10주기
70 주기
95 주기
셋 다 수익률을 비슷하지만, 95 주기의 경우 적은 진입으로 더 큰 수익을 만들어냈다고 해석을 할 수 있는 반면, 신뢰도 측면에서는 10 주기가 더 많이 진입을 해서 수익을 냈으니... 여기부터는 개인의 취향에 들어가게 되겠죠? ㅎㅎ
질문, 댓글, 팔로우는 감사합니다!
새로운 아이디어, 종목 추천 등은 언제나 환영입니다!
Congratulations @roostermine! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :
You can view your badges on your Steem Board and compare to others on the Steem Ranking
If you no longer want to receive notifications, reply to this comment with the word
STOP
To support your work, I also upvoted your post!
Vote for @Steemitboard as a witness to get one more award and increased upvotes!
Congratulations @roostermine!
You raised your level and are now a Minnow!
Vote for @Steemitboard as a witness to get one more award and increased upvotes!
머신 러닝을 보는 것 같군요.
과거 자료로 최적화된 변수를 찾을 수 있으나 앞으로도 그럴거라는 보장은 없지만 그럴 것 같은 확률은 높은 것 같은...
하핫 동생이 머신러닝 쪽에서 일하고 있는건지 공부하고 있는건진 모르겠는데, 무슨 이야기 하다가 번뜩 변수 최적화 라는 아이디어가 떠올라서 그때 부터 쭈욱 최적화된 변수로 사용하고 있습니다!
물론 과거의 최고의 수익률이 미래의 최고의 수익률로 이어지진 않겠지만, 과거에 최고였던 것이 수익을 줄 가능성이 과거에 아무것도 아니였던 것이 수익을 줄 가능성보다 높기에 전 꾸준히 전략을 구성해보는 것 같습니다~ 변수 최적화 단계를 아무리 간단하게 만든다해도, 전략 구성 단계에서도 이미 경우의 수가 너무 많아서 하하하하 ...
오늘도 감사합니다!