이전 글에서 이어지는 내용입니다.
ayogom님 말대로 Github에서 “자동 매매” 키워드로 검색하니 정말 많은 소스 코드가 공개되어 있습니다. 하지만 대부분 파이썬 코드로 작성되어 있습니다. 만약 주 개발언어가 파이썬이라면 괜찮아 보이는 소스 코드를 다운받아서, 코인 자동 매매를 바로 시작할 수 있을 것 같습니다.
![]() |
---|
하지만 저는 "자동 매매 프로그램"을 타입스크립트(Typescript)로 개발할 겁니다. 제가 최근에 가장 많이 사용하는 개발 언어입니다. 그리고 개발 환경은 이렇습니다.
1 | # 개발환경 |
타입스크립트로 프로젝트 구성하기
https://www.typescriptlang.org
타입스크립트 홈페이지의 “Project Configuration” 문서를 참고하여 프로젝트를 구성합니다. 공식 문서에서 추천하는 방법으로 프로젝트를 구성해봅니다.
먼저 typescript
와 @tsconfig/recommended
를 설치합니다.
1 | npm init -y |
그다음 tsconfig.json
파일을 작성합니다.
1 | { |
업비트 API 패키지 설치하기
업비트 거래소의 Open API를 사용하기 위해서는 업비트 개발자 센터에서 API Reference 문서를 보면서 직접 구현해야합니다. 하지만 구현하기 귀찮으니 다른 개발자가 만들어 놓은 패키지가 있는지 먼저 검색해봤습니다.
![]() |
---|
npm packages repository에서 “upbit” 키워드로 검색하니 몇 가지 패키지가 존재합니다. 각 패키지를 확인해보니 마지막 업데이트 날짜가 대부분 3년 전입니다. 하지만, 그 동안 업비트API 규격에 변동사항이 없었으니 그냥 사용해도 괜찮을 것 같습니다.
이 중에서 다운로드 수가 가장 많고 타입스크립트로 개발되어 있는 upbit-api
가 좋을 것 같습니다. upbit-api 를 설치합니다.
1 | npm install upbit-api |
방금 설치한 upbit-api 패키지를 그대로 사용해도 되지만, 저는 Upbit 래퍼 클래스를 만들어서 사용할꺼에요. 왜냐하면 upbit-api에서 제공하는 functions 이름이 마음에 들지 않는 것도 있지만, 혹시라도 더 좋은 upbit 패키지가 나오면 교체할 생각입니다.
1 | import upbitApi from "upbit-api"; |
하지만 upbit-api 패키지의 Readme.md를 읽어보니, 업비트 API가 다 구현되어 있는것은 아니네요. 매매에 필요한 Order API가 구현 안되어 있습니다. upbit-api를 개발한 신재헌님이 나머지 API도 업데이트 해 주면 좋겠지만, 제 생각에 더이상 업데이트는 없을 것 같습니다.
어쩔 수 없지만 구현되어 있지 않은 Order API는 나중에 제가 직접 구현해야 할 것 같습니다.
변동성 돌파 전략에 따른 목표 가격 계산하기
래리 윌리엄스의 변동성 돌파 전략을 다시 복습해봅니다. 변동성 돌파 전략을 정리하면 다음과 같습니다.
- Range = 어제 고가(high) - 어제 저가(low)
- 매수진입: 현재가(price) > (오늘 시가(open) + Range * 0.5)
- 매도청산: 다음날 시가(open)
이제 위 전략을 사용하여 금일 매수 목표가를 계산합니다. 업비트 API의 일자별 캔들봉 데이터에서 전일 종가/고가/저가 정보를 가져옵니다.
1 | async function getTargetPrice(market: string) { |
그리고 STEEM 코인에 적용해서 목표 가격을 계산해보았습니다.
1 | async function main() { |
1397.5 라는 값이 나옵니다. STEEM 가격이 1397.5에 도달하면 매수하면 될 것 같습니다.
그리고 지금 시각에 STEEM 가격은 1175 이네요. 음…🤔
생각보다 쉽지 않을 것 같습니다.
이 글을 읽으신 분들 모두 성공적인 투자하시길 바랍니다.
이 글은 스팀잇에서 작성되었습니다.
https://steemit.com/hive-101145/@anpigon/6xcrvm-2