VeighNa量化社区
你的开源社区量化交易平台
xiaohe's Avatar
Member
离线
4300 帖子
声望: 268

https://gitee.com/vnpy/vnpy/blob/master/examples/vn_trader/run.py
参考这个脚本,取消想使用的接口/模块前的注释再启动即可

参考一下3楼吧

发布于vn.py社区公众号【vnpy-community】
 
原文作者:用Python的交易员 | 发布时间:2022-01-27
 
记得去年在写2021年计划的时候,提到过Python之父Guido加盟微软,未来Python性能方面的优化值得期待。

然后居然在2021年5月的Python语言峰会上,Guido就做了一场《Making CPython Faster》的分享,并宣布已经投入了名为"Shannon Plan"(“香农计划”)的Python性能优化计划,期望在未来分4个阶段把Python的速度提高5倍。感兴趣的同学推荐阅读【Python猫】公众号的这篇《与 Python 之父聊天:更快的Python!》

description

除此外,由Sam Gross发起的nogil项目已经在Python 3.9的基础上成功证明了移除GIL的可行性(支持多核运行的同时在单核性能基准上没有显著降低)。关于nogil项目的一些情况,同样推荐【Python猫】公众号的《Python 官方研讨会:彻底移除 GIL 真的可行么?》

这样的情况下,即使还没有Python官方JIT(Just-In-Time Complier)的消息,【5倍性能提升】以及【多核CPU支持】这两点改进也十分值得期待了。

对于vn.py项目来说,2022年的重点工作就是全新3.0版本的开发,虽然很多细节内容还在逐渐摸索,但是整体的方向已经基本定下。

 

向上兼容性的保证

 

在之前2019年的1.0 -> 2.0的升级中,由于函数接口和数据结构的变化,给许多老用户的升级带来了不小的麻烦。

description

本次2.0 -> 3.0的升级中,将会尽可能保证向上兼容性。具体来说,对比2.0大版本中收尾的2.9.0:

  • 底层数据结构名称兼容,如:

    • TickData
    • OrderRequest
  • 数据结构字段和类型兼容,如:

    • TickData.last_price,float类型
    • OrderRequest.direction,Enum类型(Direction枚举值)
  • 事件引擎和核心引擎的方法函数兼容,如:

    • EventEngine.register,注册事件处理函数
    • MainEngine.send_order,委托下单
  • 标准插件基类的方法函数兼容,如:

    • BaseGateway.on_tick,推送行情数据
    • BaseDatabase.load_bar_data,读取K线数据
  • 策略应用模块的策略模板兼容,如:

    • CtaStrategy模块下的CtaTemplate
    • SpreadTrading模块下的SpreadStrategyTemplate

总体上的目标,就是使用2.9.0开发运行交易策略的用户,可以平滑的过度到3.0上,不用再重写大量已有的代码(毕竟再也不想有类似Python 2 -> 3的迁移经历了)。

 

升级到Python 3.10

 

在3.9和3.10之间摇摆了几周,考虑到未来几年的技术迭代需求以及性能速度优势,还是决定选择3.10版本的Python来作为新的官方主力支持版本(之前三年使用的是3.7)。

description

截止目前(2022年1月26日),许多量化交易中常用的工具库也都已经发布了3.10版本的支持,包括NumPy、Pandas、Plotly、PyZMQ等。

本次主力支持版本升级后,列举两个比较值得期待的改进尝试方向:

  • 多进程共享内存支持(3.8新增)

    • multiprocessing.shared_memory
    • 执行各种多进程任务时,减少重复数据的内存开销
  • 结构化模式匹配(3.10新增)

    • match和case关键字(类似C++的switch/case)
    • 策略中实现复杂状态控制时,代码可以更加简洁清晰

 

类型提示全面覆盖

 

从3.5版本开始,Python引入了类型提示功能(type hinting),允许对变量、参数、函数返回值添加类型信息,类似下面的语法:

  def get_order(self, vt_orderid: str) -> Optional[OrderData]:      
        """基于委托号查询委托信息"""      
        return self.orders.get(vt_orderid, None)

尽管还是无法像静态语言(C++/Java)一样进行编译期检查,但有了类型提示后,结合上VS Code等编辑器的智能补全功能,写Python代码时的工作效率明显更上一层楼。

2.9.0版本已经初步达成了核心组件的类型提示覆盖,在3.0中会进一步把这个范围扩展到所有插件模块,让vn.py的代码可读性变得更加清晰。

最后:2022,Enjoy Trading!!!

 

是需要停止策略以后再关闭系统的

如果有数据服务提供就直接使用就好,如果没有数据服务就请自己拼了

你这很明显就是底层报错了。你参考文档里的方法用python -m vnstation启动然后复现你的操作,底层报错信息会输出的

