Giter VIP home page Giter VIP logo

vnpy_binance's People

Contributors

astupidbear avatar noranhe avatar tingle2008 avatar veighna-global avatar vn-crypto avatar vnpy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vnpy_binance's Issues

行情订阅失败,找不到合约BTCUSDT.BINANCE

环境:Ubuntu 18.04
vnpy 2.7.0
vnpy-binance 20211018
使用no gui方式运行

`
import multiprocessing
import sys
from time import sleep
from datetime import datetime, time
from logging import INFO

from vnpy.event import EventEngine
from vnpy.trader.setting import SETTINGS
from vnpy.trader.engine import MainEngine
from vnpy_binance import BinanceUsdtGateway
from vnpy_ctastrategy import CtaStrategyApp
from vnpy_ctastrategy.base import EVENT_CTA_LOG

event_engine = EventEngine()
main_engine = MainEngine(event_engine)
main_engine.add_gateway(BinanceUsdtGateway)
cta_engine = main_engine.add_app(CtaStrategyApp)
main_engine.write_log("主引擎创建成功")

log_engine = main_engine.get_engine("log")
event_engine.register(EVENT_CTA_LOG, log_engine.process_log_event)
main_engine.write_log("注册日志事件监听")

SETTINGS["log.active"] = True
SETTINGS["log.level"] = INFO
SETTINGS["log.console"] = True

binances_setting = {
"key": "my_key",
"secret": "my_secret",
"服务器": "TESTNET",
"代理地址": "",
"代理端口": 0,
}

main_engine.connect(binances_setting,'BINANCE_USDT')

cta_engine.init_engine()

cta_strategy_setting = {
"strategy_name":"highfre",
"class_name":"HighFrequencyStrategy",
"vt_symbol":"BTCUSDT.BINANCE",
"setting": {}
}
cta_engine.add_strategy(**cta_strategy_setting)
cta_engine.init_all_strategies()
cta_engine.start_all_strategies()
`

另外代码里面实例部分能够提供一个nogui版本吗?主要在Linux下运行

OSError: [WinError 87] 参数错误

