1.Backtrader来啦:可视化篇(重构)
2.EA是源码什么?
Backtrader来啦:可视化篇(重构)
量化投资与机器学习公众号为全网读者带来的Backtrader系列,深受欢迎,源码我们致力于提供免费、源码最清晰的源码Bt教程。QIML官方Github已上线,源码相关数据、源码多多鱼成品源码代码一并同步,源码欢迎大家关注和星标。源码公众号希望为国内量化投资圈贡献一份力量,源码影响更多人了解和学习量化投资,源码找到适合自己的源码道路。如需分享内容,源码欢迎在评论区留言。源码
今天的源码《可视化篇》将介绍Backtrader观测器模块observers与自带的绘图函数plot()。我们将通过修改图形样式,源码基于回测返回的收益序列TimeReturn,结合pyfolio和matplotlib工具,自定义可视化图形。私网AG源码获取完整代码+数据,见文末链接。
observers模块用于统计回测信息,并在plot()的帮助下实现可视化展示。最常用的观测器包括:
- Broker观测器:记录经纪商中各时间点的可用资金和总资产。可视化时,会同时展示cash和values曲线,若需单独展示,可分别使用Cash和Value观测器。
- BuySell观测器:记录回测过程中的买入和卖出信号。可视化时,会在价格曲线上标注买卖点。
- Trades观测器:记录回测过程中每次交易的盈亏。可视化时,会绘制盈亏点。
- TimeReturn观测器:记录回测过程中的收益序列。可视化时,盗窃源码真实案例会绘制收益曲线。
- DrawDown观测器:记录回测过程的回撤序列。可视化时,绘制回撤曲线。
- Benchmark观测器:记录业绩基准的收益序列,必须事先通过数据添加函数添加至大脑cerebro中。可视化时,同时绘制策略本身的收益序列和业绩基准的收益曲线。
如何添加观测器?observers通过addobserver()添加给大脑cerebro,参数obscls对应观测器类,args和kwargs对应观测器支持的设置参数。
如何读取观测器数据?观测器属于lines对象,可以通过self.stats对象在Strategy中读取数据。观测器的数据在所有指标计算完后、执行Strategy的next方法后运行并统计数据,因此读取的最新数据[0]相对与next的当前时刻晚一天。
如何自定义观测器?自定义观测器遵循继承bt.observer.Observer类,jar 源码反编译指定要统计的数据为相应的line,随着回测进行依次存入数据。作为Lines对象的Observers和Indicator类,内部都有plotinfo和plotlines属性,用于回测结束后通过cerebro.plot()方法进行可视化展示。
plot()图形绘制支持回测的三大内容:Data Feeds、Indicators和Observers。Data Feeds在回测开始前导入大脑,Indicators有的与Data Feeds一起绘制在主图上,有的以子图形式绘制,Observers通常绘制在子图上。
plot()中的参数用于系统性配置图形,如修改图形样式、主题颜色等。若需系统性修改图形样式,可以重新定义PlotScheme类,或直接在plot()中修改参数。Java字帖生成源码关于主题颜色,Backtrader提供多种主题色,可通过复制源码中定义的颜色并结合tab_index进行修改。
局部绘图参数设置通过类内部的plotinfo和plotlines属性控制,plotinfo主要对图形整体布局进行设置,plotlines主要对具体line的样式进行设置。
基于收益序列进行可视化,Backtrader自带的绘图工具方便实用。此外,结合pyfolio和matplotlib,根据回测返回的分析器TimeReturn、pyfolio、matplotlib可以得到可视化图形。不同主题下绘制效果也有所不同。
关于回测结果的可视化,需求不同对应不同的可视化内容。Backtrader回测框架提供了友好的绘图接口,对于额外数据,可结合Backtrader分析器Analyzers返回的指标,选用Python绘图工具如Matplotlib、Seaborn、Plotly等进行可视化展示。
量化投资与机器学习微信公众号专注于量化投资、对冲基金、Fintech、人工智能、大数据等领域,是业内主流自媒体,拥有来自公募、私募、券商、期货、银行、保险、高校等行业W+关注者,曾荣获AMMA优秀品牌力、优秀洞察力大奖,连续4年被腾讯云+社区评选为“年度最佳作者”。公众号致力于提供专业、全面的内容,帮助读者深入学习量化投资知识和技能。
EA是什么?
"EA"是指智能交易Expert Advisor,也叫智能交易系统、程序交易系统、自动化交易程序……EA本质上是一个电脑程序。是由程序员根据操盘的交易策略和思路编写写成计算机程序,只要在交易账户运行该序,EA就能自动分析外汇行情走势,自动买进抛出,低买高抛,完全不用盯着电脑,自动完成整个交易过程。
EA自年最早起源于美国,随着电脑技术和网络科技的发展,华尔街上的许多大公司的外汇交易员并不是把主要精力与时间放在人工盯盘与手动操作上,而是放在不断编写与完善自己的交易策略,然后编成EA,让电脑去自动执行。
扩展资料:
"EA"的类型介绍:
1、趋势EA
目前最常见,也是比较成熟的EA策略,根据各类指标策略判断趋势,进行交易。
2、货币对冲EA
通过不同货币价格波动的相关性进行多空对冲交易,货币对冲EA最大的缺点是无法回测,也就是无法得知过去行情的交易表现,只能通过实盘观察现有的交易。
3、网格EA
网格EA通过将k线划分相等或不等点位间距,达到间距点位触发交易。优点:资金曲线完美,盈利非常稳定,仓位小资金非常安全,配合定期出金,风险非常小。缺点:不适合小资金账户或手数过重的交易。
4、 剥头皮EA
盈利非常高的EA,利用经纪商报价延迟的间隙下单,交易时间非常短毫秒计算;缺点是对平台的点差和交易环境要求特别高,目前基本上没有平台适合做长期稳定的剥头皮交易。
5、综合类EA
综合类EA结合了以上几种EA的策略,但是有些EA虽然是趋势入场,却采用了及其激进的资金管理,放大了其爆仓风险。有些网格类EA采用了类Martingale的资金管理(马丁格尔法,类似于逆市加仓),放弃了市场中性的入场策略,反而采用一些指标来判断入场。
百度百科-EA软件