应该是底层报错了,参考这个文档复现你的操作排查一下吧
https://github.com/vnpy/vnpy/blob/master/docs/error_debug.md

可以获取拼好的连续主力、次主力合约的历史数据进行回测了

示例策略只是介绍不同策略的写法,是否盈利需要自己针对品种、行情进行优化和改良了

具体功能请自行实现了

如果有tick的话可以用tick的limit_up和limit_down

应该没有的。可以自己去vnpy_xtp.api.inclue下看看头文件

请问你的VN Trader版本是?

你收到的license,米筐的license好像没有这么短,而且还还可以检查一下你是否哪里多加了空格

因为移除了富途接口,只能用run.py启动了

分开推送的。具体请自行打印排查了。
如果参考2楼的帖子中建议的self.vt_orderids.extend(vt_orderids)那种写法,应该在尚未收到委托变化回报之前,都不会挂新的委托出去

可以去github开个issue看看

发布于vn.py社区公众号【vnpy-community】
 
原文作者:用Python的交易员 | 发布时间:2022-01-18
 
之前12月底发布的2.9.0,为vn.py自从2019年以来开发迭代了三年的2.0大版本画上了一个句号。2022年已经开始了半个多月,虽然迟了点,不过老规矩还是要对2021年来做个总结回顾。

 

回顾2021年

 

先来看一眼2021年的vn.py项目整体数据(虽然统计日期是2022年1月17日):

  • 用户数量

    • Github Star:17.3k(+3.8k)
    • Github Fork:7k(+1.2k)
    • Gitee Star:1k
    • Gitee Fork:419
  • 项目开发

    • 版本迭代:9次(2.1.9 -> 2.9.0)
    • 交易接口:21个(移除23个)
    • 策略应用:16个(不变)
    • 数据库适配器:8个
    • 数据服务:7个
  • 社区交流

    • 论坛用户数量:31033 (+12889)
    • 论坛帖子数量:28485 (+10911)
    • 社区活动:8次
    • 专题小班课:3次

 

用户数量

截止2022年1月17日,vn.py在Github上一共收获了17369个Star,Fork数量达到7k,继续保持线性增长。下图来源于统计工具Star History

description

除了Github外,我们在国内代码托管平台Gitee上维护的vn.py仓库也保持同步更新,累计已经收获1018个Star和419个Fork。

 

项目开发

2021年vn.py的主要开发工作就是【模块剥离计划】,截止12月底发布的2.9.0版本已经基本收尾。除了通用功能依旧保留在核心框架项目下,所有的交易接口(gateway)、应用模块(app)、数据库适配器(database)、数据服务接口(datafeed)都已经剥离到了独立的功能模块项目中。具体剥离后的模块信息,可以参考之前发布的《vn.py发布v2.9.0 - 模块剥离计划收尾》。

除了模块剥离方面的工作外,2021年也更加聚焦于国内机构用户的需求,精简移除了部分用户量较少的交易接口,新增了以下证券和期货方面的接口:

  • EsunnyGateway:易盛柜台兼容交易接口(内盘期货、黄金TD);
  • OstGateway:东方证券OST极速柜台交易接口(股票);
  • HtsGateway:顶点HTS柜台交易接口(ETF期权);
  • TtsGateway:TTS仿真系统交易接口(仿真模拟)。

数据库方面,增加了一系列读写性能优秀的NoSQL数据库支持,包括:

  • DolphinDB:国产高性能分布式时序数据库;
  • Arctic:基于MongoDB扩展开发的金融时序数据库;
  • LevelDB:Google推出的高性能Key/Value数据库。

对于历史数据服务则是开发了独立的抽象接口(vnpy.trader.datafeed),并扩展了支持的数据服务范围:

  • 云端类:

    • 恒有数UData
    • TuShare
    • 天勤TQSDK
  • 客户端类:

    • 万得Wind
    • 同花顺iFinD
    • 天软TinySoft

策略应用方面,根据社区反馈的需求重构开发了新的WebTrader模块,采用FastAPI作为后端Web服务器:

description

整体架构图

description

服务参数配置

description

前端接口文档

 

社区交流

虽然2021年疫情明显好转,但反复出现的零星案例还是多次打乱了我们的线下活动计划。全年一共举办了8场社区活动(包括线上和线下),大概是近几年来比较少的了,专题小班课也因为同样的原因一共只搞了3场。

2021年回顾完,下一篇就是对2022年的计划了。今年我们将会启动全新3.0大版本的开发工作,如果你对vn.py过去一年有什么想分享的吐槽的,或者对新的一年有什么建议和期望,都在文章下面欢迎留言告诉我们!

 

© 2015-2022 微信 18391752892
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】