[英]Python Binance Api Margin Short Order
祝大家有美好的一天。 在创建保证金多头订单和偿还贷款时,我没有遇到任何问题。 但是当我尝试创建一个空头订单时,我收到了一个错误。 首先,从系统中借用 function 有效,但是在创建保证金订单时,我收到APIError(code=-1013): Filter failure: LOT_SIZE 。 我尝试乘以 0.99,但没有用。 我以前在许多不同的页面上搜索过,看看是否有关于它的文章。 请不要重定向到其他页面。
class ShortOrderEntry(Order):
def __init__(self):
self.acc = Account.getInstance()
def Execute(self):
try:
self.GetBtcLoan()
order = self.acc.client.create_margin_order(symbol="BTCUSDT", side=SIDE_SELL, isIsolated='TRUE',
type=ORDER_TYPE_MARKET,
quantity=self.acc.FloorPrecisionFix(
self.MaxBTCAmount() / 100 * 99, 6))
print(order)
except Exception as e:
print("Something Went Wrong While Entering Short Enter Position", e)
def GetBtcLoan(self):
try:
self.acc.client.create_margin_loan(asset="BTC", amount=self.MaxBTCAmount(), symbol="BTCUSDT",
isIsolated='TRUE')
except Exception as e:
print("Something Went Wrong While taking short entry loan", e)
def MaxBTCAmount(self):
return self.acc.FloorPrecisionFix(self.acc.GetMaxMarginAmount("BTC") / 100 * 99, 6)
我正在写这个答案,以防将来有人会遇到与我类似的问题。 它们对每个符号都有单独的精度。 对于 BTCUSDT,这个精度是 5。而且你不需要从系统中借代码。 系统本身会处理这个问题。 所以 GetBtcLoan() function 在这里是不必要的 function 。
class ShortOrderEntry(Order):
def __init__(self):
self.acc = Account.getInstance()
self.database = Database.getInstance()
def Execute(self):
try:
# self.GetBtcLoan()
order = self.acc.client.create_margin_order(symbol="BTCUSDT", side=SIDE_SELL, type="MARKET",quantity=self.MaxBTCAmount(), sideEffectType="MARGIN_BUY",isIsolated=True)
order['price'] = self.acc.CalculateWeightedAvg(order)
order['side'] = "SHORTENTRY"
order['commission'] = self.acc.SumOfCommission(order)
self.database.CreateNewMarginLog(order)
ClientData.marginLastPosition = order['price']
print(order)
except Exception as e:
print("Something Went Wrong While Entering Short Enter Position", e)
def MaxBTCAmount(self):
return self.acc.FloorPrecisionFix(self.acc.GetMaxMarginAmount("BTC") / 100 * 99, 5)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.