2017-08-30 114 views
2

所以我一直recieveing此消息試圖交易場所使用時ccxt:杜撰改寫

「時間戳此請求是無效的。」

我讀過的ccxt手冊和它說覆蓋現時我應該使用:

class MyBitfinex (ccxt.bitfinex): 
    def nonce (self): 
     return self.milliseconds() 

但我就是不明白如何使這項工作。我沒有太高級的Python程序員。

任何幫助肯定是讚賞

這裏是我試圖去運行代碼:

def BuyAll (symbol): 

base = markets[symbol]['base'] 
quote = markets[symbol]['quote'] 
Balances = binance.fetchBalance() 
quoteBalance = Balances[quote]['free'] 
stopOut = 0 
orderBookPosition = 0 

while quoteBalance > stopOut: 
    print('quote balance',quoteBalance) 
    runningBalance = quoteBalance - stopOut 
    orderbook = binance.fetchOrderBook(symbol) 


    if (orderbook['asks'][orderBookPosition][1])*(orderbook['asks'][orderBookPosition][0])< runningBalance: 
     if base == 'BNB': 
      quantity = truncate(orderbook['asks'][orderBookPosition][1],0) 
     else: 
      quantity = truncate(orderbook['asks'][orderBookPosition][1],3) 
     print('quantity',quantity) 
     binance.createLimitBuyOrder(symbol,quantity,orderbook['asks'][orderBookPosition][0]) 
     print('Bought' + ' ' + symbol) 
     stopOut += (orderbook['asks'][orderBookPosition][1])*(orderbook['asks'][orderBookPosition][0]) 

    elif (runningBalance)/(orderbook['asks'][orderBookPosition][0]) > 0: 

     if base == 'BNB': 
      amount = int((runningBalance)/(orderbook['asks'][orderBookPosition][0])) 

     else: 
      amount = truncate((runningBalance)/(orderbook['asks'][orderBookPosition][0]),3) 

     print('amount',amount) 
     binance.createLimitBuyOrder(symbol,amount,orderbook['asks'][orderBookPosition][0]) 
     print('Bought' + ' ' + symbol) 
     stopOut += (orderbook['asks'][orderBookPosition][1])*(orderbook['asks'][orderBookPosition][0]) 
    orderBookPosition += 1 

這裏是我得到的錯誤:

回溯(最近通話最後): 文件 「C:\用戶\斯科特\應用程序數據\本地\程序\的Python \ Python35 \ lib中\站點包\ ccxt \ exchange.py」,線209,在獲取響應 = opener.open(請求,超時= int(self.timeout/1000)) 文件 「C:\用戶\斯科特\應用程序數據\本地\程序\的Python \ Python35 \ lib中\的urllib \ request.py」,線路471,在開放 響應=甲基(REQ,響應) 文件「C:\用戶\斯科特\應用程序數據\本地\程序\的Python \ Python35 \ lib中\的urllib \ request.py 「線路581,在HTTP_RESPONSE 'HTTP',請求,響應代碼,味精,HDRS) 文件」 C:\用戶\斯科特\應用程序數據\本地\程序\ Python的\ Python35 \ LIB \的urllib \ request.py 「線路509錯誤 回報self._call_chain(*參數) 文件」 C:\用戶\斯科特\應用程序數據\本地\程序\蟒\ Python35 \ lib中\的urllib \ request.py 「線路443,在_call_chain 結果= FUNC(*參數) 文件」 C:\用戶\斯科特\應用程序數據\本地\程序\蟒\ Python35 \ lib中\的urllib \ request.py「,第589行,在http_error_default中 raise HTTPError(req.full_url,code,ms克,HDRS,FP) urllib.error.HTTPError:HTTP錯誤400:錯誤的請求

在處理上述異常,另一個異常:

回溯(最近通話最後一個): 文件 「」 ,第1行 MomentumTrader('ETH','BTC') 文件「C:/Users/Scott/Desktop/MomentumTraderFifth.py」,行199,在MomentumTrader BuyAll(currencypair) 文件「C:/ Users /Scott/Desktop/MomentumTraderFifth.py「,第89行,BuyAll binance.createLimitBuyOrder(symbol,amount,orderbook ['ask'] [orderBookPosition] [0]) 文件」C:\ Users \ Scott \ A ppData \本地\程序\ Python的\ Python35 \ LIB \站點包\ ccxt \ exchange.py 「線路646,在createLimitBuyOrder 回報self.create_limit_buy_order(行情,量,價,則params) 文件」 C:\用戶\斯科特\應用程序數據\本地\程序\ Python的\ Python35 \ LIB \站點包\ ccxt \ exchange.py」,線路634,在create_limit_buy_order 回報self.create_order(行情, '限價', '買入',數量,價格, PARAMS) 文件 「C:\用戶\斯科特\應用程序數據\本地\程序\的Python \ Python35 \ lib中\站點包\ ccxt \ exchanges.py」,線路986,在create_order 響應= self.privatePostOrder(self.extend (順序,則params)) 文件 「C:\用戶\斯科特\應用程序數據\本地\程序\的Python \ Python35 \ lib中\站點包\ ccxt \ exchanges.py」,線1049,在請求響應 = self.fetch (網址,方法,標題,正文) File「 C:\ Users \用戶斯科特\應用程序數據\本地\程序\ Python的\ Python35 \ LIB \站點包\ ccxt \交流。py「,244行,提取 self.raise_error(error,url,method,e,details) 文件」C:\ Users \ Scott \ AppData \ Local \ Programs \ Python \ Python35 \ lib \ site-packages \ ccxt \ exchange.py「,第181行,在raise_error中 詳細信息, ccxt.errors.ExchangeNotAvailable:binance POST https://www.binance.com/api/v1/order 400錯誤請求(可能的原因:無效的API密鑰,錯誤或舊的現時,交換已關閉或脫機,正在維護,DDoS保護,限速,{「代碼」: - 1021,「味精」:「時間戳這一請求是無效」})

回答

1

請閱讀Troubleshooting部分從ccxt庫手冊非常小心這是由於過期的鑰匙您是否嘗試過使用另一個鑰匙對?

另外,對於Bitfinex,不需要將nonce設置爲毫秒,默認情況下它已經以毫秒爲單位。試試這個樣本,看看它是否適合你:

import ccxt 

bitfinex = ccxt.bitfinex ({ 
    'apiKey': '4FlEDtxDl35gdEiobnfZ72vJeZteE4Bb7JdvqzjIjHq', 
    'secret': 'D4DXM8DZdHuAq9YptUsb42aWT1XBnGlIJgLi8a7tzFH', 
}) 

print(bitfinex.fetch_balance()) 

如果它不工作,那麼你應該創建一個全新的密鑰對,一切都應該是正常的,從那裏。別擔心,如果您創建了新的密鑰對,您的帳戶上不會出現資金不足的情況。

+0

但鑰匙是全新的。我多久需要製作一套新的鑰匙?我能夠訪問我的餘額,但是當我收到消息時進行交易。 – Scott

+0

你能顯示你的代碼嗎? https://github.com/kroitor/ccxt/blob/master/CONTRIBUTING.md#how-to-submit-an-issue - 你的語言版本,ccxt庫版本 - 你要哪一種方法特別呼叫 - 您遇到困難的完整代碼片段(避免單行) - 將該片段的完整堆棧跟蹤(錯誤輸出)以詳細方式粘貼,原樣不變 我們需要如果您希望我們幫助更快。 –

+0

嗨伊戈爾,所以我已經上傳了我使用的代碼以及伴隨它的錯誤信息。它的工作有些怪異,有時會給我那個時間戳BS。 – Scott