본문 바로가기

Project/AlgoTrading

Binance API 기초 [1]

Binance API란?

Binance API는 Python 또는 기타 여러 프로그래밍 언어를 통해 Binance 서버에 연결할 수 있는 방법이다...

Binance에는 HTTP 요청을 사용하여 데이터를 보내고 받는 RESTful API가 있고, 가격 견적 및 계정 업데이트와 같은 데이터 스트리밍을 가능하게 하는 WebSocket도 있다.

Binance API Python 라이브러리

여러 라이브러리를 사용할 수 있으며 가장 많이 사용되는 라이브러리는  python-binance 이다.

또 다른 인기 있는 라이브러리는  CCXT 도 있다.

CCXT는 여러 거래소에서 거래할 계획이거나 다른 라이브러리를 완전히 다시 배울 필요 없이 향후 다른 거래소로 전환할 수 있는 유연성을 원하는 경우 좋은 옵션이다.

그러나 가장 많이 사용하는것은 python-binance라고 알려져 있다.

Binance API 시작

API 키 얻기

바이낸스 계정에 로그인한 후 화면 오른쪽 상단에 있는 프로필 아이콘을 클릭. 여기에서 API 관리를 선택.

다음으로 API 키에 대한 레이블을 생성하라는 메시지가 표시된다.

이중 인증을 활성화한 경우 이 시점에서 다시 한 번 인증하라는 메시지가 표시된다.

바이낸스가 API 키 생성을 확인하는 이메일을 준다.

이 시점에서 API 키를 생성해야 한다. 이 화면에 나타난 시크릿 코드는 다시 나타나지 않는다! 비밀스러운 공간에 잘 메모해 놓자.

계속 진행하기 전에 살펴봐야 할 몇 가지 설정이 있다.

읽기 전용 옵션은 기본적으로 선택되어 있으며 선택을 취소할 수 없을 것이다.

이렇게 하면 API가 계정 세부 정보를 읽을 수 있으며 기본적으로 활성화되어 있다. Only 라는 용어가 포함되어 있기 때문에 약간 오해의 소지가 있을 수 있지만 이 옵션을 선택한 상태에서 다른 작업을 계속 수행할 수 있다.

Enable Trading , Enable Withdrawals  Enable Future 옵션도 있다 .

아직 API를 테스트 중이라면 선택하지 않은 상태로 두는 것이 좋다. 거래를 시작할 준비가 되었으면 거래 활성화 상자를 선택하고 선물 거래를 계획하는 경우 미래 ​​활성화 상자를 선택한다.

 

python-binance 라이브러리 설치

python-binance 라이브러리를 설치하는 가장 쉬운 방법은 pip를 사용하는 것이다. 명령줄에서 다음을 입력하기만 하면 된다.

pip install python-binance

API 키 보안

API 키를 환경 변수로 저장하는 것이 좋다. 이렇게 하면 코드를 GitHub에 업로드하거나 다른 사람에게 보낼 때 자격 증명이 노출될 위험이 없다.

이는 명령 프롬프트를 통해 수행할 수 있다. 다음은 Windows 사용자를 위한 구문이다.

set binance_api=your_api_key_here
set binance_secret=your_api_secret_here

Python을 실행하여 명령 프롬프트에서 바로 키가 저장되었는지 확인할 수 있다. 

그리고 이것은 터미널을 사용하여 Mac 또는 Linux 환경에서 환경 변수를 저장하는 방법이다.

 

export binance_api="your_api_key_here"
export binance_secret="your_api_secret_here"

예:

나중에 os 라이브러리를 사용하여 Python 거래 스크립트 내에서 이러한 값을 검색할 수 있다.

Binance 테스트 네트워크

바이낸스 API로 실시간 거래를 시작하기 전에 바이낸스 API 테스트넷에서 Python 거래 스크립트를 테스트할 수 있는 옵션이 있다.

https://testnet.binance.vision/ 

거기에서 Binance.com에 이미 계정이 있더라도 계정을 만들어야 한다.

로그인하면 새 API 키를 만들어야 한다. 이는 이전 단계에서 생성된 키와 별개이며 데모 계정에 액세스하는 데만 사용된다.

HMAC 키를 생성하는 옵션을 선택한다. 다음 단계에서 키를 설명하는 이름을 입력한다.

생성을 클릭하면 키를 표시하는 화면으로 이동한다. 이 화면을 벗어나면 비밀 키에 다시 액세스할 수 없다!

테스트 네트워크 계정은 일반적으로 매월 초에 삭제된다. 

Binance API로 계정 잔액 조회

이제 라이브러리를 설치하고 API 키를 얻었으므로 API에 대한 연결을 테스트할 차례이다. 클라이언트를 시작하고 다양한 계정 잔액을 자세히 설명하는 네 가지 기능을 확인하겠다.

import os

from binance.client import Client

 

# init
api_key = os.environ.get('binance_api')
api_secret = os.environ.get('binance_secret')

 

client = Client(api_key, api_secret)

클라이언트를 초기화하고 API 키와 비밀키를 전달한다. 

안타깝게도 python-binance 라이브러리는 테스트 네트워크를 지원하지 않는다. 그러나 다음과 같이 라이브러리에서 API URL을 수동으로 변경하여 연결할 수 있다.

client.API_URL = 'https://testnet.binance.vision/api'

데모 API로 시작하기로 결정한 경우 라이브 API 키가 아닌 클라이언트를 초기화할 때 테스트 네트워크 API 자격 증명을 통과하고 있는지 확인해야 한다.

# get balances for all assets & some account information
print(client.get_account())

위의 코드는 플랫폼에서 사용 가능한 모든 통화에 대한 모든 계정 세부 정보를 출력한다. 또한 현재 커미션 비율 및 귀하의 계정이 마진 거래에 대해 활성화되어 있는지 여부와 같은 기타 정보도 제공한다.

만약 BTC 잔액 에만 관심이 있다면 다른 파라미터를 전달한다.

# get balance for a specific asset only (BTC)
print(client.get_asset_balance(asset='BTC'))

다른 자산의 잔액 세부 정보를 찾고 있다면 원하는 자산으로 BTC를 전환하기만 하면 된다.

# get balances for futures account
print(client.futures_account_balance())

선물 계정의 계정 잔액은 기본 잔액과 별개이므로 다른 엔드포인트가 필요하다.

마진 계정에 액세스하는 방법은 다음과 같다. 마진 계정을 활성화하지 않은 경우 예외가 발생한다.

# get balances for margin account
print(client.get_margin_account())

 

'Project > AlgoTrading' 카테고리의 다른 글

Elliott Wave Analyzer 적용 [1]  (0) 2023.06.12
Binance API 기초 [4]  (0) 2023.06.07
Binance API 기초 [3]  (1) 2023.06.06
Binance API 기초 [2]  (0) 2023.06.06
Binance API를 이용한 Algorithm trading  (0) 2023.06.04