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

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在读取属性文件时获取空指针   java NoSuchMethodError:org。springframework。靴子网状物servlet。错误错误控制器。最新SpringCloudStarter NetflixZuul中的getErrorPath()   java Spring不使用相同的JDBC连接   sqlite DB中带方括号的java数据   如何编译基于Maven的Java项目以从命令行运行它   java如何限制cowndown计时器的操作(例如登录)   java如何使用spring和springboot应用程序配置数据库?我想知道如何回答这类问题?   java中的buildpath不支持java。图书馆路径   java如何使用条目集在树映射上迭代?   java如何将IndexOf与Scanner结合使用?   xml Java SAX解析器进程监视   java在多台远程机器上运行并行junit测试   当我尝试在ListView中动态添加项时,单击按钮时java崩溃