问题标签 [binance]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
7514 浏览

python - 发生binance api(连接)错误时无法继续程序

我正在通过 AWS-EC2 上的 Binance api 从 Binance 获取 OHLCV 数据。但是有时(几天一次)错误“104,'ECONNRESET'”发生并且程序停止。

程序用Python3.7.3编写,运行在AWS-EC2上

代码如下。但是这段代码无法继续。

当发生任何 api 或连接错误时,我想继续运行程序。

我应该如何处理这个错误?

所有错误按摩都如下。

Traceback(最近一次调用最后一次):文件“/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/urllib3/connectionpool.py”,第 600 行,在 urlopen chunked=分块)文件“/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/urllib3/connectionpool.py”,第 384 行,在 _make_request Six.raise_from(e, None)文件“”,第 2 行,在 raise_from 文件“/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/urllib3/connectionpool.py”,第 380 行,在 _make_request httplib_response = conn.getresponse() 文件“/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/http/client.py”,第 1321 行,在 getresponse response.begin() 文件中“/ home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/http/client.py”,第 296 行,开始版本,状态,原因 = self._read_status() 文件“/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/http/client.py”,第 257 行,在 _read_status 行 = str(self.fp .readline(_MAXLINE + 1), "iso-8859-1") 文件 "/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/socket.py",第 589 行,在 readinto返回 self._sock.recv_into(b) 文件“/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/urllib3/contrib/pyopenssl.py”,第 312 行,在recv_into 返回 self.recv_into(*args, **kwargs) 文件 "/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/urllib3/contrib/pyopenssl.py",第 302 行,在 recv_into 中引发 SocketError(str(e)) OSError: (104, 'ECONNRESET')py”,第 257 行,在 _read_status 行 = str(self.fp.readline(_MAXLINE + 1),“iso-8859-1”) 文件“/home/ec2-user/.pyenv/versions/3.7.3/lib /python3.7/socket.py”,第 589 行,在 readinto 中返回 self._sock.recv_into(b) 文件“/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site- packages/urllib3/contrib/pyopenssl.py”,第 312 行,recv_into 返回 self.recv_into(*args, **kwargs) 文件“/home/ec2-user/.pyenv/versions/3.7.3/lib/python3. 7/site-packages/urllib3/contrib/pyopenssl.py”,第 302 行,在 recv_into 中引发 SocketError(str(e)) OSError: (104, 'ECONNRESET')py”,第 257 行,在 _read_status 行 = str(self.fp.readline(_MAXLINE + 1),“iso-8859-1”) 文件“/home/ec2-user/.pyenv/versions/3.7.3/lib /python3.7/socket.py”,第 589 行,在 readinto 中返回 self._sock.recv_into(b) 文件“/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site- packages/urllib3/contrib/pyopenssl.py”,第 312 行,recv_into 返回 self.recv_into(*args, **kwargs) 文件“/home/ec2-user/.pyenv/versions/3.7.3/lib/python3. 7/site-packages/urllib3/contrib/pyopenssl.py”,第 302 行,在 recv_into 中引发 SocketError(str(e)) OSError: (104, 'ECONNRESET')在 readinto 中返回 self._sock.recv_into(b) 文件“/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/urllib3/contrib/pyopenssl.py”,第 312 行, 在 recv_into 返回 self.recv_into(*args, **kwargs) 文件“/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/urllib3/contrib/pyopenssl.py ",第 302 行,在 recv_into 中引发 SocketError(str(e)) OSError: (104, 'ECONNRESET')在 readinto 中返回 self._sock.recv_into(b) 文件“/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/urllib3/contrib/pyopenssl.py”,第 312 行, 在 recv_into 返回 self.recv_into(*args, **kwargs) 文件“/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/urllib3/contrib/pyopenssl.py ",第 302 行,在 recv_into 中引发 SocketError(str(e)) OSError: (104, 'ECONNRESET')经济重置')经济重置')

在处理上述异常的过程中,又出现了一个异常:

Traceback(最近一次调用最后一次):文件“/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/requests/adapters.py”,第 449 行,发送超时 =超时文件“/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/urllib3/connectionpool.py”,第 638 行,在 urlopen _stacktrace=sys.exc_info()[2 ]) 文件“/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/urllib3/util/retry.py”,第 368 行,增量提高 6.reraise(类型(错误),错误,_stacktrace)文件“/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/urllib3/packages/six.py”,第685行,重新提出raise value.with_traceback(tb) 文件“/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/urllib3/connectionpool.py”,第 600 行,在 urlopen chunked=chunked) 文件“/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/urllib3/connectionpool.py”,第 384 行,在 _make_request Six.raise_from( e,无)文件“”,第 2 行,在 raise_from 文件“/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/urllib3/connectionpool.py”,第 380 行,在 _make_request httplib_response = conn.getresponse() 文件“/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/http/client.py”,第 1321 行,在 getresponse response.begin( ) 文件“/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/http/client.py”,第 296 行,在开始版本、状态、原因 = self._read_status() 文件中“ /home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/http/client.py”,第 257 行,在 _read_status 行 = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 文件 "/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/socket .py”,第 589 行,在 readinto 中返回 self._sock.recv_into(b) 文件“/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/urllib3/contrib/ pyopenssl.py”,第 312 行,在 recv_into 返回 self.recv_into(*args, **kwargs) 文件“/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/ urllib3/contrib/pyopenssl.py",第 302 行,在 recv_into 中引发 SocketError(str(e)) urllib3.exceptions.ProtocolError: ('Connection aborted.', OSError("(104, 'ECONNRESET')"))在 readinto 中返回 self._sock.recv_into(b) 文件“/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/urllib3/contrib/pyopenssl.py”,第 312 行, 在 recv_into 返回 self.recv_into(*args, **kwargs) 文件“/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/urllib3/contrib/pyopenssl.py ",第 302 行,在 recv_into 中引发 SocketError(str(e)) urllib3.exceptions.ProtocolError: ('Connection aborted.', OSError("(104, 'ECONNRESET')"))在 readinto 中返回 self._sock.recv_into(b) 文件“/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/urllib3/contrib/pyopenssl.py”,第 312 行, 在 recv_into 返回 self.recv_into(*args, **kwargs) 文件“/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/urllib3/contrib/pyopenssl.py ",第 302 行,在 recv_into 中引发 SocketError(str(e)) urllib3.exceptions.ProtocolError: ('Connection aborted.', OSError("(104, 'ECONNRESET')"))第 302 行,在 recv_into raise SocketError(str(e)) urllib3.exceptions.ProtocolError: ('Connection aborted.', OSError("(104, 'ECONNRESET')"))第 302 行,在 recv_into raise SocketError(str(e)) urllib3.exceptions.ProtocolError: ('Connection aborted.', OSError("(104, 'ECONNRESET')"))

在处理上述异常的过程中,又出现了一个异常:

回溯(最近一次通话):文件“BTC_USDT_BINANCE_minutes.py”,第 54 行,klines = client.get_historical_klines(ticker_symbol, Client.KLINE_INTERVAL_1MINUTE, _from_str, _until_str) 文件“/home/ec2-user/.pyenv/versions/3.7 .3/lib/python3.7/site-packages/binance/client.py”,第 765 行,在 get_historical_klines first_valid_ts = self._get_earliest_valid_timestamp(symbol, interval) 文件“/home/ec2-user/.pyenv/versions/3.7 .3/lib/python3.7/site-packages/binance/client.py”,第 723 行,在 _get_earliest_valid_timestamp endTime=None 文件“/home/ec2-user/.pyenv/versions/3.7.3/lib/python3. 7/site-packages/binance/client.py”,第 705 行,在 get_klines 返回 self._get('klines', data=params) 文件“/home/ec2-user/.pyenv/versions/3.7.3/lib /python3.7/site-packages/binance/client.py”,第 207 行,在 _get return self._request_api('get', path, signed, version, **kwargs) 文件“/home/ec2-user/.pyenv/versions /3.7.3/lib/python3.7/site-packages/binance/client.py”,第 181 行,在 _request_api 返回 self._request(method, uri, signed, **kwargs) 文件“/home/ec2-user /.pyenv/versions/3.7.3/lib/python3.7/site-packages/binance/client.py",第 175 行,在 _request response = getattr(self.session, method)(uri, **kwargs) 文件中“/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/requests/sessions.py”,第 546 行,在 get return self.request('GET', url, **kwargs)文件“/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/requests/sessions.py”,第533行,在resp = self.send(准备,**send_kwargs) 文件“/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/requests/sessions.py”,第 646 行,发送 r = adapter.send(请求,**kwargs)文件“/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/requests/adapters.py”,第 498 行,在发送中引发 ConnectionError(err , request=request) requests.exceptions.ConnectionError: ('Connection aborted.', OSError("(104, 'ECONNRESET')"))ConnectionError: ('Connection aborted.', OSError("(104, 'ECONNRESET')"))ConnectionError: ('Connection aborted.', OSError("(104, 'ECONNRESET')"))

0 投票
0 回答
786 浏览

python - 如何使用 python-binance 从 binance API 打印响应

有人知道如何从 Binance 的 API 打印 JSON 结果吗?我一直在使用它来get_all_tickers返回所有符号和价格。我希望能够选择某个交易品种和价格,并在终端中连续显示或直到用户退出。我正在使用这个库

我的代码:

输出:

0 投票
1 回答
43 浏览

javascript - 解决nodejs循环依赖

我知道这个问题已经被问过好几次了,但我无法在我的项目结构中解决它。

我有 3 个文件:

  1. new_order.js
  2. binance.js
  3. advance.js

new_order.js负责初始化值并将其传递binance.js给执行订单。

binance.js然后执行订单并始终运行 websocket 以等待订单被执行的事件。因为我无法在 websockets 中返回值,所以我advance.js在订单完成后立即调用。

advance.js具有止损/获利等高级功能。我遇到的问题是,一旦价格达到止损/获利水平,我必须binance.js再次调用以执行卖单。

