본문 바로가기

코딩

코인 자동 매매 aws로 완성 - 유용한 명령어

unrelated picture

자동 매매 포스트

 

코인 자동 매매 - 업비트, 바이낸스

https://suganglive.tistory.com/12 반자동 코인투자 - 가상화폐 투자 마법공식 전략 백테스트 가상화폐 투자 마법공식 투자전략(책) 중 12번째 전략을 엑셀로 백테스트하고 실전 실행해보겠다. 준비물 :

suganglive.tistory.com

 

자기 전에 프로그램이 아침 9시에 잘 가지고 있는 코인들을 잘 매도하나 확인하려고 업비트와 바이낸스에서 btc, eth, xrp, ltc를 각각 약 만원 어치씩 샀다. 하루도 지나지 않아서 오류가 났다.

업비트에서는 잘 작동했지만

바이낸스에서는 ltc 매도 호가 구하는 함수에서 숫자가 잘못들어가 있어서 ltc가 체결이 안됐고 btc이 약 300원어치가 매도 주문이 안된 건지 지갑에 남아있었다. 함수는 바로 고쳤고 매도 주문은 다시 실험해보니 잘 작동해서 나중에 오류가 발생하면 모두 전량 매도하고 남는 dust들을 bnb로 전환하는 코드를 추가해야겠다.

 

본론으로 들어가서 조코딩님이 알려주신 대로 aws에 가입해서 서버를 만들었다. 딱 자동매매만 하는 데에는 조코딩님이 알려 주신 명령어로 충분하지만 나름대로 구글링 해서 찾은 유용한 명령어를 공유한다.

 

명령어가 어떻게 작동하는 지는 모르지만 그냥 내가 이해한 대로 공유하겠다.

#한국 기준으로 서버 시간 설정
$ sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime

#현재 경로 상세 출력
$ ls -al

#깃 클론(디렉토리 가져오기)
$ git clone <https://github.com/suganglive/coinauto.git>

#경로 이동
$ cd 경로

#vim 에디터로 파일열기
$ vim 파이썬.py

#vim 에디터 수정
$ i

#vim 에디터 수정 끝내기
esc

#vim 에디터 저장
$ :wq!

#패키지 목록 업데이트
$ sudo apt update

#pip3 설치(그냥 pip이랑 뭐가 다른지 모름)
$ sudo apt install python3-pip

#pip3로 pyupbit설치
$ pip3 install pyupbit
#ccxt 설치(바이낸스)
$ pip3 install ccxt

#백그라운드 실행
$ nohup python3 파이썬.py > output.log &

#실행되는 파일 확인
$ ps ax | grep .py

#프로세스 종료(PID는 ps ax | grep .py를 통해 확인할 수 있음)
$ kill -9 PID

여기까지가 조코딩님이 공유해주신 명령어다 이것만 써도 충분히 돌아간다.

 

다음부터는 그냥 구글링으로 찾은 명령어들이다.

 

백그라운드 실행에서 output.log를 만들긴 했지만 내 프로그램이 잘 돌아가는지 콘솔처럼 내 눈으로 보고 싶어서, 그리고 output.log를 어떻게 확인하는지 몰라서 나는 코드를 쓸 때 따로 mark2-4.log 이런 식으로 디렉토리에 따로 저장을 했다. 이를 확인하려면 우선 해당 디렉토리에 들어가야 한다.

#해당 디렉토리 들어가기
$ cd 디렉토리

#해당 로그파일 읽기
$ tail -10(원하는대로) mark2-4.log

뭐 ./mark2-4.log 이런 느낌으로 직접 로그 파일에 들어가면 더 좋겠지만 퍼미션이 없다고 들어가지 지는 않았다. 프로그램이 작동 중이라 그러는지 모르지만 아무튼 로그파일 읽기 명령어로 얘가 잘 돌아가나 확인할 수 있다.

#디렉토리 삭제
$ rm -rf 디렉토리(내 경우에는 coinauto)

사소한 변경사항은 vim을 사용해서 수정할 수 있지만 대대적으로 뭔가를 바꿀 때는 우선 작동 중인 프로그램을 kill 명령어로 끄고 위의 명령어로 디렉토리를 통째로 삭제한 후에 그냥 vscode에서 고친 다음에 다시 깃을 클론으로 가져온다.

 

백그라운드 실행 오류 해결

1.
nohup python3 파이썬.py > output.log &
[?]+ Exit ? 오류 발생

해결 -> 파이썬 파일에서 사용한 라이브러리가 다 설치되어 있는지 확인. 내 경우에는 ccxt를 설치하지 않았다.
$ pip3 install ccxt

업비트 때는 안 그랬는데 바이낸스 자동 매매 프로그램을 돌리려고 하니 [1]+ Exit 1 같은 오류가 뜨면서 백그라운드로 파이썬 파일이 실행되지 않았다. 이럴 때는 서버에 파이썬 파일을 돌리는데 필요한 라이브러리가 설치되어있는지 확인해 본다.

 

추가-

서버 만들 때 ubuntu 말고 aws linux같이 다른 것들이 많아서 시도해봤는데 기본적으로 명령어는 같지만 조금씩 다른 부분들이 있다.

  1. ubuntu의 sudo 명령어에서 apt를 yum으로 치환하면 웬만한 것들은 다 공통이다.
  2. pip이 설치되어있고 git이 설치되어 있지 않다.
#amzon linux 2 git 설치
$ sudo yum install git

 

binance 10% 커미션 링크