简单但功能强大的回溯测试框架,使您能够专注于财务战略建模、投资组合管理和分析回溯测试。
quantdom的Python项目详细描述
quantdom是一个用python编写的简单但功能强大的回溯测试框架,它致力于让您专注于财务战略建模、投资组合管理和分析回溯测试。它已被创建为一个有用的和灵活的工具,以节省系统交易社区从重新发明车轮,让他们评估他们的交易想法,以最小的努力更容易。它是为那些已经习惯了python并希望创建、测试和探索自己的交易策略的人而设计的。
Quantdom目前处于早期阿尔法状态。所以请耐心等待可能出现的错误并报告。
功能
- 免费、开源和跨平台的回测框架
- 多个数据源:csv文件和在线资源,如google finance、yahoo finance、quandl等
- 投资分析(金融组合的绩效和风险分析)
- 帮助可视化回测结果的图表和报告
要求
- python3.6或更高
- PyQt5
- PyQtGraph
- NumPy
- 有关详细信息,请参见pyproject.toml。
安装
从源代码运行
您可以从pypi安装最后一个stable release:
$ pip install quantdom
最新的开发版本可以直接从github安装:
$ pip install -U git+https://github.com/constverum/Quantdom.git
之后,要运行应用程序,只需执行一个命令:
$ quantdom
用法
- 运行quantdom。
- 在Data选项卡上选择用于回溯测试的市场工具(符号)。
- 在Quotes选项卡上指定一个包含策略的文件,然后选择其中一个。
- 运行回溯测试。完成后,您可以分析结果并优化策略的参数。
策略示例
三条策略
一种简单的交易策略,假设在连续三个牛市(收盘价高于开盘价)之后,牛市占据主导地位,因此价格将继续增长;在连续三个牛市(收盘价低于开盘价)之后,价格将继续下跌,因为熊市占主导地位。
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