やりたいこと
binance future api使って現在入ってるポジションがlongかshortか取得する
binance future api使えるように設定
import ccxt
binance = ccxt.binance(config={
'apiKey': env("API_KEY"),
'secret': env("API_SECRET"),
'enableRateLimit': True,
'options': {
'defaultType': 'future'
}
})
long, short区別方法
balance = self.binance.fetch_balance()
positions = balance['info']['positions']
for position in positions:
if position["symbol"] == self.pair:
print(float(position['positionAmt']))
if float(position['positionAmt']) > 0:
# LONGで、ETH 0.010で入った場合、0.010が入る
print("LONG")
if float(position['positionAmt']) < 0:
# SHORTでETH 0.010で入った場合、-0.010が入る
print("SHORT")
if float(position['positionAmt']) == 0:
# どちらも入ってない場合、0.0が入ってくる
print("NONE")
position 情報
for position in positions:
if position["symbol"] == 'ETHUSDT':
pprint.pprint(position)
{'entryPrice': '0.0',
'initialMargin': '0',
'isolated': False,
'isolatedWallet': '0',
'leverage': '1',
'maintMargin': '0',
'maxNotional': '9.223372036854776E18',
'notional': '0',
'openOrderInitialMargin': '0',
'positionAmt': '0.000',
'positionInitialMargin': '0',
'positionSide': 'BOTH',
'symbol': 'ETHUSDT',
'unrealizedProfit': '0.00000000',
'updateTime': '1631366894068'}
こんな面倒なやり方で、自分が入ってるpositionがlongかshortかを区別する理由
position情報は取得できるが、binanceでは、position sideは返してくれないから