简单但功能强大的回溯测试框架,使您能够专注于财务战略建模、投资组合管理和分析回溯测试。

quantdom的Python项目详细描述


https://img.shields.io/pypi/v/quantdom.svg?style=flat-squarehttps://img.shields.io/travis/constverum/Quantdom.svg?style=flat-squarehttps://img.shields.io/pypi/wheel/quantdom.svg?style=flat-squarehttps://img.shields.io/pypi/pyversions/quantdom.svg?style=flat-squarehttps://img.shields.io/pypi/l/quantdom.svg?style=flat-square

quantdom是一个用python编写的简单但功能强大的回溯测试框架,它致力于让您专注于财务战略建模、投资组合管理和分析回溯测试。它已被创建为一个有用的和灵活的工具,以节省系统交易社区从重新发明车轮,让他们评估他们的交易想法,以最小的努力更容易。它是为那些已经习惯了python并希望创建、测试和探索自己的交易策略的人而设计的。

http://f.cl.ly/items/1z1t1T0A0P161f053i45/quantdom_v0.1a1.gif

Quantdom目前处于早期阿尔法状态。所以请耐心等待可能出现的错误并报告。

功能

  • 免费、开源和跨平台的回测框架
  • 多个数据源:csv文件和在线资源,如google finance、yahoo finance、quandl等
  • 投资分析(金融组合的绩效和风险分析)
  • 帮助可视化回测结果的图表和报告

要求

安装

使用二进制文件

您可以下载系统的二进制软件包(有关可用下载,请参见Github Releases页):

从源代码运行

您可以从pypi安装最后一个stable release

$ pip install quantdom

最新的开发版本可以直接从github安装:

$ pip install -U git+https://github.com/constverum/Quantdom.git

之后,要运行应用程序,只需执行一个命令:

$ quantdom

用法

  1. 运行quantdom。
  2. Data选项卡上选择用于回溯测试的市场工具(符号)。
  3. Quotes选项卡上指定一个包含策略的文件,然后选择其中一个。
  4. 运行回溯测试。完成后,您可以分析结果并优化策略的参数。

策略示例

三条策略

一种简单的交易策略,假设在连续三个牛市(收盘价高于开盘价)之后,牛市占据主导地位,因此价格将继续增长;在连续三个牛市(收盘价低于开盘价)之后,价格将继续下跌,因为熊市占主导地位。

fromquantdomimportAbstractStrategy,Order,PortfolioclassThreeBarStrategy(AbstractStrategy):definit(self,high_bars=3,low_bars=3):Portfolio.initial_balance=100000# default valueself.seq_low_bars=0self.seq_high_bars=0self.signal=Noneself.last_position=Noneself.volume=100# sharesself.high_bars=high_barsself.low_bars=low_barsdefhandle(self,quote):ifself.signal:props={'symbol':self.symbol,# current selected symbol'otype':self.signal,'price':quote.open,'volume':self.volume,'time':quote.time,}ifnotself.last_position:self.last_position=Order.open(**props)elifself.last_position.type!=self.signal:Order.close(self.last_position,price=quote.open,time=quote.time)self.last_position=Order.open(**props)self.signal=Falseself.seq_high_bars=self.seq_low_bars=0ifquote.close>quote.open:self.seq_high_bars+=1self.seq_low_bars=0else:self.seq_high_bars=0self.seq_low_bars+=1ifself.seq_high_bars==self.high_bars:self.signal=Order.BUYelifself.seq_low_bars==self.low_bars:self.signal=Order.SELL

文档

进行中;)

待办事项

  • 添加与TA-Lib
  • 的集成
  • 添加使用tensorflow/catboost/scikit learn和其他ml工具创建令人难以置信的算法和策略的能力。正如Elliott波动理论(原理)是首要任务之一一样,识别当前波动,并在此基础上预测置信区间内的价格走势
  • 添加从不同来源(新闻、推特等)进行情绪分析的功能。
  • 添加创建自定义屏幕、排名功能、报表的功能

贡献

  • 分叉:https://github.com/constverum/Quantdom/fork
  • 创建您的功能分支:git checkout-b我的新功能
  • 提交更改:git commit-am'add some feature'
  • 推到分支:git push origin my new feature
  • 提交拉取请求!

免责声明

此软件不应用作财务顾问,它仅用于教育用途。 本产品绝对不含任何保证。使用本软件即免除了作者使用本软件的任何责任。你可能会赔钱,因为这个程序可能有一些错误,所以你可以自己使用它冒险。请不要拿你不能失去的钱冒险。

反馈

我对你在Quantdom的经历很感兴趣。 请随时给我发送任何反馈,想法,增强要求或任何其他。

许可证

在apache许可下获得许可,版本2.0

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

推荐PyPI第三方库


热门话题
java检查通过AWS SES+Spring Boot发送邮件时是否存在邮件地址   SpringMVC中的java视图逻辑   JavaMaven:从不同的概要文件生成不同的战争   java使用分隔符将多个单词作为一个字符串?   java用c编写一个函数,其中包含以下语句序列[不会编译]   运行基本安卓 app=java的IntelliJ。伊奥。IOException:错误=40   优化Java图形   java自定义适配器以使用自定义字体   java淡入淡出图像使用java1。1.   Java中的简单代理:POST请求异常   转义如何在JAVA中使用转义序列   java如何从Rally Rest API读取集合属性   尝试连接到数据库时未找到sql server 2008 Java类异常   java JavaFX标签未使用setText()更新   java通过hazelcast计划作业访问本地资源   java为来自多个枚举类型的映射创建唯一键   java Eclipse标准属性视图PropertyDescriptor如何将属性行置为灰色   java迭代器空指针异常错误   java用户输入计算