零基础搭建量化交易框架

目录

前言

一、程序语言选择

 二、量化交易的选择

vn.py简介 

三、零基础搭建vn.py量化交易框架

四、解决vn.py下载依赖过程出现的问题。

1.XX模块运行失败,有read time out红字

2.AttributeError: module 'sipbuild.api' has no attribute 'prepare_metadata_for_build_wheel' 

3.python pip error:Microsoft Visual C++ 14.0 or greater is required


前言

量化交易是指以先进的数学模型替代人为的主观判断,利用计算机技术从庞大的历史数据中海选能带来超额收益的多种“大概率”事件以制定策略,极大地减少了投资者情绪波动的影响,避免在市场极度狂热或悲观的情况下作出非理性的投资决策。

最近在研究量化交易,把近一个月的学习研究经验与心得分享给大家。

以下是量化交易的基本组成部分 

一、程序语言选择

熟话说女怕嫁错郎,男怕入错行。选择一门合适的编程语言,将大大提高你的开发效率和成功率。

选择Python作为量化交易的主要语言有以下几个方面优势:

  • 语言维护成本低
  • 入门上手容易
  • 模块化程度高
  • 语言生态强

 二、量化交易的选择

正如Java语言离不开Spring框架,选择一个好的框架,也将大大提高开发者的效率。

一个好的框架已经帮开发者实现了底层代码,而开发这只需关注量化的核心部分风控、数据分析、策略交易。

目前国内的量化交易框架有:vn.py、TuShare(数据服务)、AKShare(数据服务)、聚宽(web)等等。

其中笔者认为选择vn.py是最为合适的框架:

  • vn.py是国内顶级量化框架,截至目前发文GitHub上有19k星星。
  • vn.py是开源框架,不用担忧投资开发者的策略被泄露
  • 覆盖国内外所有交易品种的交易接口,国内股票、期货,海外市场,数字货币等等
  • 开箱即用的各类量化策略交易应用

vn.py简介 

vn.py是一套基于Python的开源量化交易系统开发框架,于2015年1月正式发布,在开源社区7年持续不断的贡献下一步步成长为全功能量化交易平台,目前国内外金融机构用户已经超过900家,包括:私募基金、证券自营和资管、期货资管和子公司、高校研究机构、自营交易公司、交易所、Token Fund等。

官方网站:VeighNa量化社区 - 你的开源社区量化交易平台

GitHub代码仓库:GitHub - vnpy/vnpy: 基于Python的开源量化交易平台开发框架

三、零基础搭建vn.py量化交易框架

环境准备:windows10、PyCharm

首先从Github代码仓库下载vn.py源码,点击Download ZIP,下载源码源码压缩包并解压。

 

 从jetbrains下载流行的Python编译器PyCharm

https://www.jetbrains.com/pycharm/

这里选择社区版安装就可以了。

 安装完毕之后选择open->选择vnpy解压的文件夹。

 

打开之后的源码是不能直接运行的,需要下载安装依赖。这里推荐使用conda来管理项目得依赖。

Miniconda — conda documentation

注意:由于Python在版本兼容性做得很差,所以在下载conda前先查看当前下载的vnpy版本支持的Python版本。

在源码的README.md查看支持的Python版本为3.7。

  

 下载对应版本的conda

下载安装完成之后需要配置conda环境变量

首先右键此电脑->属性->高级系统->高级在系统变量选中Path点击编辑->新建

将conda安装路径的三个目录添加进去。

G:\conda为笔者安装conda的根目录。

G:\conda
G:\conda\Scripts
G:\conda\Library\bin

配置好之后回到Pycharm点击Termial(终端)选项,输入以下命令:

conda -V

 显示出版本号则说明环境配置成功。

 接着安装vnpy源码依赖,首先输入以下命令创建conda环境:

 conda  create -n  vnpy_master python=3.7

The following NEW packages will be INSTALLED:

  ca-certificates    pkgs/main/win-64::ca-certificates-2022.07.19-haa95532_0
  certifi            pkgs/main/win-64::certifi-2022.6.15-py37haa95532_0
  openssl            pkgs/main/win-64::openssl-1.1.1q-h2bbff1b_0
  pip                pkgs/main/win-64::pip-22.1.2-py37haa95532_0
  python             pkgs/main/win-64::python-3.7.13-h6244533_0
  setuptools         pkgs/main/win-64::setuptools-61.2.0-py37haa95532_0
  sqlite             pkgs/main/win-64::sqlite-3.39.2-h2bbff1b_0
  vc                 pkgs/main/win-64::vc-14.2-h21ff451_1
  vs2015_runtime     pkgs/main/win-64::vs2015_runtime-14.27.29016-h5e58377_2
  wheel              pkgs/main/noarch::wheel-0.37.1-pyhd3eb1b0_0
  wincertstore       pkgs/main/win-64::wincertstore-0.2-py37haa95532_2


Proceed ([y]/n)? y

输入命令之后会列举需要安装的环境包,会询问是否执行Proceed ([y]/n)? ,输入y后继续安装。

都安装完成之后需要激活conda环境

conda.bat activate vnpy_master

