所以我一直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,“味精”:“时间戳这一请求是无效”})
但钥匙是全新的。我多久需要制作一套新的钥匙?我能够访问我的余额,但是当我收到消息时进行交易。 – Scott
你能显示你的代码吗? https://github.com/kroitor/ccxt/blob/master/CONTRIBUTING.md#how-to-submit-an-issue - 你的语言版本,ccxt库版本 - 你要哪一种方法特别呼叫 - 您遇到困难的完整代码片段(避免单行) - 将该片段的完整堆栈跟踪(错误输出)以详细方式粘贴,原样不变 我们需要如果您希望我们帮助更快。 –
嗨伊戈尔,所以我已经上传了我使用的代码以及伴随它的错误信息。它的工作有些怪异,有时会给我那个时间戳BS。 – Scott