(가상화폐 매매)자동매매 프로그램 만들어보자_ 3 가상화폐 매매๑•‿•

앞선 글 내용까지 살펴보면 결국 핵심은 다음과 같다.1. xcoin_api_client.py 의 내장된 함수를 이용해 빗썸 API에 접속2. 빗썸 API 접속에 필요한 내용은 주소 (ex: "/public/ticker") 및 각 주소 별 청하는 내용 (ex: rgParams = {})요번 글에선, 실제로 매수 및 매도를 파이썬으로 어떻게 구현하는지 살펴보자.1) 개인 지식 확인하기자동매매 프로그램에서 개인 지식를 계속적으로 확인해주는 것은 중요하다. 지금 빗썸 계정에 현금이 얼마나 있는지, 가상화폐들은 얼마나 가지고 있는지를 알고 있어야, 매수 및 매도를 할 때 필요한 값을 줄 수 있다.

 

위에서 확인할 수 있듯이, 개인지식를 확인할 수 있는 API 주소는 /info/balance 이다.  실제 코드를 돌려보면서 어떻게 구현하는지 살펴보자.import sysfrom xcoin_api_client import *import pprintapi_key = "" #이 곳에는 여러분들의 api 키를 입력하세용api_secret = "" #이 곳에는 여러분들의 secret 키를 입력하세용api = XCoinAPI(api_key, api_secret)Balance = {"currency" : "ALL"}result = api.xcoinApiCall("/info/balance", Balance)print(result)sys.exit(0);위의 코드를 복사해 파이참에 넣어보자.

그리해 나서 11번째 줄 sys.exit(0) 부분에서 왼쪽 회색 영역을 클릭하게되면 저렇게 빨간 동그라미가 생긴다. 저 의미는 코드를 Debug 할 때에 11번째 줄은 읽지 않고 10번째 줄까지만 읽은 뒤 코드가 멈춘다는 의미이다. 이 짓을 하는 이유는, 코드를 멈춰줘야만 Debug를 한다면서 각각 변수에 어떠한 값이 저장되어있는지를 알 수 있다.저 코드를 Debug 하게되면 다음과 같이 나올거다.

API 키가 비어있기 떼문에 오류가 났다. 만약에 여러분들의 API 키 및 Secret 키를 제대로 넣어줬다면,

이런식으로 정상적으로 나의 개인지식가 불러와짐을 알 수 있다.그러나 저 값은 그대로 다루기가 어렵기 때문 에 우리는 저 result라는 변수에 저장된 데이터에서 우리가 필요한 데이터만 뽑아낼 수 있다.10번 줄의 print(result) 부분은 result 에 저장된 대부분 지식를 출력하겠다는 의미이다. Debugger 탭을 들어가서 과연 result에는 어떠한 지식들이 저장되었는지 확인할 수 있다.

저 result 라는 변수는 {dict} 이라는 타입의 데이터 라는 것을 알 수 있다. {dict} 타입은 마치 사전과 같다고 상념한다면 된다. 마치 사전처럼 원하는 키워드를 넣으면 그 키워드에 저장된 값을 찾을 수 있다. 예시는 다음과 같다.10번 줄을 다음과 같이 변경해서 Debug를 해보자.print(result["status"])

그렇다면 프로그램은 result 변수에 있는 무수한 데이터들 중 "status" 라는 항목에 저장된 값만 골라서 출력할 것이다. 마찬가지로, 10번 줄을 다음과 같이 변경한다면print(result["data"]["total_krw"])

이와같이 지금 미르쨩 계정에 들어있는 현금을 나타내준다. result 안에 있는 "data" 항목에 저장된 값들 중 "total_krw" 에 해당하는 값을 나타내 주는 것이다.2) 매도 및 매수 하기여기 탭은 좀 조심해야하는데, api 키와 secret 키가 정상적으로 입력되었을 경우, 시장가 매수 및 매도는, 프로그램을 돌리는 순간 매매를 수행한다. 앞서서 말했듯이 우리가 가상화폐들을 거래하는 두 가지 방안은 홈페이지 로그인, API 이용 이렇게 두 가지 있다고 했는데, 이 말 뜻은 여러분들이 홈페이지 로그인을 하지 않았더라도 바로 매매가 이루어진다는 것이다. 떼문에 매매 함수를 다룰 때는 더욱 조심히 접근해야한다.

그렇다면 이를 파이썬에서 어떻게 실제로 구현하는지 살펴보자import sysfrom xcoin_api_client import *import pprintapi_key = ""api_secret = ""api = XCoinAPI(api_key, api_secret)for_buy = {"units" : 0.001, "currency" : "BTC"}result = api.xcoinApiCall("/trade/market_buy", for_buy)print(result)sys.exit(0)아쉽지만, 요번 챕터에서는 코드 결과를 보여주진 않겠다. 미르쨩이 코드를 돌려 실제로 구입하고 싶진 않다 ㅜㅜ시장가 매수를 하고 싶은 경우, xcoinApiCall 함수에 집어넣을 API 주소는 "/trade/market_buy" 이다.마찬가지로 시장가 매도를 하고 싶은 경우는 "/trade/market_sell" 이다. 더욱 자세한 내용은https://www.bithumb.com/u1/US127에서 확인 가능하다.시장가 매매에서 필요한 변수값들(Request Parameters) 은 "units"와 "currency" 이다. 말 그대로 몇개나 살 것이냐 와 뭘 살 것인가 이다.위 코드는 BTC - 즉 비트코인 - 을 0.001 개 산다는 api 신호이다.미르쨩의 경우 실제로 매매 함수를 실행해보고, 홈페이지에 접속도 하지 않았는데 가상화폐가 사지는 것을 보고 진짜 깜짝 놀라면서도 신세계를 경험했다. 부족한 글이지만 여러분들도 여기까지 무난하게 따라왔기를 바라며, 다음 글에서는 실제 자동매매 프로그래밍을 위한 예제들을 몇 가지 소개하시려고 한다.

댓글(0)

Designed by JB FACTORY