1. python-binance Package
URL은 아래 참고 하세요~~
https://python-binance.readthedocs.io/en/latest/index.html

제가 아직 컴맹인데.. 생각보다 잘만들어진 Package라서 바이낸스 API를 사용하실때 꼭 사용해보시라고 말씀드리고 싶습니다. 대략적으로 이렇게 지원 되는것 같습니다.
- Binance의 REST 및 WebSocket API에 대한 액세스
- 모든 바이낸스 주문 유형 지원
- 주문 및 취소와 같은 거래 기능
- 잔액조회, 거래내역조회 등 계정관리 기능
- 과거 및 실시간 시장 데이터
- 사용자 지정 속도 제한 처리
- 사용하기 쉬운 파이썬 구문
2. 현재 시장에서 가장 낮은 가격으로 구매 주문을 넣는 기능 code
from binance.client import Client
from binance.exceptions import BinanceAPIException
api_key = 'YOUR_API_KEY'
api_secret = 'YOUR_API_SECRET'
# Create a client instance
client = Client(api_key, api_secret)
# Define the symbol to trade and the amount to buy
symbol = 'BNBUSDT'
amount = 10
# Get the current market price
try:
price = client.get_symbol_ticker(symbol=symbol)['price']
except BinanceAPIException as e:
print(e)
exit()
# Calculate the total cost of the order
total_cost = float(price) * amount
# Place a market order to buy the symbol
try:
order = client.order_market_buy(
symbol=symbol,
quantity=amount,
quoteOrderQty=total_cost
)
except BinanceAPIException as e:
print(e)
exit()
print(f"Bought {order['executedQty']} {symbol} at {order['avgPrice']}")
주문 성공 했습니다 !@@@
3. futures_create_order() 함수 파라미터 공부하기
먼저 python-binance package에서 futures_create_order(파라미터)를 활용할 예정입니다.
parameter들은 무엇이 필요 한지는 binance doc에서 확인 할수 있어요. ( 아래 URL 참고)
https://binance-docs.github.io/apidocs/futures/en/#new-order-trade
해당 URL에서는 꼭 들어있어야 하는 파라미터와 세팅 방법들이 설명 되어 있습니다.

