簡體   English   中英

精度超過為此資產定義的最大值。 python-binance 模塊

[英]Precision is over the maximum defined for this asset. python-binance module

我用 python-binance 模塊編寫了一個交易機器人,該機器人從消息中獲取代幣名稱,而不是像接受消息一樣打開 position > 對消息中的代幣打開長 position > 為 position 設置限價賣單

機器人可以做前兩個,但當它嘗試做最后一個時,它會給出錯誤“精度超過為此資產定義的最大值。” 我在 inte.net 上查找解決方案,並嘗試使用此代碼設置 sellPrice

float(str(price).split('.')[0] + "." + str(price).split('.')[1][0:5])+(price*0.3/100)

我從 inte.net 獲取代碼的第一部分,它是float(str(price).split('.')[0] + "." + str(price).split('.')[1][0:5])

並添加了將 sellPrice 設置為高於我購買價格 %0.3 的部分

這是我的代碼

coinName = "ONEUSDT"
print(coinName)
symbol = coinName
amount = "1"
leverage = "20"
self.client.futures_change_leverage(symbol=symbol, leverage=leverage)
price=float(self.client.get_symbol_ticker(symbol=symbol)["price"])
print(price)
amount = float(amount)
leverage = float(leverage)
quantity =(amount*leverage)/price
quantity = int(quantity)
self.client.futures_create_order(symbol=symbol,side="BUY",type="MARKET",quantity=quantity)
time.sleep(3)
self.client.futures_create_order(symbol=symbol,side="SELL",type="LIMIT",price =float(str(price).split('.')[0] + "." + str(price).split('.')[1][0:5])+(price*0.3/100),quantity=quantity,timeInForce="GTC")

你能幫助我嗎?

看起來您正在尋找 tick_size,它將顯示將價格四舍五入到多少位小數。 您可以導入一個輔助模塊來進行舍入,我們可以在其中運行報價大小和價格。 這些文檔可以在這里看到:

幣安訂單過濾器

我們需要確保從 app.py 頂部的 helper 模塊導入 helper function。 然后在腳本正文中插入以下 function。 假設您的 inte.net 消息正確地給了我們一個價格,那么cost將是我們可以作為四舍五入的價格插入到我們的最終訂單中的變量。 我只是在我的解釋器中運行它,它可以使用替代值:

from binance.helpers import round_step_size # add at top

cost = float(str(price).split('.')[0] + "." + str(price).split('.')[1][0:5])+(price*0.3/100)

data = self.client.futures_exchange_info() # request data
info = data['symbols'] # pull list of symbols
for x in range(len(info)): # find length of list and run loop
    if info[x]['symbol'] == symbol: # until we find our coin
        a = info[x]["filters"][0]['tickSize'] # break into filters pulling tick size
        cost = round_step_size(cost, float(a)) # convert tick size from string to float, insert in helper func with cost
        print(cost) # run into order parameter as price=cost

為您的編碼和交易干杯並祝您好運!

您需要添加小數位以避免此錯誤,例如:var1 = 0.5 # 這會導致錯誤

FIX var1 = 0.5000 # 修復錯誤

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM