首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python ccxt中的当前覆盖

python ccxt中的当前覆盖
EN

Stack Overflow用户
提问于 2017-08-30 15:19:34
回答 1查看 2.6K关注 0票数 1

因此,在尝试使用ccxt进行交易时,我一直收到这条消息:

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

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

代码语言:javascript
复制
class MyBitfinex (ccxt.bitfinex):
    def nonce (self):
        return self.milliseconds ()

但我只是不知道该怎么做。我不太擅长python程序员。

任何帮助都是非常感谢的。

下面是我要运行的代码:

代码语言:javascript
复制
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”:“此请求的时间戳无效”})。

EN

回答 1

Stack Overflow用户

发布于 2017-08-30 16:10:40

请仔细阅读来自ccxt库手册的故障排除部分。这是因为过期的钥匙。你用另一个键盘试过了吗?

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

代码语言:javascript
复制
import ccxt

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

print(bitfinex.fetch_balance())

如果它确实工作,那么你应该创建一个新的键盘,一切都应该是正常的,从那里开始。别担心,如果你创建一个新的键盘,你不会在你的帐户上失去资金。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45964187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档