接着就是安装vnpy的依赖包:

python -m pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

依赖都安装完毕之后需要在Pycharm使用conda环境

按ctrl+alt+s打开设置,找到Project ->Python interpretor点击设置->Add

 选择创建的conda环境确定之后就能使用依赖了。

新建run.py文件输入以下代码:

from vnpy.event import EventEngine
from vnpy.trader.engine import MainEngine
from vnpy.trader.ui import MainWindow, create_qapp
from vnpy.gateway.ctp import CtpGateway
from vnpy.app.cta_strategy import CtaStrategyApp
from vnpy.app.cta_backtester import CtaBacktesterApp


def main():
    """Start VN Trader"""
    qapp = create_qapp()

    event_engine = EventEngine()
    main_engine = MainEngine(event_engine)

    main_engine.add_gateway(CtpGateway)
    main_engine.add_app(CtaStrategyApp)
    main_engine.add_app(CtaBacktesterApp)

    main_window = MainWindow(main_engine, event_engine)
    main_window.showMaximized()

    qapp.exec()


if __name__ == "__main__":
    main()

点击main函数左边运行图标运行。 

 看到界面后环境搭建成功!

四、解决vn.py下载依赖过程出现的问题。

1.XX模块运行失败,有read time out红字

ERROR: Exception:
Traceback (most recent call last):
  File "G:\programfile\lib\site-packages\pip\_vendor\urllib3\response.py", line 435, in _error_catcher
    yield
  File "G:\programfile\lib\site-packages\pip\_vendor\urllib3\response.py", line 516, in read
    data = self._fp.read(amt) if not fp_closed else b""
  File "G:\programfile\lib\site-packages\pip\_vendor\cachecontrol\filewrapper.py", line 90, in read
    data = self.__fp.read(amt)
  File "G:\programfile\lib\http\client.py", line 447, in read
    n = self.readinto(b)
  File "G:\programfile\lib\http\client.py", line 491, in readinto
    n = self.fp.readinto(b)
  File "G:\programfile\lib\socket.py", line 589, in readinto
    return self._sock.recv_into(b)
  File "G:\programfile\lib\ssl.py", line 1049, in recv_into
    return self.read(nbytes, buffer)
  File "G:\programfile\lib\ssl.py", line 908, in read
    return self._sslobj.read(len, buffer)
socket.timeout: The read operation timed out

此类问题一般是网络问题,如在下载依赖时没有加国内镜像,那么会默认去Python官网下载,由于官网是国外网络故会出现超时。

解决方法:在pip下载命令加国内镜像

-i https://pypi.tuna.tsinghua.edu.cn/simple

  • 清华大学:https://pypi.tuna.tsinghua.edu.cn/simple
  • 中国科学技术大学 : https://pypi.mirrors.ustc.edu.cn/simple
  • 豆瓣:http://pypi.douban.com/simple/
  • 阿里云:http://mirrors.aliyun.com/pypi/simple/

2.AttributeError: module 'sipbuild.api' has no attribute 'prepare_metadata_for_build_wheel' 

出现这个问题是vnpy安装PyQT5出现的问题,其它博主给的答案是安装PyQT5的工具包,

pip install PyQt5-tools

pip install -U setuptools==59.1.1

然而并不能解决问题。

解决方案是查看vnpy源码依赖的PyQT5版本支持的Python版本为3.7,故安装Python3.7版本,

安装低版本或高版本都有可能导致兼容性问题。

3.python pip error:Microsoft Visual C++ 14.0 or greater is required

出现这个问题是pip安装依赖时需要c++环境支持,下载并安装c++ 14以上版本

下载 Visual Studio Tools - 免费安装 Windows、Mac、Linux (microsoft.com)

选择其他工具

 

  • 2
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于搭建Python量化交易系统,你可以按照以下步骤进行: 1. 数据获取和处理:首先,你需要获取交易所的历史市场数据,可以使用第三方库或API来获取。然后,对数据进行清洗、处理和整理,以便后续的分析和建模。 2. 策略开发:在量化交易系统中,策略是至关重要的部分。你需要根据自己的投资理念和策略思路,使用Python编写交易策略。这可以包括技术指标的计算、信号生成、风险管理等。 3. 回测和优化:在开发完策略后,需要进行回测来评估策略的表现。通过历史数据对策略进行模拟交易,并评估其盈亏情况、风险指标等。如果需要优化策略,可以进行参数调整、参数优化等。 4. 执行交易:在回测阶段通过了的策略后,你可以将其应用于实际交易。使用交易所提供的API或者第三方交易平台的API,编写代码实现自动化的交易执行。 5. 风险管理:在量化交易中,风险管理非常重要。你需要制定适当的风险控制措施,例如止损、止盈、仓位管理等,以保证交易的稳定性和风险控制。 6. 监控和评估:定期监控交易系统的运行情况,评估策略的效果和稳定性,并根据需要进行调整和优化。 以上是搭建Python量化交易系统的一般步骤,你可以根据自己的需求和实际情况进行调整和完善。同时,还可以参考一些开源的量化交易框架和工具,如zipline、pyalgotrade等,来加速系统搭建的过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值