Paramter에 대한 이해가 많이 필요한 부분이 있습니다. 중요한 것들 몇개를 알아 보겠습니다.
■ symbol
거래 하고자 하는 종목으로 생각 하면 되며, BTCUSDT 종목 이면 parameter에 'BTCUSDT' 문자형으로 보내주면 될것 같습니다.
■ side
"side" 파라미터는 문자열 형태로 "BUY" 또는 "SELL" 값을 가질 수 있으며, 대소문자를 구분합니다. 사용자는 이 값을 설정하여 거래하려는 선물의 방향을 결정할 수 있습니다. 예를 들어, "BUY" 값을 설정하면 사용자는 해당 선물의 가격이 상승할 것으로 예상하고 매수 주문을 생성하게 됩니다. 반대로, "SELL" 값을 설정하면 사용자는 해당 선물의 가격이 하락할 것으로 예상하고 매도 주문을 생성하게 됩니다.
주문 유형에 따라 "side" 파라미터의 옵션이 다르며, 일반적으로 "LIMIT" 주문의 경우 "BUY" 또는 "SELL" 값을 설정하고, "MARKET" 주문의 경우 "BUY" 값은 시장가 매수 주문, "SELL" 값은 시장가 매도 주문으로 설정됩니다.
■ positionSide
- LONG: 이 값은 매수 포지션을 나타냅니다. 매수 포지션은 해당 계약에 대한 가격 상승을 기대하고 계약을 보유하고 있음을 나타냅니다.
- SHORT: 이 값은 매도 포지션을 나타냅니다. 매도 포지션은 해당 계약에 대한 가격 하락을 기대하고 계약을 보유하고 있음을 나타냅니다.
■ type
- LIMIT: 이 값은 지정된 가격 이하에서 매수 또는 매도 주문이 실행되도록 하는 주문 유형입니다. 주문이 실행되지 않을 수 있으며, 실행되지 않은 경우 시장 가격과 다를 수 있습니다.
- MARKET: 이 값은 시장 가격에서 즉시 매수 또는 매도 주문이 실행되도록 하는 주문 유형입니다. 주문이 보장되지만, 시장 가격과 다를 수 있습니다.
- STOP: 이 값은 지정된 가격 이상 또는 이하에서 매수 또는 매도 주문이 실행되도록 하는 주문 유형입니다. 현재 가격이 지정된 가격에 도달하면 주문이 자동으로 실행됩니다.
- TAKE_PROFIT: 이 값은 지정된 가격 이상 또는 이하에서 매수 또는 매도 주문이 실행되도록 하는 주문 유형입니다. 주문이 실행되면 해당 포지션을 청산하고 이익을 보호합니다.
- STOP_MARKET: 이 값은 지정된 가격 이상 또는 이하에서 시장 가격에서 즉시 매수 또는 매도 주문이 실행되도록 하는 주문 유형입니다. 현재 가격이 지정된 가격에 도달하면 주문이 자동으로 실행됩니다.
- TAKE_PROFIT_MARKET: 이 값은 지정된 가격 이상 또는 이하에서 시장 가격에서 즉시 매수 또는 매도 주문이 실행되도록 하는 주문 유형입니다. 주문이 실행되면 해당 포지션을 청산하고 이익을 보호합니다.
■ timeInForce
timeInForce 파라미터는 주문의 유효기간을 지정하는 데 사용
- GTC (Good Till Cancelled): 이 값은 주문이 체결될 때까지 계속 유효하도록 지정하는 옵션입니다. 이 옵션을 선택하면 주문은 취소되거나 수정될 때까지 유효합니다.
- IOC (Immediate Or Cancel): 이 값은 즉시 실행되지 않으면 주문을 취소하는 옵션입니다. 즉, 주문이 즉시 전부 또는 일부 체결되지 않으면 취소됩니다.
- FOK (Fill Or Kill): 이 값은 주문이 전부 체결되지 않으면 주문을 취소하는 옵션입니다. 즉, 주문이 전부 체결되지 않으면 취소됩니다.
- GTX (Good Till Crossing): 이 값은 시장 가격이 지정된 가격에 도달할 때까지 주문이 유효하도록 지정하는 옵션입니다. 이 옵션은 특정 가격에 도달하기 전에는 주문이 체결되지 않도록 합니다.
■ quantity
주문하려는 코인의 양을 지정하는 데 사용됩니다. 이 파라미터의 값은 거래하려는 코인의 최소 거래 단위를 고려하여 지정되어야 합니다. 즉, 거래소에서 지정한 최소 거래 단위를 고려하여 정확한 값을 지정해야 합니다.
예를 들어, 거래소에서 최소 거래 단위가 0.001 BTC이라면, quantity 파라미터 값은 0.001 BTC 이상의 값으로 지정해야 합니다. 만약 0.0005 BTC와 같이 최소 거래 단위보다 작은 값을 지정하면 오류가 발생합니다.
■ reduceOnly
주문이 현재 보유 중인 포지션을 감소시키는 용도로만 사용될지 여부를 결정하는 데 사용됩니다.
만약 reduceOnly 파라미터에 true 값을 지정하면, 해당 주문은 현재 보유 중인 포지션을 감소시키는 용도로만 사용될 수 있습니다. 즉, 해당 주문으로 새로운 포지션을 생성할 수 없습니다. 이러한 reduce-only 주문은 보유 중인 포지션을 닫을 때 사용되며, 포지션을 더 확장하거나 새로운 포지션을 만들 수 없도록 보장합니다.
반면, reduceOnly 파라미터에 false 값을 지정하면, 해당 주문은 새로운 포지션을 생성하는 데 사용될 수 있습니다. 이러한 주문은 새로운 포지션을 만들거나 기존 포지션을 확장할 때 사용됩니다.
■ price
주문을 실행할 때 사용할 가격을 지정하는 데 사용됩니다. 이 파라미터는 주문 유형(type)이 "Limit"인 경우에만 필요합니다.
"Limit" 주문은 특정 가격 이하로만 주문이 체결되도록 하는 주문 유형으로, price 파라미터는 이러한 제한 가격을 설정하는 데 사용됩니다. 만약 price 파라미터에 값이 지정되지 않으면, 시장 가격으로 주문이 체결됩니다.
예를 들어, 현재 BTC/USDT 가격이 60,000 USDT이고, "Limit" 주문으로 BTC를 1개 매도하려면, price 파라미터에 59,000 USDT와 같은 값으로 지정하면 59,000 USDT 또는 그보다 높은 가격에서만 주문이 체결됩니다. 그러나 price 파라미터를 지정하지 않으면, 주문은 시장 가격인 60,000 USDT에서 즉시 체결될 것입니다.
■ newClientOrderId
주문을 생성할 때 고객이 지정한 고유한 ID를 설정하는 데 사용됩니다. 이 파라미터는 선택적이며, 지정하지 않아도 됩니다.
newClientOrderId 파라미터는 주문을 추적하고 관리하는 데 유용합니다. 이를 통해 중복 주문을 방지하고, 원하지 않는 주문 취소를 방지할 수 있습니다. 예를 들어, 한 번 주문을 생성하면 그 ID를 추적하여 동일한 ID로 중복 주문을 방지할 수 있습니다.
예시 코드 현재 시간을 포함한 고유한 문자열을 생성하여 설정
import time
from binance.client import Client
client = Client(api_key, api_secret)
# 현재 시간을 포함한 고유한 문자열 생성
new_client_order_id = f"my_order_{int(time.time() * 1000)}"
# 선물 계약 거래 주문 생성
order = client.futures_create_order(
symbol='BTCUSDT',
side='BUY',
type='LIMIT',
timeInForce='GTC',
quantity=1,
price='50000',
newClientOrderId=new_client_order_id
)
print(order)
■ stopprice
주문 유형이 "Stop" 또는 "Stop-Limit"인 경우에 사용되는 파라미터입니다.
"Stop" 주문은 현재 가격이 지정한 가격에 도달하면 주문이 실행되는 주문 유형입니다. "Stop-Limit" 주문은 "Stop" 주문과 유사하지만, 지정한 가격에 도달하면 "Limit" 주문으로 전환되어 실행됩니다.
stopPrice 파라미터는 "Stop" 또는 "Stop-Limit" 주문에서 지정한 가격을 설정하는 데 사용됩니다. 이 파라미터는 주문을 만들 때 지정할 수 있으며, 지정하지 않을 경우 시장 가격을 기준으로 합니다.
예를 들어, 현재 BTC/USDT 가격이 60,000 USDT이고, "Stop-Limit" 주문으로 BTC를 매수하려면, stopPrice 파라미터에 61,000 USDT와 같은 값으로 지정하여 61,000 USDT 이상으로 가격이 상승했을 때 "Limit" 주문이 실행되도록 설정할 수 있습니다.
■ closePosition
해당 주문이 포지션을 종료하는 데 사용되는 파라미터입니다. 이 파라미터는 선택적이며, 지정하지 않아도 됩니다.
만약 closePosition 파라미터를 True로 설정하면, 해당 계정의 해당 심볼(symbol)에 대한 모든 포지션이 종료됩니다. 따라서, 해당 주문이 해당 계정의 모든 포지션을 종료하는 데 사용되는 것입니다.
반면에, closePosition 파라미터를 False로 설정하면, 해당 계정의 해당 심볼에 대한 포지션을 종료하지 않습니다. 따라서, 해당 주문은 새로운 포지션을 만들거나 이미 존재하는 포지션에 추가될 수 있습니다.
따라서, closePosition 파라미터는 해당 주문이 포지션을 종료하는 데 사용되는 선택적인 파라미터입니다. 이 파라미터를 사용하여 주문이 포지션을 종료하도록 설정할 수 있으며, 이를 통해 해당 계정의 포지션을 효과적으로 관리할 수 있습니다.
from binance.client import Client
client = Client(api_key, api_secret)
# LONG 포지션을 닫는 주문 생성
order = client.futures_create_order(
symbol='BTCUSDT',
side='SELL',
type='MARKET',
positionSide='LONG',
quantity=1,
closePosition=True
)
# SHORT 포지션을 닫는 주문 생성
order = client.futures_create_order(
symbol='BTCUSDT',
side='BUY',
type='MARKET',
positionSide='SHORT',
quantity=1,
closePosition=True
)
■ activationPrice
activationPrice 파라미터는 "Take Profit" 주문과 "Stop-Limit" 주문에서 사용되는 파라미터입니다. 이 파라미터는 해당 주문이 실행될 때 활성화되는 가격을 지정하는 데 사용됩니다.
"Take Profit" 주문은 지정한 가격에 도달하면 주문이 실행되는 주문 유형입니다. "Stop-Limit" 주문은 "Stop" 주문과 유사하지만, 지정한 가격에 도달하면 "Limit" 주문으로 전환되어 실행됩니다.
activationPrice 파라미터는 "Take Profit" 주문 및 "Stop-Limit" 주문에서 활성화되는 가격을 지정하는 데 사용됩니다. 이 파라미터는 주문을 만들 때 지정할 수 있으며, 지정하지 않을 경우 시장 가격을 기준으로 합니다.
예를 들어, 현재 BTC/USDT 가격이 60,000 USDT이고, "Take Profit" 주문으로 BTC를 매수하려면, activationPrice 파라미터에 62,000 USDT와 같은 값으로 지정하여 62,000 USDT 이상으로 가격이 상승했을 때 주문이 실행되도록 설정할 수 있습니다.
따라서, activationPrice 파라미터는 "Take Profit" 주문 및 "Stop-Limit" 주문에서 주문이 실행되는 가격을 설정하는 중요한 파라미터입니다
from binance.client import Client
client = Client(api_key, api_secret)
# STOP 주문 생성
order = client.futures_create_order(
symbol='BTCUSDT',
side='SELL',
type='STOP',
timeInForce='GTC',
quantity=1,
price='40000',
activationPrice='38000'
)
# TAKE_PROFIT 주문 생성
order = client.futures_create_order(
symbol='BTCUSDT',
side='SELL',
type='TAKE_PROFIT',
timeInForce='GTC',
quantity=1,
price='42000',
activationPrice='44000'
)
■ callbackRate
"callbackRate" 파라미터는 "TRAILING_STOP_MARKET" 주문에서 사용되며, 트레일링 스탑 가격 간격을 설정합니다. 예를 들어, "callbackRate"가 0.1%로 설정되면, 매수 포지션의 경우 현재 가격이 상승하여 트레일링 스탑 가격이 상승하게 됩니다. 만약 가격이 0.1% 떨어지면, 스탑 가격은 현재 가격에서 0.1% 낮아지게 됩니다.
from binance.client import Client
client = Client(api_key, api_secret)
# TRAILING_STOP_MARKET 주문 생성
order = client.futures_create_order(
symbol='BTCUSDT',
side='SELL',
type='TRAILING_STOP_MARKET',
quantity=1,
callbackRate='0.1'
)
■ workingType
"workingType"은 선물 계약 거래에서 주문 유형을 나타내며 다음과 같은 값 중 하나를 가질 수 있습니다:
- "MARK_PRICE": 이 옵션을 선택하면 주문이 시장 가격으로 즉시 체결됩니다. 시장가 주문이라고도 합니다. 현재 시장 가격에서 주문을 체결하므로 즉각적으로 거래를 할 수 있습니다.
- "CONTRACT_PRICE": 이 옵션을 선택하면 주문이 지정된 가격 또는 그 이하의 가격으로 체결됩니다. 지정가 주문이라고도 합니다. 이 옵션을 선택하면 거래가 지정된 가격에 도달할 때까지 대기합니다. 따라서 시장 가격이 지정된 가격에 도달하지 않으면 주문은 체결되지 않습니다.
- "OPPOSITE": 이 옵션은 기존 주문의 반대쪽에 대한 주문을 생성합니다. 예를 들어, 이미 "BUY" 주문을 생성했다면 "SELL" 주문을 생성하여 반대 방향으로 거래할 수 있습니다
from binance.client import Client
client = Client(api_key, api_secret)
# MARK_PRICE 주문 생성
order = client.futures_create_order(
symbol='BTCUSDT',
side='BUY',
type='LIMIT',
timeInForce='GTC',
quantity=1,
price='50000',
workingType='MARK_PRICE'
)
■ priceProtect
가격 보호 기능을 설정하는 데 사용됩니다.
가격 보호 기능은 선물 계약 거래에서 주문을 생성할 때 사용자가 지정한 가격보다 높은 가격으로 체결되지 않도록 하는 기능입니다. 이 기능은 가격이 급격하게 상승하는 시장에서 발생할 수 있는 음의 영향을 방지하기 위해 사용됩니다.
"priceProtect" 파라미터는 다음과 같은 값을 가질 수 있습니다:
- "TRUE": 이 옵션을 선택하면 주문이 가격 보호 기능과 함께 생성됩니다. 따라서 주문이 사용자가 지정한 가격보다 높은 가격으로 체결되지 않습니다.
- "FALSE": 이 옵션을 선택하면 가격 보호 기능이 해제된 주문이 생성됩니다. 따라서 주문이 사용자가 지정한 가격보다 높은 가격으로 체결될 수 있습니다.
from binance.client import Client
client = Client(api_key, api_secret)
# TAKE_PROFIT 주문 생성
order = client.futures_create_order(
symbol='BTCUSDT',
side='BUY',
type='TAKE_PROFIT',
timeInForce='GTC',
quantity=1,
stopPrice='55000',
price='55500',
priceProtect=True
)
priceProtect" 파라미터를 사용하여 "TAKE_PROFIT" 주문이 체결되지 않으면 주문이 자동으로 취소되도록 설정
■ newOrderRespType
"newOrderRespType"은 새로운 주문이 생성된 후 서버로부터 받을 응답 유형을 설정하는 데 사용됩니다.
"newOrderRespType" 파라미터는 다음과 같은 값을 가질 수 있습니다:
- "ACK": 이 옵션을 선택하면 서버로부터 주문이 성공적으로 받아들여졌다는 응답만을 받습니다. 주문이 체결되었는지 여부는 확인할 수 없습니다.
- "RESULT": 이 옵션을 선택하면 주문이 성공적으로 체결되었는지 여부를 포함한 주문 결과를 서버로부터 받습니다. 따라서 서버의 응답에는 주문 ID와 함께 주문이 체결되었는지 여부도 포함됩니다.
- "FULL": 이 옵션을 선택하면 주문이 체결된 후 모든 상세 정보를 서버로부터 받습니다. 따라서 서버의 응답에는 주문 ID, 주문 수량, 체결 가격, 수수료 등 모든 세부 정보가 포함됩니다.
from binance.client import Client
client = Client(api_key, api_secret)
# FULL 형식의 응답을 받는 주문 생성
order = client.futures_create_order(
symbol='BTCUSDT',
side='BUY',
type='LIMIT',
timeInForce='GTC',
quantity=1,
price='50000',
newOrderRespType='FULL'
)
■ recvWindow
"recvWindow" 파라미터는 밀리초(millisecond) 단위로 설정할 수 있으며, 이 값은 60,000 밀리초(60초)에서 600,000 밀리초(10분) 사이의 값을 가질 수 있습니다. 이 파라미터는 주문 생성 시간으로부터 일정 시간이 지난 후에는 더 이상 해당 주문을 처리하지 않도록 설정할 수 있습니다.
이 파라미터를 설정하는 이유는 서버와 클라이언트 간의 네트워크 지연이나 부정확한 시간 동기화 때문에 발생할 수 있는 시간 차이를 보상하기 위함입니다. 예를 들어, 사용자가 주문을 생성하고 서버가 해당 주문을 처리하는 데 걸리는 시간이 5초이고 "recvWindow" 값이 10초로 설정되어 있다면, 5초 이내에 서버로부터 응답을 받아야 합니다. 그렇지 않으면 해당 주문은 처리되지 않습니다.
"recvWindow" 파라미터를 사용하여 10초 동안 서버 응답을 대기하도록 설정
from binance.client import Client
client = Client(api_key, api_secret)
# recvWindow 값이 10초인 주문 생성
order = client.futures_create_order(
symbol='BTCUSDT',
side='BUY',
type='LIMIT',
timeInForce='GTC',
quantity=1,
price='50000',
recvWindow=10000
)
■ timestamp
주문 생성 시간을 밀리초(millisecond) 단위로 설정할 수 있습니다. 일반적으로 서버 시간과 클라이언트 시간 간의 차이 때문에 타임스탬프를 설정하여 사용자가 생성한 주문 시간과 서버가 수신한 주문 시간이 일치하도록 합니다.
예를 들어, 사용자가 2023년 3월 24일 오후 3시 30분 0초에 주문을 생성하려고 하면, 해당 주문의 "timestamp" 값은 2023년 3월 24일 오후 3시 30분 0초를 밀리초 단위로 변환한 값인 1,645,986,000,000이 됩니다.
따라서, "timestamp" 파라미터를 적절하게 설정하여 사용자는 서버와의 시간 차이 등으로 발생할 수 있는 오류를 방지하고 안정적인 선물 계약 거래를 할 수 있습니다.
현재 시간의 timestamp 값을 "timestamp" 파라미터로 전달하여 API 요청
from binance.client import Client
client = Client(api_key, api_secret)
# 현재 시간의 timestamp 값으로 주문 생성
current_timestamp = int(time.time() * 1000)
order = client.futures_create_order(
symbol='BTCUSDT',
side='BUY',
type='LIMIT',
timeInForce='GTC',
quantity=1,
price='50000',
timestamp=current_timestamp
)
4. 에러 관련 정보 공유
코딩작업을 하면서 만남 에러들~
① APIError(code=-1021): Timestamp for this request was 1000ms ahead of the server's time.
② APIError(code=-1106): Parameter 'timeInForce' sent when not required.
서버 시간과 1000ms(1초) 이상 차이가 날 경우 발생합니다. Binance API는 모든 요청에 대해 서버 시간과 요청 시간의 차이를 검사하며, 이 오류가 발생하면 API 요청이 거부됩니다.
이 오류를 해결하려면 다음 몇 가지 방법 중 하나를 사용할 수 있습니다.
첫번째는 서버 시간과 클라이언트 시간을 동기화합니다.
Binance API는 모든 요청에 대해 서버 시간과 요청 시간의 차이를 검사하므로, 서버 시간과 클라이언트 시간의 차이를 최소화하는 것이 중요합니다. 서버 시간과 클라이언트 시간을 동기화하는 가장 쉬운 방법은 Binance API에서 제공하는 서버 시간을 사용하는 것입니다.
from binance.client import Client
client = Client(api_key, api_secret)
# 서버 시간 가져오기
server_time = client.get_server_time()
# API 요청 생성
order = client.futures_create_order(
symbol='BTCUSDT',
side='BUY',
type='LIMIT',
timeInForce='GTC',
quantity=1,
price='60000',
timestamp=server_time['serverTime']
)
두번째 방법은 요청 시간을 1000ms 이내로 조정합니다.
서버 시간과 클라이언트 시간의 차이를 최소화할 수 없는 경우에는 API 요청에서 timestamp 필드를 현재 시간에서 1000ms 이내로 조정해야 합니다. 이 방법은 다음과 같이 구현할 수 있습니다.
import time
from binance.client import Client
client = Client(api_key, api_secret)
# 현재 시간 가져오기
current_time = int(time.time() * 1000)
# API 요청 생성
order = client.futures_create_order(
symbol='BTCUSDT',
side='BUY',
type='LIMIT',
timeInForce='GTC',
quantity=1,
price='60000',
timestamp=current_time
)
마지막 방법을 추천 드립니다. ( 아래 참고 )

