[비트코인 자동매매 Ch.4] 소스코드

Hoon;·2021년 12월 16일
6
post-thumbnail

자, 드디어 재미를 느끼실 챕터입니다 👍

- 종목 정하기 📌

1. 코드를 복사해서 저장 해 주세요!
파일명 : KR-ticker_list.py
코드는 아래!
https://github.com/hunmin815/autoTrade/blob/master/KR-ticker_list.py 👈 (새 창)

붙여 넣으시고 저장!

2. 코드 실행

  • python3 KR-ticker_list.py

  • 실행 결과

    위 종목 중에 마음에 드는 종목을 하나 골라주세요!
    저는 DOGE 코인으로 가겠습니다. (화성 갈끄니ㄲ...)

- 자동매매 코드 ⭐

1. 코드 복사, 저장!
이번 시리즈의 핵심 파트!
파일명 : UpbitAutoTrade.py
코드는 아래! (Update : 2021-12-24)
https://github.com/hunmin815/autoTrade/blob/master/UpbitAutoTrade.py 👈 (새 창)

*77Line에 ticker변수🔖의 값을 원하시는 종목 코드로 바꿔주시면 됩니다!


- 시작 & 정지 스크립트 📝

1. 시작 스크립트
파일명 : start.sh
코드는 아래!
https://github.com/hunmin815/autoTrade/blob/master/start.sh 👈 (새 창)

nohup : 스크립트 파일을 데몬 형태로 실행 시켜주며, 터미널이 종료되어도 프로세스가 죽지 않습니다.
python3 -u : -u 옵션이 있어야 로그파일에 python의 출력을 찍어줍니다.
& : 백그라운드로 실행 시켜 줍니다.
tail -f : 파일의 끝 부분을 계속 갱신하여 보여줍니다.


nohup만 사용시에 현재 터미널에서 명령어 입력이 불가하나 &를 같이 사용하여
현재 터미널을 계속해서 사용 할 수 있습니다.


터미널에 계속 로그가 찍히실 텐데 그만보고 싶으시다면 Crtl + C를 눌러주시면 됩니다!
(nohup.out 이라는 로그파일에 값이 계속 찍히고 있습니다.)
프로세스 종료, 서버 종료만 아니면 백그라운드에서 계속 동작 중입니다.

🤔 nohup.out 파일에는 동작 로그가 기록됩니다.
  이에 따른 파일의 용량이 증가하는데, 혹시 디스크의 용량이 Full될까 걱정되신다면
cat /dev/null > nohup.out 을 명령어로 입력 해 주시면 파일의 내용이 모두
  삭제
됩니다!


저장 하시고

  • chmod 750 start.sh
    ❗ 해당 명령어로 start.sh 파일의 권한을 변경 해 줍니다.
    권한 변경을 하지 않으신다면... 아마도 기본적으로 실행 권한이 없어서 실행이 안되실겁니다.

2. 정지 스크립트
파일명 : stop.sh
코드는 아래!
https://github.com/hunmin815/autoTrade/blob/master/stop.sh 👈 (새 창)

UpbitAutoTrade.py 프로세스 ID를 찾아서 kill 시켜주는 스크립트입니다.


저장 하시고

  • chmod 750 stop.sh

- 자동매매 실행 🏃‍♂️🏃‍♀️

  • ./start.sh 또는 nohup python3 -u UpbitAutoTrade.py &

    best_k : 가장 좋은 *k값 입니다.
    best_ror : 가장 좋은 수익률 입니다.
    target_price : 해당 종목의 매수 목표가
    current_price : 해당 종목의 현재가


    🧐 *k 값 이란?
    노이즈의 비율입니다. 꾸준한 상승세를 보이면 노이즈가 적으며, 횡보를 하면 노이즈가 많아집니다.
    따라서 k의 값이 높다 = 매수 목표가를 높게, k값이 낮다 = 매수 목표가를 낮게 산정됩니다.

  • 실행 루틴
    매수 목표가와 현재가가 같아지는 순간 시장가로 매수를 진행하며,
    익일 장이 시작되는 09:00 10초 전 해당 종목을 모두 매도합니다.
    09:00가 되어 장이 다시 시작되면 k의 값을 다시 계산하여 매수 목표가를 다시 산정합니다.

  • 매수 로그

  • 매도 로그
    ✔ 코드에 대해 설명이 더 필요하시다면 README! 클릭! 👈 (새 창)

드디어 실행할 수 있게 되었습니다! 👏👏

저는 6개월 가량 테스트를 진행해 보았으나
DOGE의 인기가 이미 식은 탓에 큰 수익은 얻지 못하였습니다. 😂
하지만 수익보다 더 값진 경험을 하실 수 있으실거예요!
투자는 상승의 시기가 오기 전 미리 준비된 상태여야 수익을 얻으실 수 있다는 점!

다음 챕터에서는 매일 시스템 상태 & 프로세스 체크, 매일 아침 매수 목표가
Slack 메신저를 통하여 내 폰으로 전달 받을 수 있는 방법을 알려드리겠습니다.

Next Level 👈

profile
S/W Engineer & Developer | 블로그 이전 - https://bakingdevlog.tistory.com

4개의 댓글

comment-user-thumbnail
2022년 3월 24일

안녕하세요 원래 이런 글에 댓글 별로 안 다는데 이 블로그로 도움 진짜 많이 얻어서 회원가입해서 글 남겨요
제가 컴공을 부전공으로만 끝내서 리눅스는 진짜 겉핥기로만 아는데 이 글 덕분에 우분투 세팅 하루 안에 끝낼 수 있었네요 ㅜㅜ
덕분에 지금 백그라운드에서 잘 돌리고 있어요, 아직 exception처리해야 할 게 많지만... 여튼 정말 감사합니다!

1개의 답글
comment-user-thumbnail
2022년 10월 10일

안녕하세요 ㅎㅎ 좋은글에 도움 많이받았습니다ㅠㅠ 감사합니다

1개의 답글