비트코인 (가상화폐) 자동매매 (3) -1 코딩 : 파이썬을 이용한 업비트 시세조회, 잔고조회, 로그인

비트코인

비트코인 (가상화폐) 자동매매 (3) -1 코딩 :

파이썬을 이용한 업비트 시세조회, 잔고조회, 로그인

업비트에서 API를 발급했으면

이제는 코딩을 할차례입니다.

코딩을 할때는 두 가지 방법이 있는데요

무지성으로 그냥 책이나 유튜브보고 따라하는 것과

책이나 유튜브에서 이야기하는 것을

업비트 개발자 센터를 켜놓고,

이게 뭔지 좀 보고,

그리고 코드 한줄한줄의 의미를 좀 알아가면서

차근차근 하는 방법이 있습니다.

당연히 후자가 옳고 후자대로 해야됩니다.

왜냐면,

전자대로 무지성으로 막따라하다가

나중에 전략을 바꾸거나

갑자기 코드가 안되는경우에는

코드를 바꿔야하는데 바꿀수가없어요.

그럼 돈 작살나는거죠.

하지만 괜히 속담에

급할수록 돌아가라

바쁘다고 바늘허리에 실 매어쓰랴

라는 말이 있겠습니까?

그만큼 사람들이 안돌아가고 급하게 하고

바늘허리에 실을 매어 쓰려하고

코드를 분석하기보다 무지성으로 따라해서

빨리 코드 돌리고싶고

돈벌고싶어하니까 그런거죠.

수천년을 그리 살아온 조선민족인데

이제와서 바뀔 수 있겠습니까.

그래서 저는

코드를 완전히 이해하지는 못해도

손으로 따라치는 방법을 선택했습니다.

드래그해서 복사 붙여넣기는 안했다는 이야기죠.

최소한 따라 치기라도 하면

조금은 읽게되고 이해를 하게 될테니까요.


업비트 개발자센터에 들어가서

시작을 하면

시작부터 굉장히 당황스러운 말들이 가득한데

다 볼 필요없고 좌측의

API reference를 누르면

그나마 내가 알아먹을 수 있는 화면이 나옵니다.

우측의 저 빨갛고 녹색이고 보라색이고 하는 것은

위의 자바, 파이썬, 루비 등 언어를 바꿔가면서

볼 수 있는,

업비트에서 짜서 제공하는 API코드이구요

복사해서 고대로 내 코드창에 붙여넣고

필요한 부분만 내가수정을 해가면서 쓰면됩니다.

또한

왼편의 메뉴목록들을 눌러가면서

저 필요한 API코드를 찾아낼 수 있습니다.

이 업비트 개발자센터를 켜서 한편에 놓고,

한편에는 비현코 저자의 책을 놓고

따라 쳤습니다만,

비현코 저자는 맘씨좋게도

본인의 코드를 다 짜서 깃허브에 올려놨습니다.

이분은 유튜브도 그렇고 깃헙도 그렇고

굳이 이렇게까지 다 오픈할필요가 있나?

싶을 정도로

책에 있는 내용을 다 풀어놨습니다.

참 좋은 분이에요.


일단은 매수 주문을 실제로 내기 전에,

짜야 할 뼈대들이 있습니다.

무슨이야기냐면

A라는 조건 달성시,

  • 잔고를 확인하고

  • 매수하라

  • 매수 후 2% 이익보면 익절하라

이런 주문을 내려면

잔고확인, 매수, 매도

주문 을 다 기능을 짜놔야합니다.

사람이 할때는 버튼만 누르면 되지만

버튼을 누르는게 어떤 행위인지를 코드로 짜야죠.

여러가지 블럭(함수)을 만든다음에

블럭을 조합해서 최종 명령을 내린다고 보면됩니다.

다행스럽게도 이 저자님께서는

매우 실용적인 면을 추구하시는지라

굳이 클래스같은건 안짜시고 그냥

함수나열로 기능을 구현하셨더군요.

거래 가능 코인 종류 확인

일단 거래 가능 코인 종류를 확인해야죠.

업비트에서는 이 영역이고,

저 뼈대를 갖고와서 코드를 짜면

이렇게 됩니다.

윗부분은 모르겠고,

아랫 부분의 for 문을 설명을 해보면

response_json에서 순서대로 가져오는데