我的流程是new_order.js-> binance.js<-> advance.js.. 我该如何克服这个问题,并且是否可以从一个全职运行的 websocketbinance.js返回一个值?new_order.js

0 投票
1 回答
1096 浏览

python - 在 python 中对 API 的请求。并在 tkinter 窗口中显示

我正在尝试从 Binance Exchange 进行一些 api 调用并进行一些实时计算,在窗口中显示结果。我已经花了 4 个小时,但仍然遇到同样的错误。没有其他文档表明我做错了什么——除非我错误地安装了 pip Binance?我是 python 和 API 的新手,所以我不知道从哪里开始处理命令提示符 pip 问题。

重命名文件,安装 pip3 命令,以及一堆其他 pip 命令。

我得到以下异常:

0 投票
0 回答
3915 浏览

javascript - 为 userData websocket 实现 ping/pong

根据 Binance API:“websocket 服务器将每 3 分钟发送一个 ping 帧。如果 websocket 服务器在 10 分钟内没有收到来自连接的 pong 帧,则连接将断开。允许未经请求的 pong 帧。”

所以这是我遇到的问题,我确实有一个 websocket 实现,但是在那 10 分钟之后,它断开连接。我on('close')没有返回任何东西,但我只是停止从套接字接收任何消息。

这是我必须发回乒乓球的代码:

我也尝试过ws.send(),但它对我不起作用。我哪里错了?

这是我的完整代码:https ://playcode.io/356312

这是 Binance 文档的链接;

网络套接字:https ://github.com/binance-exchange/binance-official-api-docs/blob/master/web-socket-streams.md

用户数据:https ://github.com/binance-exchange/binance-official-api-docs/blob/master/user-data-stream.md

0 投票
2 回答
4181 浏览

python - binance.exceptions.BinanceAPIException: APIError(code=-1022): 此请求的签名无效

我在通过 Python 中的 API 访问我的 Binance 帐户信息时遇到问题。它总是给出 APIError 异常,但我能够 ping 交易所并成功获取烛台数据。我通读了 API 文档并确保 API 密钥有效并且我认为我没有遗漏任何内容。

binance_client = BinanceClient(api_key=api_key, api_secret=api_secret) print(binance_client.get_account(recvWindow=60000000))

0 投票
1 回答
903 浏览

python - 无法在 pycharm Windows 10 上安装 python-binance

在 Python 3.7.3 上安装 Twisted==17.9.0 失败。也无法安装 Cryptography==2.1.4

想要在 Pycharm 上为 python-binance 安装必要的模块

我试过使用蟒蛇版本的python,但我仍然得到密码学的安装错误。

并且一直是红色的。

0 投票
1 回答
1548 浏览

python - Request .get 如何使用字符串作为参数

我相信它可能与 **kwarg 参数有关,但我不知道如何使用它,

要指定我正在尝试使用 Binanace REST API 来简单地获取山寨币的平均价格,但我不明白如何指定要查看的代码

链接到我正在尝试工作的特定代码 https://github.com/binance-exchange/binance-official-api-docs/blob/master/rest-api.md#current-average-price

任何答案将不胜感激我相信一切都会一样,但我正在寻找python中的答案

代码:

输出:

预期 [BTC 过去 24 小时的平均价格(或任何数字)]

但是,尽管我尝试过并且失败了,但我还是无法理解这个 api,因为我之前只使用过一个,嗯,

我试过

输出:

我知道这是一条成功消息,但我知道如何访问数据,

任何帮助将不胜感激谢谢

0 投票
2 回答
11411 浏览

python - 如何使用 Binance API 和 Python-CCXT 下达百分比订单?

我正在使用 Binance API 来使用 Python 3.6 制作我的交易机器人。和CCXT 库(在这里你可以找到文档)。

他们在他们的网站上拥有的一件非常有用的事情是能够以您当前余额的百分比下订单:

例如,如果我正在查看BTC/USDT加密货币对,并且我50 USDT的账户上有,我可以选择购买N数量BTC或使用100%我的账户USDT进行购买,从而购买BTC我可以购买的最大数量。

我多次阅读文档,但我找不到以任何方式使用 API 执行这些“余额百分比”订单的选项:我唯一能做的就是将 a 传递float给 order 函数。这就是我现在下订单的方式:

有谁知道是否有内置功能可以进行百分比排序?如果 API 无法做到这一点,您会建议一些解决方法吗?

我希望能够将我当前余额的百分比提供给 API amount,因此我可以随时使用全部余额,而无需在费用减少时进行更新

0 投票
2 回答
11442 浏览

python - 如何在 Python 中准确获取币安 API 价格?

以下是我获取历史数据的方式,但是日期格式不允许我指定数据的分钟或秒;只有一天,不够精确。

我希望使用 Sam McHardy 提供的 python binance api(下面的链接)获取特定小时、分钟和秒的价格数据。

https://github.com/binance-exchange/python-binance

如果有人知道这是否可能,或者是否有任何替代方案,我将不胜感激。