본문 바로가기
AutoBot

[업비트 자동매매 시즌2] D-Auto Trading No.2 (전략 준비)

by zemba 2022. 4. 30.
반응형
SMALL

안녕하세요! Zemba입니다. 한동안 포스팅이 좀 뜸했습니다....ㅎ 개인적인 사정도 있었고 자아성찰을 좀 하다 보니 포스팅에 소홀해졌네요..ㅎㅎ

그러나!! 제가 아무것도 안 하고 논 것은 아니기에...(핑계를 대봅니다...ㅎ) 한참 동안 백테스팅을 돌려보고 전략에 대한 부분들을 연구하고 있었습니다 ㅎㅎㅎㅎㅎ; ( 마치 스포를 한 것과 같지만 이미 시작했기 때문에 미리 스포를 흘려 봅니다..ㅎ )
우선 지난번 포스팅에서 지표들을 조합해서 사용하기로 결정하였고 어떠한 지표를 좀 더 사용하여 전략을 결정할지를 구상하였습니다. 그래서 오늘 포스팅은 전략을 준비를 하고 그 이유에 대해서 포스팅하려고 합니다.

우선 지난번 포스팅을 못 보신 분들은 참고차 링크를 추가합니다 ( https://zemba.tistory.com/51 )

 

[업비트 자동매매 시즌2] D-Auto Trading No.1 (계획수립)

안녕하세요! Zemba입니다. 드디어 포스팅을 시작해 보았습니다. 우선 이번엔 꽤 좋은 프로그램이 되었으면 하는 바람이 간절합니다 ㅎㅎ 사실 지난번 시즌1의 회고와 같이 이번에도 도전해보고

zemba.tistory.com

지난번에 말씀드린 전략의 기본 구성에서 + @를 더해서 먼저 최종적인 전략에 대해서 말씀드리고 진행하려고 합니다.

  • 매매 기준
    • 메인 지표와 보조지표를 통해 결정
      • 메인 지표(업비트 기준)
        • 이동평균선
        • 볼린저밴드
        • 일목균형표
      • 보조지표
        • RSI
        • MACD
        • 이격도

ㅋㅋㅋ 정리하고 나니까 결국 이격도 하나가 추가되었네요 ㅋㅋㅋㅋ..... 부끄럽네요 아무튼 그래도 이격도가 각 조건들의 최적점을 찾아주는 역할을 하다 보니 없는 것보다는 더 나은 것 같아서 추가 지표로 사용하기로 하였습니다. 그러면 이제 각 지표에 대한 전략에 대해서 설명드리겠습니다. 우선 이번에는 상승장, 하락장의 기준을 나눠서 매매 전략을 적용해 보려고 합니다. 상승장의 식별을 별도로 하지는 않지만 우선 들어보시면 약간의 이해가 되실 수도 있을 것 같습니다. 먼저 전략을 정리하고 상세히 설명드리겠습니다.

  • 매매 전략
    • 매수조건
      • 상승장
        1. RSI - 60 이상
        2. MACD - 0 값 이상
        3. 지수 이평선(EMA) 정배열 ( 5 > 15 > 33 > 56 > 112 )
        4. 단순 이평선(SMA) 1일, 112일 이격도 - 100 이상 102.5 이하
        5. Bollinger Band - 시가와 종가 구간 사이에 상단선이 포함된 경우
        6. 일목균형표 - 시가가 선행스팬 1,2 이상, 종가가 선행스팬 1,2 이상의 경우
      • 하락장
        1. 상승장의 조건에 해당하지 않는 종목만 검색
        2. RSI - 30 이하
        3. MACD - 0 값 이하
        4. 지수 이평선(EMA) 역배열 ( 5 < 15 < 33 < 56 < 112 )
        5. Bollinger Band 하단선과 지수이 평 112일선의 간격이 2% 이상일 때 (미정)
    • 매도 조건 (백테스팅 포스팅에서 다룰예정입니다)
      • 익절 :?? %
      • 손절 :?? %

한번 나열해 보았습니다. 고수분들은 이 조건이 어떤 경우의 상황인지 대충 예상이 되실 수도 있습니다. 그러나 저는 이것을 이해하는데 한참 시간이 걸렸기 때문에 엄청난 시간이 걸렸습니다. ( 아직도 정확하게 이해하지 못한 것들이 있는 것 같기도 합니다. ㅎㅎ)
먼저 상승장 하락장을 구분하였지만 완벽하게 시장의 흐름이 하락 추세인지, 상승 추세인지를 찾는 것이 아닙니다. 이번 전략의 포커스는 사상 상승구간에 관점을 가지고 전략을 만들었습니다. 그럼에도 불구하고 하락장에 전략을 추가한 이유는 상승장에서만 대응할 경우 확실한 이익의 구간은 잡을 수 있겠지만 매매 시도의 횟수 빈도가 적을 것으로 예상하여 하락장에 기준도 추가를 해보았습니다. 그러기 때문에 우선적으로 티커의 조건을 조회하면서 상승장에 결과가 없을 경우에 그때 하락장의 매수조건을 확인하는 게 선행조건입니다. MACD 지표가 추세를 확인하는 지표로 잘 알려져 있기 때문에 조건식만 봐도 0 이상이면 상승추세, 0 이해면 하락 추세라고도 판단할 수 있지만 그 앞에 먼저 상승이 없는 경우만 하락을 체크하도록 해서 한 번 더 조건을 좀 더 하드 하게 적용했다고 보시면 될 것 같습니다.

그럼 하나하나 차근차근 설명을 드리겠습니다. 이 전략은 우선 제가 구독 중인 주식 단테 사단의 스윙 검색식을 보고 나서 코 인장에 좀 더 타이트한 조건으로 전략을 각색하여 만든 전략입니다. ( ㅎㅎ 그냥 짜 맞추기...... )
차트의 형태부터 한번 보시죠. 아래와 같은 차트의 흐름이 시작되는 구간의 형태입니다. 빨간 박스에 표시된 부분을 시작으로 머지않아 주가의 최고점을 찍는 모습의 차트를 보실 수 있습니다.

출처 - 업비트 XRP 차트

RSI 조건을 본 이유는 대체적으로 상승이 일어나는 추세를 RSI50선을 기준으로 하는 경우들이 대부분인데 좀 더 확실하게 상승의 흐름을 잡기 위해서는 60 이상일 경우만으로 잡는 것이 가장 안전한 것 같습니다. 추세가 65~68로 왔다 갔다 하다가 70이 넘어서는 순간부터 가격이 당분간 상승추세로 유지되는 모습들을 많이 볼 수 있었습니다.
MACD의 경우는 위에서 잠깐 언급했기 때문에 우선 살짝 넘어가고... ㅎ 그다음은 메인 지표에 해당하는 이평선, 볼린저밴드, 일목균형표입니다. 일반적으로 주가의 흐름이 상승추세로 이어지고 큰 상승이 일어나는 포인트가 이평선들의 정배열일 경우에 주가의 큰 상승이 나타납니다. 반대로 역배열일 경우는 큰 하락의 추세를 보여주고 있습니다. 이 이평선의 보조적인 조건으로 볼린저밴드의 상단선을 주가가 뚫어 올렸다는 것은 추세가 전환되는 신호라고 볼 수 있습니다. 결국 상승에 해당하는 추세의 신호를 보여주는 시그널입니다. 여기서 또한 일목균형표의 선행스팬 1,2에 대한 기준을 확인하는 이유는 일명 구름대라고 부르는 이 선행스팬의 구름대를 주가가 돌파하여 구름대 상단에 있을 경우가 26일의 평균가보다 현재 주가가 이상인지 이하인지를 판단하는 조건이기 때문에 구름대 위에 주가가 있다는것은 상승의 신호로 볼수 있습니다. 그리고 가장 마지막으로 이격도를 조건식으로 추가한 이유는 볼린저 밴드, 일목균형표, 이평선 기준으로만 필터링을 하고 나니까 1봉 전 대비 15% 상승한 구간에서 조건에 해당하여 티커를 컨택하는 상황이 발생하였습니다. 그래서 찾아보다 보니 이격도의 시작점 즉 이평선의 정배열이 시작되는 구간에 대한 시그널을 찾게 도움을 주는 지표가 이격도라고 보시면 될 것 같습니다.

그래서 위 차트 기준으로 이평선이 정배열인 수치를 확인할 수 있고, 일목균형표 선행스팬1,2가 시가, 종가보다 낮으며 볼린저 상단(Upper)의 값이 시가와 종가 사이에 걸쳐져 있는 수치를 확인할수 있습니다. 또한 이격도가  101로 조건에 해당하며 RSI는 63으로 기준에 적합합니다. MACD는 차트를 보시면 이미 두선 모두가 0선 이상으로 올라가 있는 것을 볼 수있습니다.( MACD 오실로스코프의 빨간부분이 0보다 큰값이며 파란부분이 0보다 작은 값이라 쉽게 판별할수 있습니다.) 그렇기 때문에 이조건에 맞아서 시장가로 매수 했다면 구간 수익으로 7%의 이익을 볼수 있는 구간이었습니다.

출처 - 업비트 차트 구간수익율

여기서 주식을 어느 정도 아시는 분들은 이상한 점을 느끼실 수 있을 것인데요 ㅎ 바로 거래량의 조건이 적용되지 않았습니다.
왜 거래량의 조건이 빠졌는지 궁금해하실 수 있을 수 있습니다. 하지만 코 인장을 좀 들여다보면 그 이유를 아실 수 있을 것 같습니다. 제가 아는 지식으로는 코인은 발행량이 어느 한도가 정해진 것도 있지만 계속해서 매월 발행하는 코인도 있고 가격이 너무 높아서 거래량의 수치가 일정하지 못한 점이 있습니다. 그렇기 때문에 어떤 평균적인 수치의 기준을 딱 지정할 수 없기 때문에 거래량 조건을 제거하였습니다. 예를 들면 비트코인의 거래량은 평소 대비 폭발적인 거래량이 나왔을 때도 백만 건이 되지 않습니다. 그러나 리플 같은 경우는 거래량이 평소에도 2백만 건이 넘습니다. 거래량이 터지는 날에는 천만 건이 넘어가기도 합니다. 비교를 더욱 극대화하기 위해서 웨이브 코인을 한번 보면 웨이브는 평소 거래량도 이미 억 단위입니다. 그렇기 때문에 거래량으로 필터링하기에는 모든 코인에 대한 총발행량을 DB화 하여 가지고 있어야 합니다. 이 수치가 별도로 기록을 하면서 까지 가지고 있어 하는 정보일지 아직 판단이 쉽지 않았습니다. 그래서 우선 거래량에 대한 조건을 제외하였습니다. ( 추후에 제가 적용 가능한지 재검토를 해보려고 합니다. 아직은 잘 모르겠네요 ㅎㅎ;)

후후 네 하락 조건은 아직 완벽하지 않아서 조금 공개하기가 뭐하긴 하지만 우선은 기본적인 개념은 상승장의 조건 중에 일부만 반대로 적용하는 개념이라고 보시면 됩니다. 그래서 기본적은 하락의 시그널에 대해서만 적용하여 먼저 백테스팅으로 결과를 좀 보려고 합니다.
그래서 다음 포스팅은 이 전략에 대해서 백테스팅을 하면서 매도의 익절, 손절의 기준을 잡는 포스팅을 한번 작성하도록 하겠습니다. ( 사실 이것도 이미 어느 정도 완료되었습니다 ㅎㅎㅎ) 아직도 갈길이 멀었습니다. 하지만 이 정도 전략까지 만들 수 있었던것은 첫번때 오토봇을 만들때보다는 좀더 공부하여 지식이 늘어났기 때문에 가능했을수 있습니다. 저의 목표는 이렇게 봇을 만들어서 스스로 돈을 벌수 있는 이 봇이 초기에는 수익이 10만원이라도 날수 있는것이 목표며 점차적으로 이 봇의 연봉(?)을 올려주는 저의 노력이 더해진다면 먼훗날에는 연봉 5천이상을 벌어주는 봇을 만들수 있지 않을까 생각합니다. ㅋㅋㅋㅋㅋ 저 혼자 버는 게 아닌 둘이 버는 것처럼 되고 플랫폼을 바꾸면 1명이 더 생겨나는 효과니까 여러 명이 연봉을 벌어다 줄 수 있을 것입니다 ㅋㅋㅋ (제발 현실이 되길 🙏) 그럼 다음 포스팅에서 만나요~

더 나은 미래를 위하여!  시간이 돈이다! 

반응형
LIST

댓글