- 博客(225)
- 收藏
- 关注
原创 Backtrader 量化回测实践(7)——在jupyter中执行bt的samples
Backtrader提供了大量的测试用例,在samples目录下,测试程序主要都是用argparse解析参数,但是不能在jupyter中直接执行。找到一个解决方法,可以方便在jupyter中执行samples中的示例。
2024-04-11 09:07:31 351
原创 Backtrader 量化回测实践(6)——量化回测评价工具Quantstats
quantstats主要有三个功能,对每个功能进行解读和测试,提供测试用例: 1.统计功能,计算各类性能指标,夏普率,胜率,波动率等; 2.绘图功能,可视化性能指标,最大回撤,滚动统计,月度回报率等; 3.报告功能,生成度量报告,批量绘图,创建HTML报告;
2024-04-09 10:29:57 998
原创 Backtrader 量化回测实践(5)—— Datafeed 增加列数据
在官网上的拓展示例是 GenericCSVData ,没有拓展pandas数据加载的示例,实际中数据库读取到pandas中,从pandas中加载到Cerebro中,需要解决pandas拓展Cerebro的数据加载的默认列。
2024-03-22 10:13:44 313
原创 Backtrader 量化回测实践(4)—— 投资组合股票回测同一策略
需要将一组股票作为一个投资组合,验证一个策略。观察操作是否具有一致性。比如在某一段时间,组合中的买卖操作,有一定的相似度。对所有股票依次做单独的策略回测,不好对比,不好直观验证策略的优劣。基于backtrader,编写多股票同时回测程序。以MACD简单策略演示。需要关注理解策略中的四个关键点 。
2024-03-15 08:50:56 652
原创 落入datetime.date 和 numpy.datetime64 的使用大坑
梳理 datetime.date / numpy.datetime64 / pandas.Timestamp 的特点,关系和区别 ,不同格式之间日期转换。
2024-03-08 10:53:30 1518
原创 用pandas高效合并文本文件
通过pandas合并两个文本文件,按文本文件中的字段进行合并,组合成新的文本文件。用pandas的 merge方法,简洁流畅,效率高。
2024-03-07 08:26:35 371
原创 Backtrader 量化回测实践(3)—— 主要对象理解
在策略中使用的大部分数据形式:包括Indicator 、signal 、逻辑操作符、数学计算、切片访问的研究测试。重新回顾一下使用的主要对象,理解对象的性质,如何在实践中应用 。
2024-03-04 11:19:22 868
原创 Python使用pymysql和cx_Oracle插入数据的对比
使用Python向MySQL和Oracle数据库插入数据,常用的数据类型字符串,日期,数字,insert命令的拼接异同之处进行对比。
2024-02-29 07:58:59 494
原创 mplfinance 使用make_addplot做复杂股票走势图
关于make_mpf_style()函数中的marketcolors参数。不是ndarray类型,直接把报错,折腾了半天才找到原因!
2024-02-22 15:04:11 1122
原创 Backtrader 量化回测实践(2)—— 16个主要K线形态定义(下)
K线图形中的趋势线和价格走势能够反映市场的整体趋势,比如是否处于上涨或下跌趋势中。用Backtrader做策略的时候,需要考虑K线形态,作为分析依据。K线的常用形态搜集整理如下:光头光脚大阳线、光头光脚大阴线、光头阳线、光头阴线、光脚阳线、光脚阴线、大阳线、大阴线、十字线、T字线、倒T字线、一字线。以上一共16个,应该是常见的K线主要形态。在策略中需要通过程序定义K线的形态,根据网上的介绍和定义,用dataframe分析定义形态。
2024-02-22 11:31:36 427
原创 Backtrader 量化回测实践(2)—— 16个主要K线形态定义(上)
K线图形中的趋势线和价格走势能够反映市场的整体趋势,比如是否处于上涨或下跌趋势中。用Backtrader做策略的时候,需要考虑K线形态,作为分析依据。K线的常用形态搜集整理如下:光头光脚大阳线、光头光脚大阴线、光头阳线、光头阴线、光脚阳线、光脚阴线、大阳线、大阴线、十字线、T字线、倒T字线、一字线。以上一共16个,应该是常见的K线主要形态。在策略中需要通过程序定义K线的形态,根据网上的介绍和定义,用dataframe分析定义形态。
2024-02-21 15:22:54 516
原创 Backtrader 量化回测实践(1)—— 架构理解和MACD/KDJ混合指标
按Backtrader的架构组织,整理了一个代码,包括了Backtrader所有的功能点,原来总是使用SMA最简单的指标,现在稍微增加了复杂性,用MACD和KDJ两个指标综合作为操作指标,因此买入卖出操作就比较少,还有就是买入的时候,采用了限价单,整个的交易频率不高,所以图示交易点比较少,也符合多看少动的交易理念。通过代码结合架构图,可以充分去理解整个Backtrader的功能设计思路,前面一个功能一个功能学习理解,现在把所有的功能综合在一起进行展示,小有成就感。
2024-02-20 14:31:41 967
原创 Backtrader 文档学习- 整体架构功能分析理解
backtrader是一个用于开发和执行交易策略的Python框架。它提供了一套完整的工具和功能,使得用户可以方便地进行策略回测、实盘交易以及数据分析。backtrader的入口为Cerebro类,该类将所有输入(Data Feeds)、策略 (Strategy)、观察者(Observers)、策略评估(Analyzers) 、经纪人(Broker)、订单(Order)、交易(Trade)和日志记录(Writers)整合起来,实现回测以及交易,并返回结果和图表。
2024-02-18 11:39:52 1244
原创 Backtrader 文档学习- Plotting - Plotting Date Ranges
BT可以使用策略实例中保留完整长度的时间戳数组的索引,也可以使用实际的datetime.date 或datetime.datetime 实例来限制需要绘制时间段范围数据。
2024-02-08 14:25:44 531 1
原创 Backtrader 文档学习- Sizers
介绍Sizer对象,从Cerebro和Strategy中可以重定义,将Sizer用于仓位控制,重写Sizer方法。Sizer的参数说明。
2024-02-06 14:56:19 950
原创 Backtrader 文档学习- Observers - Reference
Observers - Reference参考10个方法:Benchmark,Broker,BuySell,DrawDown,TimeReturn,Trades,LogReturns,LogReturns2,FundValue,FundShres
2024-02-06 10:28:31 987
原创 Backtrader 文档学习- Observers - Benchmarking
Observers 观察者用于跟踪交易执行的情况,和 Analyzers 分析器的主要区别:Observers 的lines特性,它记录每个值,更适合绘图和实时查询,当然会消耗更多的内存。Analyzers 通过get_analysis方法返回一组结果,实现可能不会在运行结束之前提供任何结果,所以Analyzers记录最终结果,内存消耗小。Observers 按时间周期,投资组合/单个数据源 ,对比交易效果的示例。
2024-02-05 16:08:49 1021
原创 Backtrader 文档学习- Observers
backtrader示例图表都有三个默认绘制的东西, 现金和价值(经纪人中的资金情况) 交易(也称为操作) 买入/卖出订单 。
2024-02-04 17:32:34 887
原创 Backtrader 文档学习-Indicators- TA-Lib
即使BT提供的内置指标数量已经很多,开发指标主要是定义输入、输出并以自然方式编写公式,还是希望使用TA-LIB。原因:指标X在指标库中,而不在BT中 TA-LIB众所周知的,人们信任口碑好应需要BT提供了TA-LIB集成,但是BT和TA之间的指标还是略有差别。
2024-02-04 15:44:17 1100
原创 Backtrader 文档学习- Analyzers - Analyzers Reference(下)
分析器的分析指标,年度回报率,卡尔玛比率,最大回撤,资金杠杆,仓位资金,组合投资值等,是对策略的效果评估参数。方法说明,每个分析指标的测试用例,值得学习和理解。最后是如何带参数调用的测试。
2024-02-02 10:32:07 953
原创 Backtrader 文档学习- Analyzers - Analyzers Reference(上)
分析器的分析指标,年度回报率,卡尔玛比率,最大回撤,资金杠杆,仓位资金,组合投资值等,是对策略的效果评估参数。方法说明,每个分析指标的测试用例,值得学习和理解。
2024-02-01 16:58:30 1000
原创 Backtrader 文档学习- Analyzers - PyFolio
自2017-07-25开始,pyfolio APIs发生了变化,create_full_tear_sheet不再将gross_lev作为命名参数。 因此集成的示例不起作用 。就是 PyFolio 和 PyFolio Integration 中的示例都不能正常运行。
2024-02-01 11:19:00 406
原创 Backtrader 文档学习- Analyzers
analyser 分析器,分析交易系统表现,不仅是否仅获得利润,还是以高风险获得利润,或者与参考资产(或无风险资产)。与Strategy紧密结合,使用的架构方法基本相同。内存方面开销不大,因为即使在分析了数千个价格bar之后,在内存中只保留一个结果。
2024-02-01 10:28:01 966
原创 Backtrader 文档学习- Broker - Trade
跟踪交易的生命周期:仓位大小、价格、佣金(和价值), 交易从0开始,可以增加和减少,如果回到0,可以认为交易已平仓。 交易可以是多头(正大小)或空头(负大小)交易仅提供信息,没有用户可调用的方法 。
2024-01-31 14:18:20 394
原创 Backtrader 文档学习- Broker - Position
在backtrader中,Position对象是由Strategy对象创建的,用于跟踪策略的持仓。仓位表示: 持有size的资产, 平均价格为price
2024-01-31 14:01:18 423
原创 Backtrader 文档学习- Broker - Fillers
当使用交易量进行订单执行时,backtrader的模拟broker具有默认策略: 忽略交易量 ,broker可以接受Volume Fillers,filler确定在给定时间点上必须使用多少成交量进行订单匹配,更符合实际操作时考虑的重要因素。broker除了考虑价格因素外,还可以考虑volume成交量作为交易的依据,如果达到订单要求的成交量值或比例,才能够成交。
2024-01-31 13:23:31 926
原创 Backtrader 文档学习- Broker - Cheat-On-Open
Cheat on Open在系统中激活一个额外的循环,该循环调用策略中的方法next_open、nextstart_open和prenext_open。如果cheat-on-open = False,则订单将在前一天结束时发布,并将与下一个传入价格(即开盘价格)匹配如果cheat-on-open = True,则订单将在执行当天发布。因为订单是在经纪人评估订单之前发布的,所以它也将与下一个传入价格(即开盘价格)匹配。
2024-01-31 09:52:21 907
原创 Backtrader 文档学习- Broker - Slippage
测试滑点的关键参数作用,通过示例演示,以百分比滑点参数为主,配合slip_open , slip_out ,no-slip_match参数演示效果。
2024-01-30 15:14:41 896
原创 Backtrader 文档学习-Order StopTrail(Limit)
StopTrail订单,它是一种追踪止损订单。当市场价格朝定义的交易方向移动时,StopTrail订单会自动调整止损价,以便保护您的利润。当市场价格达到您的止损价格时,订单将被触发并执行。类似于追踪止盈的概念。
2024-01-29 11:15:57 892
原创 Backtrader 文档学习-Bracket Orders
组合订单类型是一个非常宽泛的订单类别,只要brokder支持的订单类型都可以,这些类型包括(Market, Limit, Close, Stop, StopLimit, StopTrail, StopTrailLimit, OCO)。主要用于止损和止盈。
2024-01-26 13:55:30 974
原创 Backtrader 文档学习-Order OCO orders
主要是可以使用订单组的管理策略,使用订单组策略,则一组订单中,有一个符合条件的订单成交,订单组中其他的订单就自动被取消。
2024-01-25 10:07:04 997
原创 Backtrader 文档学习-Target Orders
sizer不能决定操作是买还是卖,意味着需要一个新的概念,通过增加小智能层可以决定买卖,即通过持仓份额可以决定买卖操作。这就是策略中order_target_xxx方法族的作用。受zipline的方法的启发,提供了简单指定最终target的机会,target实现:- size 特定资产组合中的股票、合同数量- value 投资组合中资产的货币单位价值- percent 投资组合中资产价值的百分比(来自当前投资组合)
2024-01-24 10:49:03 882
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人