用于回溯测试定量策略的快速/可扩展库

pyqstrat的Python项目详细描述


简介

pyqstrat包是为回溯测试定量策略而设计的。它最初是为我自己作为一个quant交易者/研究人员而构建的,因为我找不到一个基于python的框架,它的速度快、可扩展性强、透明性强,足以在我的工作中使用。

这个框架是为能够熟练使用numpy和相当先进的python技术的程序员设计的。

目标是:

    速度-性能敏感组件是在NUMPI级或C++中编写的,这可以导致性能比常规Python代码提高几个数量级。在可能的情况下,我们将并行工作,以便您可以利用您机器上的所有可用内核。
  • 透明度——如果你打算把钱投入到一个战略中,你需要确切地知道你在做什么假设。代码是编写和记录的,因此它们尽可能清晰。
  • 可扩展性-不可能想到交易者可以想到的所有回溯测试策略的要求。此外,交易者还希望根据交易策略来衡量不同的指标。

使用此框架,您可以:

  • 构建一个包含多个并发策略的投资组合
  • 创建指标、交易信号、交易规则和市场模拟器,并将它们添加到策略中
  • 将表示真实或“虚拟”工具的多个符号添加到策略中
  • 重用现有的市场模拟或建立自己来模拟如何和何时订购订单
  • 衡量回报,支取,常见的回报指标,如夏普,卡尔马尔,并添加自己的指标。
  • 在回溯测试中使用历史市场数据之前,先了解其特征并检查错误。
  • 模拟期货滚动。
  • 绘制交易图、市场数据、指标并添加自定义子批次,让您洞察策略的行为。
  • 使用计算机上的所有CPU核心优化策略的参数。
  • 使用计算机上的所有CPU核心将大型市场数据文件处理为报价和交易栏

**注意:这是测试版软件,API将更改**

安装

我强烈建议安装水蟒和创造一个水蟒环境。请参见https://docs.anaconda.com/anaconda/install/上的安装说明

Pyqstrat依赖于numpy、scipy、matplotlib和pandas,后者反过来使用需要编译的Fortran和C代码。它使用Apache箭头作为其市场数据文件格式并增强C++ LISARESS

conda install boost-cpp arrow-cpp -c conda-forge

pip install pyqstrat

要求:

已知的安装问题:

  • 不应使用箭头CPP 0.11.1,请移到0.12.1或更高版本。如果上述通用conda命令试图安装0.11.1,请说“n”,然后使用此命令:
conda install arrow-cpp=0.12.* -c conda-forge
conda install pyarrow=0.12.* -c conda-forge
pip install pyqstrat

文件

开始的最好方法是浏览这个jupyter笔记本:Building Strategies

Jupyter Notebooks

API docs

讨论

pyqstrat user group是用于pyqstrat讨论的组。

确认

在做这个之前,我看了下面的内容。虽然我最终没有使用它们,但它们绝对值得一看。

R quantstrat library

Python backtrader project

我在这个框架中使用的一些想法来自以下书籍

Trading Systems: A New Approach to System Development and Portfolio Optimisation - Tomasini, Emilio and Jaekle, Urban

Machine Trading - Chan, Ernie

Algorithmic Trading: Winning Strategies and Their Rationale - Chan, Ernie

免责声明

该软件是在简化的bsd许可证的条件下提供的。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JavaJSonarray不会从SeekBar读取double   使用另一个类从Java中的2D数组打印用户输入   java ClassNotFoundException的原因   spring调用两个方法以返回Java中的不同页面   httpurlconnection Java禁止的代码错误,但浏览器错误(2)   java画布矩阵转换   java:在另一个java映射中使用“Map”作为值   java“未找到用于解密的证书”(Apache CXF,WSSecurity)   java如何查看JTable中选择的行   java在没有xmlwrappers的情况下重复xml元素序列集   java将垂直直方图打印到控制台   java Spring JDBCTemplate:构造不带特殊字符的JSON   java PayPal RestApi获取用户信息