해당 코드는 과거에 사용하고 최근에 개선하지 않은 코드입니다.
제대로 작동하지 않을 수 있습니다.
import ccxt
import asyncio
import logging
# API, Secret Key가 저장된 txt 파일을 불러오는 코드. 경로는 바꿔도 상관없다.
with open("D:/코인/binance key.txt") as f:
lines = f.readlines()
api_key = lines[0].strip()
secret_key = lines[1].strip()
logger = logging.getLogger('ccxt')
logger.setLevel(logging.ERROR)
Futures_binance = ccxt.binance({
'apiKey': api_key,
'secret': secret_key,
'enableRateLimit': True,
'options': {
'defaultType': 'future',
'adjustForTimeDifference': True,
}
})
async def batch_order(orders):
try:
response = Futures_binance.fapiPrivatePostBatchOrders({
'batchOrders': '[' + ','.join(orders) + ']'
})
print(response)
except Exception as e:
print('Error:', str(e))
# 주문 리스트
order_count = 5
orders = []
symbol = 'ETH/USDT'
markets = Futures_binance.load_markets()
for x in range(order_count):
orders += [{'symbol': symbol.translate({ord('/'): None}),
'side': 'BUY',
"positionSide": "LONG",
'type': 'LIMIT',
'quantity': Futures_binance.amount_to_precision(symbol, 0.006),
'price': Futures_binance.price_to_precision(symbol, 1700 * ( 1 - x * 0.01)),
'timeInForce': 'GTC'},]
#print(orders)
orders = [Futures_binance.encode_uri_component(Futures_binance.json(order), safe=",") for order in orders]
Futures_binance.verbose = True # for debugging purposes
# batch_order 함수 호출
loop = asyncio.get_event_loop()
loop.run_until_complete(batch_order(orders))
참조
Is it possible to Place Multiple Orders Binance · Issue #6805 · ccxt/ccxt · GitHub, 08) 계좌 잔고 조회 - 파이썬을 이용한 비트코인 자동매매 (개정판) (wikidocs.net)
동시에 넣을 수 있는 주문의 최대치는 5개
quantity에서 0.006은 주문 할 수량, price에서 1700은 가격이다.
나중에 차트를 불러와서 연동시킬 계획이므로 이 둘은 따로 변수를 만들어 관리하지 않았다.
가격 1700을 기준으로 1%씩 낮은 가격마다 LONG 포지션으로 BUY 주문을 넣도록 되어있다.
(반대의 경우 SHORT, SELL)
물론 위처럼 한 종목에 여러 주문을 넣는 것 말고, 여러 종목에 주문을 넣는 것 또한 가능하다.
주문을 넣게되면 fetch Request, Response 메시지가 출력된다.
해당 메시지가 출력되지 않도록 setLevel(lpgging.ERROR)를 설정하였지만 해결하지 못했다.
주문이 정상적으로 입력되면 print문을 통해 아래의 메시지가 출력된다.
[{'symbol': 'ETHUSDT', 'side': 'BUY', 'positionSide': 'LONG', 'type': 'LIMIT', 'quantity': 0.05, 'price': 1600.0},
{'symbol': 'ETHUSDT', 'side': 'BUY', 'positionSide': 'LONG', 'type': 'LIMIT', 'quantity': 0.05, 'price': 1584.0},
{'symbol': 'ETHUSDT', 'side': 'BUY', 'positionSide': 'LONG', 'type': 'LIMIT', 'quantity': 0.05, 'price': 1568.0},
{'symbol': 'ETHUSDT', 'side': 'BUY', 'positionSide': 'LONG', 'type': 'LIMIT', 'quantity': 0.05, 'price': 1552.0},
{'symbol': 'ETHUSDT', 'side': 'BUY', 'positionSide': 'LONG', 'type': 'LIMIT', 'quantity': 0.05, 'price': 1536.0}]
음.. 이것도 좀 글을 최신화 할까 했는데
어차피 잘 안쓰는 방법이라 그냥 생략함
혹시나 필요한 사람 있을까봐 일단 냅둠
'파이썬 > 바이낸스 선물 API' 카테고리의 다른 글
[선물 API] 주문 넣기, 취소하기 (0) | 2024.11.21 |
---|---|
[선물 API] 바이낸스 선물 레버리지 배율 변경 (0) | 2024.11.21 |
[선물 API] 유통 공급량을 이용한 시총 계산 (0) | 2024.01.31 |
[선물API] 계좌 정보 불러오기 (0) | 2023.06.22 |
[선물 API] 차트 데이터 불러오기 (0) | 2023.06.17 |