② APIError(code=-1106): Parameter 'timeInForce' sent when not required.
timeInForce 매개변수가 필요하지 않은 요청에서 해당 매개변수를 보내는 경우 발생합니다. 이 오류를 해결하려면 해당 요청에서 timeInForce 매개변수를 제거하면 됩니다.
예를 들어, MARKET 주문 유형에서는 timeInForce 매개변수가 필요하지 않으므로 다음과 같이 주문을 생성할 수 있습니다.
from binance.client import Client
client = Client(api_key, api_secret)
# 시장가 주문 생성
order = client.create_order(
symbol='BTCUSDT',
side='BUY',
type='MARKET',
quantity=1,
newOrderRespType='FULL'
)
③ APIError(code=-2019): Margin is insufficient.
해당 계정에 충분한 마진이 없어서 발생합니다. 이 오류를 해결하려면 먼저 해당 계정의 마진 상태를 확인해야 합니다.
Binance API에서는 get_margin_account() 메서드를 사용하여 마진 계정의 정보를 가져올 수 있습니다. 예를 들어, 다음과 같이 현재 계정의 마진 정보를 가져올 수 있습니다.
from binance.client import Client
client = Client(api_key, api_secret)
# 마진 계정 정보 조회
margin_info = client.get_margin_account()
# 마진 계정 총 자산과 대출한 금액 출력
print("마진 계정 총 자산:", margin_info['totalNetAssetOfBtc'])
print("대출한 금액:", margin_info['totalLoanAsset'])
5. PYTHON으로 주문 확인 하기
간단한 주문하기 해보았습니다.
from binance.client import Client
from binance.enums import *
import time
# Set up the client
# Binance 서버 시간 가져오기
server_time = client.get_server_time()
print(server_time)
server_timestamp = server_time['serverTime']
# 현재 시간을 가져와 타임스탬프로 변환하기
current_time = int(time.time() * 1000)
# 타임스탬프 확인하기
print('Server timestamp:', server_timestamp)
print('Current timestamp:', current_time)
# Create the order & Define the order parameters
order = client.futures_create_order(
symbol = 'BTCUSDT',
side = 'BUY',
position_side = 'SHORT',
type = 'MARKET',
# timeInForce='GTC', # MARKET 주문 유형에서는 timeInForce 매개변수가 필요하지 않음
quantity = 0.002, # 최소 주문량 확인 필요
reduceOnly = 'false', # True = 현재 보유 중인 포지션을 감소 / false = 해당 주문은 새로운 포지션을 생성
# price = ' ', # Limit 주문시에만
# newClientOrderId = '', # ID생성 X
# stopprice = ' ', # "Stop" 또는 "Stop-Limit"인 경우
# closePosition = 'true' # 매수주문
newOrderRespType = 'FULL', # 주문이 체결된 후 모든 상세 정보를 서버로부터 받음
# recvWindow=10000, # 주문대기시간 from 서버 10s
timestamp=server_timestamp # 현재 시간으로 주문
)
# Print the order details
print(order)
아래와 같이 주문 설정되어 있는 것을 확인 할 수 있습니다.

'Python 끄적 > 가상화폐 자동화 프로그램' 카테고리의 다른 글
#8.비트코인 선물 자동구매 프로그램 - 선물1분봉 + RSI/MACD/이평선 => 엑셀 파일로 출력 (1) | 2023.03.27 |
---|---|
#7.비트코인 선물 자동구매 프로그램 - 선물시장 데이터 가져오기 (0) | 2023.03.25 |
#5.비트코인 선물 자동구매 프로그램 - (웹)선물 주문 + Python으로 주문 내역 확인 하기 (0) | 2023.03.24 |
#4.비트코인 선물 자동구매 프로그램 - 선물 공부 Leverage 세팅 (0) | 2023.03.22 |
#2.비트코인 선물 자동구매 프로그램 - Binance API 친해지기 (1) | 2023.03.18 |