开发环境:win10,python版本3.8 anaconda;网络使用代理登录,aiohttp版本3.7.4。
问题描述:
无限刷屏连续报错:OSError: [WinError 87] 参数错误
RestClient on error----------
[2021-08-18T13:13:48.314353]: Unhandled RestClient Error:<class 'aiohttp.client_exceptions.ClientConnectorError'>
request:request : GET /api/v3/time because terminated:
headers: None
params: None
data: None
response:
问题定位: cr: ClientResponse = await self.session.request(

订阅行情之后会断流

GATEWAY:BINANCE_SPOT

订阅之后几个小时以后会断流,原因不明。(大概4个小时?)
断流之后就不会再收到更新了,暂时不清楚是不是币安的限制还是纯粹的网络问题。
但不管是哪个,之后也无法恢复。
暂时找到的办法只有先清掉market_ws_api.ticks,再重新订阅一次。
main_engine.get_gateway("BINANCE_SPOT").market_ws_api.ticks.pop("ethbtc")

Using /fapi/v2 for binance

Programming Languages

Python 3.10.0

vnpy_binance Version

2021.10.27

Description

Received exchange error (testnet):
binance.exceptions.BinanceAPIException: APIError(code=-5000): GET /fapi/v1/positionRisk is retired, please use GET /fapi/v2/positionRisk

运行时出现WebsocketClient on error, listenkeyExpired!

已经在API文件中“延长listenkey"中添加了
self.start_user_stream()
return
但是还是运行了10几个小时后还是出现了如下报错,不知是什么原因。

WebsocketClient on error----------
[2022-07-20T09:07:06.764259]: Unhandled WebSocket Error:<class 'concurrent.futures._base.TimeoutError'>
LastSentText:

LastReceivedText:
{"e": "listenKeyExpired", "E": 1658247671735}
Exception trace:
Traceback (most recent call last):
File "C:\vnstudio\lib\site-packages\vnpy_websocket\websocket_client.py", line 174, in _run
verify_ssl=False
File "C:\vnstudio\lib\site-packages\aiohttp\client.py", line 763, in _ws_connect
proxy_headers=proxy_headers,
File "C:\vnstudio\lib\site-packages\aiohttp\client.py", line 619, in _request
break
File "C:\vnstudio\lib\site-packages\aiohttp\helpers.py", line 656, in exit
raise asyncio.TimeoutError from None
concurrent.futures._base.TimeoutError

vnpy 3.+

幣安
連結Gateway不會像以前一樣有三個選項,看起來無法正確選擇你要的

无界面启动有时候卡住

使用vnpy-binance 版本2022.4.28
启动无界面的投资组合策略时有时候会出现下面的日志后卡住
Uploading 1689825895543.png…
正常后续应该是这样的
1689826240161
有时候会出现上面的卡住情况,过一段时间又正常,请问这是怎么回事

Request for Binance Server Stop Order Support

请求支持币安USDT永续合约的服务器停止单, 现在币安USDT永续合约接口仅支持限价单的话,会有很多问题无法得到解决:

本地停止单转限价单是用的对价5档,这个当盘口比较浅的时候根本无法全部成交,甚至无法成交,导致策略持仓和信号不匹配了。
行情剧烈波动时,本地停止单转限价单后价格可能已经走出去非常远了,滑点变得大了很多
假设策略因意外崩溃后,仅有发到交易所服务器的预埋停止单可以作为最后的一个保险了。
综述原因,尤其是数字货币交易所,对于发到交易所的服务器停止单的支持还是很有必要的。

vnpy3.3,连接binance,显示rest api启动成功,但无法连接 ,出现以下错误

RestClient on error----------
[2022-10-08T19:43:36.835613]: Unhandled RestClient Error:<class 'aiohttp.client_exceptions.ClientConnectorError'>
request:request : GET /fapi/v1/account?timestamp=1665229395667&signature=15fd86122833e9f870bdd907f452deffb071eb88a19b6d12d82cd1f70a276e84 because terminated:
headers: {'Content-Type': 'application/x-www-form-urlencoded', 'Accept': 'application/json', 'X-MBX-APIKEY': 'IrzglKFMoV0Xm64nmffMPrVNPBYi8aQ30c7zjFcEZCNEjEfsYm7BZ69AkL9a1bYe', 'Connection': 'close'}
params: {}
data: {}
response:

Exception trace:
Traceback (most recent call last):
File "C:\veighna_studio\lib\site-packages\aiohttp\connector.py", line 969, in _wrap_create_connection
return await self._loop.create_connection(*args, **kwargs) # type: ignore # noqa
File "C:\veighna_studio\lib\asyncio\base_events.py", line 1055, in create_connection
raise exceptions[0]
File "C:\veighna_studio\lib\asyncio\base_events.py", line 1040, in create_connection
sock = await self._connect_sock(
File "C:\veighna_studio\lib\asyncio\base_events.py", line 954, in _connect_sock
await self.sock_connect(sock, address)
File "C:\veighna_studio\lib\asyncio\proactor_events.py", line 704, in sock_connect
return await self._proactor.connect(sock, address)
File "C:\veighna_studio\lib\asyncio\windows_events.py", line 817, in _poll
value = callback(transferred, key, ov)
File "C:\veighna_studio\lib\asyncio\windows_events.py", line 604, in finish_connect
ov.getresult()
OSError: [WinError 121] 信号灯超时时间已到

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "C:\veighna_studio\lib\site-packages\vnpy_rest\rest_client.py", line 256, in _process_request
response: Response = await self._get_response(request)
File "C:\veighna_studio\lib\site-packages\vnpy_rest\rest_client.py", line 238, in _get_response
cr: ClientResponse = await self.session.request(
File "C:\veighna_studio\lib\site-packages\aiohttp\client.py", line 520, in _request
conn = await self._connector.connect(
File "C:\veighna_studio\lib\site-packages\aiohttp\connector.py", line 535, in connect
proto = await self._create_connection(req, traces, timeout)
File "C:\veighna_studio\lib\site-packages\aiohttp\connector.py", line 892, in _create_connection
_, proto = await self._create_direct_connection(req, traces, timeout)
File "C:\veighna_studio\lib\site-packages\aiohttp\connector.py", line 1051, in _create_direct_connection
raise last_exc
File "C:\veighna_studio\lib\site-packages\aiohttp\connector.py", line 1020, in _create_direct_connection
transp, proto = await self._wrap_create_connection(
File "C:\veighna_studio\lib\site-packages\aiohttp\connector.py", line 975, in _wrap_create_connection
raise client_error(req.connection_key, exc) from exc
aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host fapi.binance.com:443 ssl:default [信号灯超时时间 已到]

引擎链接币安报错

版本: vnpy 2.7.0
接口: vnpy-binance 2021.10.27

连接后,会报一连串如下错误:

RestClient on failed----------

request : GET /fapi/v1/openOrders?timestamp=1636379819221&signature=### because 400:
headers: {'Content-Type': 'application/x-www-form-urlencoded', 'Accept': 'application/json', 'X-MBX-APIKEY': ' ### ', 'Connection': 'close'}
params: {}

启动界面程序后,在界面设置连接binance的API key连接,结果报错下面这样的错误,请问这个怎么解决

[2023-04-24T01:34:35.092321]: Unhandled WebSocket Error:<class 'TypeError'>
LastSentText:

LastReceivedText:

Exception trace:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/vnpy_websocket-1.0.5-py3.8.egg/vnpy_websocket/websocket_client.py", line 178, in _run
self._ws = await self._session.ws_connect(
TypeError: ws_connect() got an unexpected keyword argument 'verify_ssl'

WebsocketClient on error----------

订阅usdt合约时无法收到回报

订阅使用spot时send_packet正常收到回报信息,但使用usdt合约的时候无法收到信息,改到老版本重新init, start可以解决,但是想知道为什么出现这个问题

無法正確使用在vnpy3.0

如題

class BinanceSpotGateway(BaseGateway):
"""
vn.py用于对接币安现货账户的交易接口。
"""
default_name: str = "BinanceSpot"
default_setting: Dict[str, Any] = {
"key": "",
"secret": "",
"服务器": ["REAL", "TESTNET"],
"代理地址": "",
"代理端口": 0
}

其中一個是要修改
default_name
不知道還有沒有其他需要修改的

订阅合约会一直重连,“行情Websocket API连接刷新”

BinanceSpotGateway通道订阅合约后会一直断开重连,不断刷“行情Websocket API连接刷新”

怀疑是以下代码的问题

    def on_connected(self) -> None:
        """连接成功回报"""
        self.gateway.write_log("行情Websocket API连接刷新")
        for req in list(self.subscribed.values()):
            self.subscribe(req)

    def subscribe(self, req: SubscribeRequest) -> None:
        """订阅行情"""
        ...
        channels = []
        for ws_symbol in self.ticks.keys():
            channels.append(ws_symbol + "@ticker")
            channels.append(ws_symbol + "@depth5")

假如已经订阅了10个合约,当断线重连时, on_connected 中for req in list(self.subscribed.values()): 会发送10次订阅请求,但在subscribe中,每次都调用了 for ws_symbol in self.ticks.keys() ,即每次都订阅了10个合约,所以 on_connected中无需调用10次,只需要运行1次即可。
将上代码改为

    def on_connected(self) -> None:
        """连接成功回报"""
        self.gateway.write_log("行情Websocket API连接刷新")
        for req in list(self.subscribed.values()):
            self.subscribe(req)
            return

就不会出现一直断线重连的问题。但是造成断线的根本原因尚不清楚。

附上测试订阅断线的代码:


import time
from vnpy.event import Event, EventEngine
from vnpy.trader.event import EVENT_TICK, EVENT_CONTRACT, EVENT_LOG
from vnpy.trader.constant import Exchange
from vnpy.trader.object import SubscribeRequest
from vnpy_binance import BinanceSpotGateway


if __name__ == '__main__':

    def process_event(event: Event):
        data = event.data
        print(data)

    setting = {
        "key": "xxx",
        "secret": "xxx",
        "服务器": "REAL",
        "代理地址": "xxx",
        "代理端口": 1080
    }

    event_engine = EventEngine()
    event_engine.register(EVENT_TICK, handler=process_event)
    event_engine.register(EVENT_CONTRACT, handler=process_event)
    event_engine.register(EVENT_LOG, handler=process_event)
    event_engine.start()
    gateway = BinanceSpotGateway(event_engine)
    gateway.connect(setting)
    time.sleep(5)

    for symbol in ['bnbusdt', 'ethusdt', 'btcusdt', 'linkusdt', 'bchusdt', 'eosusdt']:
        sub_req = SubscribeRequest(
            symbol=symbol,
            exchange=Exchange.BINANCE)
        gateway.subscribe(sub_req)
        print(f'subscribe, {symbol}')

    while True:
        time.sleep(3)

运行后一般没有行情推送,只有不停的 “行情Websocket API连接刷新”,如果开始时行情推送正常,等待断线重连时同样出现问题。

请问币安的tick级数据下载接口是否已经实现完成

我在回测下载数据的时候,下载bar级的数据都是可以的。但是当下载tick级数据则会显示“数据下载失败,无法获取”
请问是没有实现tick数据下载接口的原因吗?(也有可能是我的问题,请指教)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.