零基础搭建量化交易框架

目录

前言

一、程序语言选择

 二、量化交易的选择

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


前言

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

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

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

零基础搭建量化交易框架_第1张图片

一、程序语言选择

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

选择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,下载源码源码压缩包并解压。

零基础搭建量化交易框架_第2张图片

 零基础搭建量化交易框架_第3张图片

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

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

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

零基础搭建量化交易框架_第4张图片

 安装完毕之后选择open->选择vnpy解压的文件夹。零基础搭建量化交易框架_第5张图片

 零基础搭建量化交易框架_第6张图片

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

Miniconda — conda documentation

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

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

零基础搭建量化交易框架_第7张图片  

 下载对应版本的conda零基础搭建量化交易框架_第8张图片

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

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

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

零基础搭建量化交易框架_第9张图片

零基础搭建量化交易框架_第10张图片

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

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

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

conda -V

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

零基础搭建量化交易框架_第11张图片

 接着安装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

零基础搭建量化交易框架_第12张图片

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

零基础搭建量化交易框架_第13张图片

新建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函数左边运行图标运行。 

零基础搭建量化交易框架_第14张图片

 看到界面后环境搭建成功!零基础搭建量化交易框架_第15张图片

四、解决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版本,

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

零基础搭建量化交易框架_第16张图片

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)

选择其他工具

零基础搭建量化交易框架_第17张图片

 

你可能感兴趣的:(python)