가져온 것에서 KRW-가 포함되어있으면

KRWticker라는 깡통에 집어넣고

BTC-가 포함되어있으면

BTCticker라는 깡통에 넣는겁니다.

업비트에서는

원화기준거래, BTC기준거래, USD기준거래

이렇게 기준통화가 다 다르기때문에 그렇죠.

이 코드의 목적은

KRW거래만을 위한 ticker를 골라내기 위함입니다.

왜냐면 나는 원화를 들고 코인을 사러왔으니까요.

그래서 저 코드를 실행시키면

이런 결과가 나옵니다.

KRW기반으로 무수히 많은 코인이 거래되는군요.

이것들이 다 우리의 투기대상입니다.

이중에서 돈을 캐면됩니다.

바이낸스 거래소 수수료 20% 할인 가입 바로가기

 

현재 시세 조회

위에서 ticker를 정리했으니

이제 ticker를 불러와서 해당 코인의 시세를

조회해야죠.

이렇게 짜서

실행을 해보면

비트코인 이 3144만원이군요.

이 코드를 짤때만해도 3144만원이었습니다.

며칠전이었는데.

지금은 얼말까요.

3101만원이네요.

어 그래도 많이올라왔네.

아까 저녁에는 3060만원이었는데.

놀랍습니다.

코인 회복 가나요?

과거 시세조회

다음으로는 과거 시세를 조회하는 코드를 짭니다.

과거 시세 조회의 목적은 크게 2개가 있지요.

첫째는 백테스팅입니다.

둘째는 종목선정입니다.

종목선정이라니 잘 안와닿습니다.

이렇게 짭니다.

그리고 실행은

이렇게 결과가 나옵니다.

여기서 이 비현코 저자의 매매 아이디어가 나옵니다

저자의 매매아이디어는 이겁니다.

시장에 있는 전체 코인 중에

과거 일정 기간동안 가장 크게 하락한 코인을

줍자.

그렇게 크게 떨어진 코인은 반등을 하겠지?

가장 크게 떨어진 코인을 매수해서

2%떼기를 하자.

그러려면 일단 가장 많이 떨어진 코인을 알아야하고

그러려면 일단 과거 시세를 알아야합니다.

저 코드는,

봉 기준으로 과거 200개를 조회하는 코드입니다.

봉 기준 200개니까

어떤 봉일지는 내가 실행할때 지정해줍니다.

1을 넣으면 1분봉 200개,

30을 넣으면 30분봉 200개,

10을 넣으면 10분봉 200개입니다.

참고로 60분과 240분도 넣을 수 있습니다.

보다 장기로 보고싶으면 그렇게 넣으면 됩니다.

업비트 API설명은 이 페이지군요.

로그인과 잔고조회

여기까지는 로그인이 없어도 됩니다.

시세조회는 가능한데,

매매주문을 넣고, 잔고조회를 하려면

로그인을 해야합니다.

그리고 로그인을 할때,

앞서 발급했던 업비트 API의

Access key와 Secret Key가 필요합니다.

로그인 코드 자체는 간단합니다.

대신 선결작업을 해놓을 것이 있는데,

  • 업비트.txt라는 파일에 내 access key와 secret key를 적어놓고 저장

  • 업비트.txt라는 파일을 이 파이썬 파일과 같은 폴더에 위치

이 두가지 작업이 필요합니다.

그렇게 하기 귀찮으면 그냥 파이썬 파일어딘가에

access key와 secret key 변수를 적어놓고

그것 가져와서 그냥 써도 되긴 합니다.


로그인을 하고 나면 잔고조회를 하는데,

알아먹을 수 없는 코드들이 나옵니다.

저 코드는 알수가없는데,

저자가 적은게 아니라

여기서 가져온 듯 합니다.

아무튼 저렇게 코드를 짜고

balance()를 실행하면

내 잔고가 제대로 나옵니다.

메타디움이라는 코인 2만원어치가 있다는게 뜨네요

다음 포스팅에서는

시장가 매수/매도

지정가 매수/매도

실제

전략에 따른 매수/ 매도주문 을 구현하고

그것을 하나로 합쳐서 주문을 실행하는

코드를 적어보겠습니다.

비트코인

Leave a Comment

%d 블로거가 이것을 좋아합니다: