import requests
import json
import time
data = requests.get('https://fapi.binance.com/fapi/v1/ticker/bookTicker').json()
All_USDT_Ticker = {}
for x in data:
if x['symbol'].endswith('USDT'):
All_USDT_Ticker[x['symbol']] = float(x['bidPrice'])
time.sleep(0.5)
exchange_info = requests.get('https://fapi.binance.com/fapi/v1/exchangeInfo').json()
min_notional = {}
min_order_amounts = {}
for symbol_info in exchange_info['symbols']:
symbol = symbol_info['symbol']
if not symbol.endswith('USDT'):
continue
filters = {f['filterType']: f for f in symbol_info['filters']}
if symbol in All_USDT_Ticker :
if 'MIN_NOTIONAL' in filters:
min_notional[symbol] = float(filters['MIN_NOTIONAL']['notional'])
if 'LOT_SIZE' in filters :
min_order_amounts[symbol] = round( float(filters['LOT_SIZE']['minQty']) * All_USDT_Ticker[symbol], 2)
print('notional :',min_notional)
print('amounts :',min_order_amounts)
코인마다 최소 주문 수량, 금액이 있습니다.
해당 기준보다 적은 주문을 넣으면 주문이 거절됩니다.
위의 코드를 실행했을 때 출력되는 결과입니다.
notional : {'BTCUSDT': 100.0, 'ETHUSDT': 20.0, 'BCHUSDT': 20.0, 'XRPUSDT': 5.0, ..., 'SOLUSDT': 5.0,}
amounts : {'BTCUSDT': 98.58, 'ETHUSDT': 3.46, 'BCHUSDT': 0.54, 'XRPUSDT': 0.16, ..., 'SOLUSDT': 260.5,}
notional은 최소 주문 금액입니다.
amounts는 최소 주문 수량 * 현재가격 입니다.
주문을 넣을 땐 양쪽 금액 이상으로 주문해야 합니다.
예를들어 이더리움의 amounts가 3.46이라 해서
그보다 큰 4~5달러만 주문하면 되는게 아니라
notional의 20달러 이상으로 주문해야 합니다.
반대로 SOL은 notional이 5.0이지만
amounts의 260.5보다 더 큰 금액을 주문해야 합니다.
알트들 단타칠 때 지나치게 큰 금액을 넣지 않기 위해서
자신이 생각한 분할 매수 금액보다 큰 주문이 요구되는 종목은
나중에 조건문을 사용해서 걸러내면 됩니다.
limit_amounts = 20
if min_notional[symbol] > limit_amounts or min_order_amounts[symbol] > limit_Quantity:
continue
대충 20달러 이상 주문을 넣어야 하는 종목은 넘기는 조건문
'파이썬 > 바이낸스 선물 API' 카테고리의 다른 글
[선물 API] 미체결 주문 목록 가져오기 (0) | 2024.12.05 |
---|---|
[선물 API] 주문 넣기, 취소하기 (0) | 2024.11.21 |
[선물 API] 바이낸스 선물 레버리지 배율 변경 (0) | 2024.11.21 |
[선물 API] 유통 공급량을 이용한 시총 계산 (0) | 2024.01.31 |
[선물API] 계좌 정보 불러오기 (0) | 2023.06.22 |