そのため、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 行目、フェッチ応答 = opener.open (request, timeout=int(self.timeout / 1000)) File "C:\Users\Scott\AppData\Local\Programs\Python\Python35\lib\urllib\request.py", line 471, in open response = meth (req, response) ファイル "C:\Users\Scott\AppData\Local\Programs\Python\Python35\lib\urllib\request.py"、581 行目、http_response 'http'、request、response、code、msg、 hdrs) ファイル "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,in _call_chain result = func(*args) File "C:\Users\Scott\AppData\Local\Programs\Python\Python35\lib\urllib\request.py"、589行目、http_error_default raise HTTPError(req.full_url, code 、msg、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['asks'][orderBookPosition][0]) ファイル "C:\Users\ Scott\AppData\Local\Programs\Python\Python35\lib\site-packages\ccxt\exchange.py"、646 行目、createLimitBuyOrder の return self.create_limit_buy_order(market, amount, price, params) File "C:\Users\ Scott\AppData\Local\Programs\Python\Python35\lib\site-packages\ccxt\exchange.py"、634 行目、create_limit_buy_order return self.create_order(market, 'limit', 'buy', amount, price, params) ファイル「C:\Users\Scott\AppData\Local\Programs\Python\Python35\lib\site-packages\ccxt\exchanges.py」、986 行目、create_order 応答 = 自己。 privatePostOrder(self.extend(order, params)) ファイル "C:\Users\Scott\AppData\Local\Programs\Python\Python35\lib\site-packages\ccxt\exchanges.py"、1049 行目、要求応答 = self.fetch(url, method, headers, body) ファイル "C:\Users\Scott\AppData\Local\Programs\Python\Python35\lib\site-packages\ccxt\exchange.py"、244 行目、fetch 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: バイナンス POST\Users\Scott\AppData\Local\Programs\Python\Python35\lib\site-packages\ccxt\exchanges.py"、986 行目、create_order 応答 = self.privatePostOrder(self.extend(order, params)) ファイル" C:\Users\Scott\AppData\Local\Programs\Python\Python35\lib\site-packages\ccxt\exchanges.py", line 1049, in request response = self.fetch(url, method, headers, body) ファイル「C:\Users\Scott\AppData\Local\Programs\Python\Python35\lib\site-packages\ccxt\exchange.py」、244 行目、fetch 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\Users\Scott\AppData\Local\Programs\Python\Python35\lib\site-packages\ccxt\exchanges.py"、986 行目、create_order 応答 = self.privatePostOrder(self.extend(order, params)) ファイル" C:\Users\Scott\AppData\Local\Programs\Python\Python35\lib\site-packages\ccxt\exchanges.py", line 1049, in request response = self.fetch(url, method, headers, body) ファイル「C:\Users\Scott\AppData\Local\Programs\Python\Python35\lib\site-packages\ccxt\exchange.py」、244 行目、fetch 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行 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 行、リクエスト response = self.fetch(url, method, headers, body) File "C:\Users\Scott\AppData\Local\Programs\Python\Python35\lib\site-packages\ccxt\exchange. py"、244 行目、fetch 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行 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 行、リクエスト response = self.fetch(url, method, headers, body) File "C:\Users\Scott\AppData\Local\Programs\Python\Python35\lib\site-packages\ccxt\exchange. py"、244 行目、fetch 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\Users\Scott\AppData\Local\Programs\Python\Python35\lib\site-packages\ccxt\exchanges.py"、1049 行目、リクエストの response = self.fetch(url, method, headers, body) File "C :\Users\Scott\AppData\Local\Programs\Python\Python35\lib\site-packages\ccxt\exchange.py"、244 行目、fetch self.raise_error(error, url, method, e, details) File" C:\Users\Scott\AppData\Local\Programs\Python\Python35\lib\site-packages\ccxt\exchange.py"、181 行目、raise_error の詳細、ccxt.errors.ExchangeNotAvailable: binance POST\Users\Scott\AppData\Local\Programs\Python\Python35\lib\site-packages\ccxt\exchanges.py"、1049 行目、リクエストの response = self.fetch(url, method, headers, body) File "C :\Users\Scott\AppData\Local\Programs\Python\Python35\lib\site-packages\ccxt\exchange.py"、244 行目、fetch self.raise_error(error, url, method, e, details) File" C:\Users\Scott\AppData\Local\Programs\Python\Python35\lib\site-packages\ccxt\exchange.py"、181 行目、raise_error の詳細、ccxt.errors.ExchangeNotAvailable: binance POST\Users\Scott\AppData\Local\Programs\Python\Python35\lib\site-packages\ccxt\exchange.py"、181 行目、raise_error の詳細、ccxt.errors.ExchangeNotAvailable: binance POST\Users\Scott\AppData\Local\Programs\Python\Python35\lib\site-packages\ccxt\exchange.py"、181 行目、raise_error の詳細、ccxt.errors.ExchangeNotAvailable: binance POSThttps://www.binance.com/api/v1/order 400 Bad Request (考えられる理由: 無効な API キー、不良または古いナンス、取引所がダウンまたはオフライン、メンテナンス中、DDoS 保護、レート制限、{"コード":-1021,"msg":"このリクエストのタイムスタンプは無効です."})