Bitrush는 파이썬으로 작성된 비트코인 트레이딩 봇입니다. 업비트 API를 사용하여 실시간, 일봉 차트 데이터를 조회하고 매수/매도를 진행합니다.
-
백테스트
backtrader 라이브러리를 사용하여 백테스팅을 진행한 샘플 코드입니다. (
backtest/
) -
시세 크롤링
백테스팅/매매 시 사용될 과거 시세 데이터를 크롤링합니다. (
scanner.py
) -
매매
과거 시세 데이터 등을 바탕으로 정해진 전략에 따라 매매를 수행합니다. (
trader.py
)
Bitrush를 실행시키려면 몇 가지 준비가 필요합니다.
-
업비트 Open API 사용 신청 후 엑세스토큰/시크릿키 발급 받기
업비트에 회원 가입한 후 업비트 Open API 안내 페이지에서 엑세스토큰/시크릿키를 발급 받습니다. 필요한 권한을 선택한 후 IP 확인에서 IP를 확인하여 기입합니다.
-
텔레그램 봇 생성 후 엑세스토큰/채팅ID 기록하기
매수/매도 알림을 받기 위해서는 텔레그램 봇을 생성한 후 해당 봇과의 채팅ID가 필요합니다.
-
AWS SSM 변수 설정
serverless.yaml 파일에 명시된 환경 변수를 추가해줍니다.
로컬에서 각 람다를 실행시키기 위해서는 도커 클라이언트가 필요합니다.
도커 클라이언트를 실행시킨 뒤, 프로젝트 루트에서 docker build -t bitrush .
를 실행하여 이미지를 빌드합니다.
이후 docker run -p 8080:8080 bitrush
를 통해 로컬에서 람다를 실행시킵니다.
이제 아래 명령어를 통해 로컬에서 테스트를 진행할 수 있습니다.
curl -XPOST "http://localhost:8080/2015-03-31/functions/function/invocations" -d '{}'
AWS 아키텍쳐는 아래와 같이 설정해줍니다.
main
브랜치에 푸시하면 배포가 진행됩니다. (.github/workflows/deploy.yaml
참조)
이를 위해서는 ECR 레포지토리 구성이 필요하고, 필요한 깃헙 레포지토리 secrets
를 추가해줘야합니다.
비트코인 트레이딩은 고위험입니다. 소액으로 검증을 한 뒤 본격적인 투자를 하기 바랍니다. 또한 어떤 상황에도 수익을 올릴 수 있는 전략은 존재하지 않습니다. 백테스팅 등을 통해 전략을 검증한 후에 사용하시길 바랍니다.
Q: IP 주소가 일치하지 않는다는 에러가 발생합니다.
업비트 API는 IP 기반으로 인증이 이뤄지기 때문에 람다에서는 Nat Instance의 IP 주소로 엑세스토큰/시크릿키를 발급받은 뒤 사용해야 합니다.