python中的Nonce覆盖

python中的Nonce覆盖,python,bitcoin,trading,nonce,ccxt,Python,Bitcoin,Trading,Nonce,Ccxt,因此,我在尝试使用ccxt进行交易时不断收到以下消息: “此请求的时间戳无效。” 我已经阅读了ccxt手册,它说要覆盖我应该使用的nonce: class MyBitfinex (ccxt.bitfinex): def nonce (self): return self.milliseconds () 但我只是不知道如何让它工作。我不是太高级的python程序员 非常感谢您的帮助 以下是我试图运行的代码: def BuyAll (symbol): base = mar

因此,我在尝试使用ccxt进行交易时不断收到以下消息:

“此请求的时间戳无效。”

我已经阅读了ccxt手册,它说要覆盖我应该使用的nonce:

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
def BuyAll(符号):
基数=市场[符号]['base']
quote=市场[符号]['quote']
Balances=binance.fetchBalance()
quoteBalance=余额[报价][“自由”]
停止=0
orderBookPosition=0
quoteBalance>stopOut时:
打印(“报价余额”,报价平衡)
运行平衡=报价平衡-停止
orderbook=binance.fetchOrderBook(符号)
如果(orderbook['asks'][orderBookPosition][1])*(orderbook['asks'][orderBookPosition][0])0:
如果base==“BNB”:
金额=整数((运行余额)/(订单簿['asks'][orderBookPosition][0]))
其他:
金额=截断((runningBalance)/(订单簿['asks'][orderBookPosition][0]),3)
打印('金额',金额)
binance.createLimitBuyOrder(符号、金额、orderbook['asks'][orderBookPosition][0])
打印('购买'+''+符号)
stopOut+=(订单簿['asks'][orderBookPosition][1])*(订单簿['asks'][orderBookPosition][0])
orderBookPosition+=1
以下是我得到的错误:

回溯(最近一次调用上次):文件 “C:\Users\Scott\AppData\Local\Programs\Python35\lib\site packages\ccxt\exchange.py”, 第209行,在fetch中 response=opener.open(请求,timeout=int(self.timeout/1000))文件 “C:\Users\Scott\AppData\Local\Programs\Python\Python35\lib\urllib\request.py”, 第471行,打开 response=meth(req,response)文件“C:\Users\Scott\AppData\Local\Programs\Python\Python35\lib\urllib\request.py”, 第581行,在http_响应中 “http”、请求、响应、代码、消息、hdrs)文件“C:\Users\Scott\AppData\Local\Programs\Python\Python35\lib\urllib\request.py”, 第509行,错误 返回self.\u call\u chain(*args)文件“C:\Users\Scott\AppData\Local\Programs\Python\Python35\lib\urllib\request.py”, 第443行,呼叫链中 result=func(*args)文件“C:\Users\Scott\AppData\Local\Programs\Python\Python35\lib\urllib\request.py”, 第589行,在http\u错误\u默认值中 引发HTTPError(req.full_url,code,msg,hdrs,fp)urllib.error.HTTPError:HTTP错误400:错误请求

在处理上述异常期间,发生了另一个异常:

回溯(最近一次调用):文件“”,第1行,在 MomentumTrader('ETH','BTC')文件“C:/Users/Scott/Desktop/MomentumTraderFifth.py”,第199行,在 动量交易者 BuyAll(currencyPair)文件“C:/Users/Scott/Desktop/MomentumTraderFifth.py”,第89行,在BuyAll中 binance.createLimitBuyOrder(符号、金额、orderbook['asks'][orderBookPosition][0]) 文件 “C:\Users\Scott\AppData\Local\Programs\Python35\lib\site packages\ccxt\exchange.py”, 第646行,按顺序排列 返回self.create_limit_buy_order(市场、金额、价格、参数)文件 “C:\Users\Scott\AppData\Local\Programs\Python35\lib\site packages\ccxt\exchange.py”, 第634行,创建限额购买订单 返回self.create_订单(市场、限制、购买、金额、价格、参数)文件 “C:\Users\Scott\AppData\Local\Programs\Python35\lib\site packages\ccxt\exchanges.py”, 第986行,按创建顺序 response=self.privatepostore(self.extend(order,params))文件 “C:\Users\Scott\AppData\Local\Programs\Python35\lib\site packages\ccxt\exchanges.py”, 第1049行,请求中 response=self.fetch(url、方法、标题、正文)文件“C:\Users\Scott\AppData\Local\Programs\Python\Python35\lib\site packages\ccxt\exchange.py”, 第244行,在fetch中 self.raise\u错误(错误、url、方法、e、详细信息)文件“C:\Users\Scott\AppData\Local\Programs\Python\Python35\lib\site packages\ccxt\exchange.py”, 第181行,在raise_错误中 详细信息,ccxt.errors.ExchangeNotAvailable:binance POST 400错误请求(可能) 原因:无效的API密钥、错误或旧的nonce、exchange已关闭或 离线、在线维护、DDoS保护、速率限制、, {“code”:-1021,“msg”:“此请求的时间戳无效。”})

请仔细阅读ccxt库手册中的章节。这是由于密钥过期造成的。你用另一把钥匙试过了吗

此外,对于Bitfinex,不需要将nonce设置为毫秒,默认情况下它已经是以毫秒为单位的。尝试此示例,看看它是否适合您:

import ccxt

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

print(bitfinex.fetch_balance())

如果它真的起作用,那么你应该创建一个新的密钥对,从那以后一切都应该正常。别担心,如果您创建了一个新的密钥对,您不会在您的帐户上损失资金。

但是密钥是全新的。我需要多长时间制作一套新钥匙?我可以访问我的余额,但当涉及到交易时,我会收到消息。你能显示你的代码吗?-您的语言版本,ccxt库版本-您正在尝试调用的方法-您遇到困难的完整代码段(避免使用一行程序)-按原样以详细模式粘贴该代码段的完整堆栈跟踪(错误输出),未更改,如果您希望我们帮助您更快,我们需要它。您好,Igor,因此,我上传了我使用的代码以及acco