1

そのため、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":"このリクエストのタイムスタンプは無効です."})

4

1 に答える 1