본문 바로가기
AutoBot

업비트 자동매매 - Upbit Auto Trading No.6 (최종 전략 결정 및 코드 작성)

by zemba 2022. 1. 12.
반응형
SMALL

안녕하세요~ 드디어 시간이 조금 돼서 포스팅을 진행하게 되었네요 ㅎ
새해가 되니까 업무가 갑자기 급격히 바빠지고 있어서 영 시간을 내기가 어려웠습니다. ( 그래도 할 건 해야죠...ㅎ )
지난번 포스팅에서 각각의 전략별 백테스팅을 진행하였고 전체 티커의 수익률도 산출해 보았습니다. ( 혹시나 궁금하신 분들은 참조..)
https://zemba.tistory.com/30

 

Upbit Auto Trading No.5 (전략별 백테스팅)

안녕하세요~ 한동안 백테스팅과 개인 사정(?)으로 인하여 한동안 포스팅을 못했다가 이제야 다시 작성하게 되었네요~ ㅎㅎㅎ 사실 백테스팅 알고리즘이랑 전략들을 구상해 보려고 알아보다 그

zemba.tistory.com


이제 최종 전략을 결정할때가 되었습니다. 수익률을 확인해 보았을 때 900일(약 3년) 기준으로 수익률이 1000%가 넘게 나온 것들도 있었고 50% 정도만 나오는 경우도 있었습니다. 또한 어떤 티커는 RSI1428에서 60분 봉에서 가장 수익이 크게 발생하였고 어떤 티커는 MACD의 수치로 30분 봉에서 수익이 가장 큰 것도 있었습니다. 그리고 전체 티커의 수는 총 100개 이상이고... 지금 제가 가지고 있는 시드는 얼마 되지 않고... 그래서 결정하였습니다. 특정 티커를 보유하여 전략을 돌리도록 하기로 했습니다. 그럼 기능을 정리해 보자면.....

  • 최종 전략
    • RSI1428 기준으로 거래를 진행한다.
    • 60분봉 기준으로 매매를 진행한다.
    • 1시간에 1번씩 수행하면서 조건에 맞는 경우 시장가로 구매한다.
    • 평균가 이하면 추가매수한다.
    • 티커는 계속 추가할 수 있는 구조로 구현한다.
    • 최소 금액으로 매수를 진행한다. ( 업비트 기준 5001원 )
      • 최소금액은 변경 가능하도록 구현한다.
  • 자금 운영 전략
    • 매월 5만 원씩 추가로 입금하여 현금을 보충하도록 함.
    • 갑자기 로또가 되거나 여유자금이 나올 경우 추가로 현금을 보충함. (ㅋㅋ)

최종 전략에 대해서 정리를 해보았습니다.
이렇게 정한 이유는 전체 티커 기준으로 어떤 분봉 기준인지, 어떤 전략인지에 따라서 전부 다 다르고 테스트한 데이터는 또한 과거 데이터 기반이기 때문에 앞으로 어떻게 변경될지는 또 모르는 상황입니다. 그리고 티커 별로도 수익이 좋은 티커도 있지만 아닌 것도 있습니다.
저는 그래서 평균적으로 어떤 지표가 수익률이 괜찮은지에 대해서 확인해 보았고 그 결과 RSI1428 지표가 모든 티커를 기준으로 봤을 때 수익률이 평균적으로 가장 좋았기 때문에 이렇게 결정하였습니다.

추가로 티커를 계속 추가할 수 있는 구조로 구현한다라는 이 부분에 대해서는 현재 백테스팅이 50만 원 기준으로 최소 금액으로 매수하는 기준의 백테스팅을 진행했기 때문에 결국 1개의 티커만 구매하여 거래를 하게 된다면 앞으로의 1년 수익률이 어떻게 될지는 예상할 수 없습니다. 그렇기 때문에 최소 2개의 티커를 구매하여 수행할 예정으로 전체 시드의 절반 정도가 각각의 티커에 투자될 수도 있지만 비율이 4:6으로 나눠질 수도 있습니다. 그렇기 때문에 매월 추가 5만 원씩 현금을 추가하는 방향으로 운영전략을 변경하고 이를 보완하고자 합니다. 혹시나 갑자기 여유금이 생겨서 추가할 경우에는 금액에 따라서 최소 금액을 늘리던지 아니면 티커를 추가할지는 상황에 따라서 결정을 할 예정입니다.


