因此,在尝试使用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:\Users\Scott\AppData\Local\Programs\Python\Python35\lib\site-packages\ccxt\exchange.py",行209,在fetch response = opener.open(request,timeout=int(self.timeout / 1000))文件"C:\Users\Scott\AppData\Local\Programs\Python\Python35\lib\urllib\request.py",行471中,在open response = meth(req,(响应)文件"C:\Users\Scott\AppData\Local\Programs\Python\Python35\lib\urllib\request.py",行581,在http_response 'http‘中,请求、响应、代码、msg、hdr)文件"C:\Users\Scott\AppData\Local\Programs\Python\Python35\lib\urllib\request.py",行509,在错误返回self._call_chain(*args)文件"C:\Users\Scott\AppData\Local\Programs\Python\Python35\lib\urllib\request.py",行443中,在_call_chain result = func(*args)文件"C:\Users\Scott\AppData\Local\Programs\Python\Python35\lib\urllib\request.py",行589中,在http_error_default raise (req.full_url,code,msg,hdr)中,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(符号,金额,订单簿‘问询’文件"C:\Users\Scott\AppData\Local\Programs\Python\Python35\lib\site-packages\ccxt\exchange.py",行646,在createLimitBuyOrder返回self.create_limit_buy_order(市场,数量,价格,平价)文件"C:\Users\Scott\AppData\Local\Programs\Python\Python35\lib\site-packages\ccxt\exchange.py",第634行,在create_limit_buy_order返回self.create_order(市场,‘限制’,“购买”,数量,价格,参数)文件"C:\Users\Scott\AppData\Local\Programs\Python\Python35\lib\site-packages\ccxt\exchanges.py",行986,在create_order response = self.privatePostOrder(self.extend(order,params))文件"C:\Users\Scott\AppData\Local\Programs\Python\Python35\lib\site-packages\ccxt\exchanges.py",行1049中,in request = self.fetch(url,method,headers,文件"C:\Users\Scott\AppData\Local\Programs\Python\Python35\lib\site-packages\ccxt\exchange.py",第244行,在self.raise_error(错误、url、方法、e、详细信息)文件"C:\Users\Scott\AppData\Local\Programs\Python\Python35\lib\site-packages\ccxt\exchange.py",第181行,在raise_error details中,ccxt.errors.ExchangeNotAvailable: binance POST https://www.binance.com/api/v1/order 400坏请求(可能的原因:无效的API键,坏的或旧的现在,exchange关闭或脱机,在维护、DDoS保护、速率限制、{“代码”:-1021、“msg”:“此请求的时间戳无效”})。
发布于 2017-08-30 16:10:40
请仔细阅读来自ccxt库手册的故障排除部分。这是因为过期的钥匙。你用另一个键盘试过了吗?
另外,对于Bitfinex,不需要将nonce设置为毫秒,默认情况下它已经以毫秒为单位。试试这个示例,看看它是否适合您:
import ccxt
bitfinex = ccxt.bitfinex ({
'apiKey': '4FlEDtxDl35gdEiobnfZ72vJeZteE4Bb7JdvqzjIjHq',
'secret': 'D4DXM8DZdHuAq9YptUsb42aWT1XBnGlIJgLi8a7tzFH',
})
print(bitfinex.fetch_balance())如果它确实工作,那么你应该创建一个新的键盘,一切都应该是正常的,从那里开始。别担心,如果你创建一个新的键盘,你不会在你的帐户上失去资金。
https://stackoverflow.com/questions/45964187
复制相似问题