자 그럼 드디어 최종 전략에 대한 부분은 결정이 완료되었고 실제 코드 구현에 대해서 진행하려고 합니다.
앞서 최종 전략에서 말씀드렸듯이 티커는 계속 추가할 수 있는 구조가 되어야 하고 최소금액도 변경이 가능해야 하는 구조입니다.
그렇기 때문에 config 파일을 이용하여 이를 추가하려고 합니다.

config 파일

저는 json 형태로 config를 만들어서 제어를 하기로 하였고 파일명에 list가 붙은 것은.... 비밀......(ㅋㅋ 제가 만들지만 지인들도 원한다면 같이 돌려주기 위해 list로 설정을 만들었습니다 ㅎㅎ;)
그래서 config파일에는 업비트 거래를 위한 accessKey, secrectKey, 텔레그램에 현재 구매한 티커의 수익률을 보여줄 Telegram Token, Telegram Chat Id, 그 외 구매할 티커 및 최소 구매금액의 설정을 담으려 합니다.

샘플을 보여드리면.....

{
   "user":[
      {
         "name":"zemba",
         "access_key":"업비트에서 발급한 access key",
         "secret_key":"업비트에서 발급한 secret key",
         "telegram_token":"텔레그램에서 생성한 개인 봇 토큰",
         "chat_id":"텔레그램 토큰을 통해서 chat_id를 구한다",
         "minimum_buy_price":"5001",
         "target_ticker":[
            "KRW-BTC",
            "KRW-ETH"
			...
         ]
      }
   ]
}

위와 같이 여러 명의 user를 받아서 순차적으로 처리할 예정입니다.( 혼자 쓴다면 필요 없.....ㅋ )
전에 이미 포스팅한 업비트 키 발급을 진행한 키들을 추가해줍니다. ( 잊으셨다면... 다시 확인..ㅎ https://zemba.tistory.com/4)

 

Upbit Auto Trading No.2 (계획을 세워봅시다)

치킨값을 벌기 위해서는 우선 거래를 할 수 있는 플랫폼을 먼저 만들어야겠군요. 업비트를 이용하여 만들기 때문에 업비트 URL을 방문하여 필요한 정보를 찾아봅니다. 업비트 고객센터에 Open API

zemba.tistory.com

그리고 현재 자동으로 거래가 진행되고 있는지를 확인할 Telegram에 대한 토큰을 추가합니다.
여러 포스팅들을 보았지만 slack, 카톡 등 다양한 매체를 통해서 알람을 받을 수 있지만 저는 텔레그램을 선택하게 되었습니다.
그 이유는 우선 텔레그램에서 코인 관련 뉴스정보를 받고 있기 때문이고.....ㅋㅋㅋㅋ 가장 큰 이유는 개인 봇을 만들고 개인 봇으로 대화형 인터페이스(?)라고 해야 하나? 봇에 명령을 내려서 뭔가 기능을 추가하거나 할 수 있는 기능이 있더라고요 ㅎㅎㅎ 이게 가장 큰 이유였습니다.
위에서 언급했듯이 최소금액이나 나중에 추가 티커를 추가를 하기 위해서 코드 배포가 아닌 텔레그램 봇의 기능으로만으로도 제어가 되도록 하기 위해서 텔레그램을 선택하게 되었습니다. ( 추가로 앞으로 응용할 분야가 많아 보여서 알아두면 좋을 것 같아 보였습니다  ㅋ)

또 이런저런 잡설을 하다 보니 중요한 코드 작성 부분은 자꾸 빠지고 글만 주저리주저리 작성하게 되었습니다. ㅎㅎㅎ
다음 포스팅에서는 Telegram Bot을 생성하는 방법과 실제 코드 구현에 대한 부분들을 좀 더 자세히 포스팅하도록 하겠습니다.

저는 전문 투자자도 아니고 그냥 일개 개미에 불과하면 그냥 개발자이기 때문에 전문적인 지식이 없어 실제 투자의 결정은 본인에게 있습니다.

반응형
LIST

댓글