![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据分析
文章平均质量分 85
六月闻君
学习不止,自娱自乐
展开
-
fastdtw计算两个股票序列之间的相似性(最小距离)
Dynamic time warping:动态时间扭曲 (DTW) 是一种在两个时间序列之间找到最佳对齐的技术,其中一个时间序列可以通过拉伸或收缩其时间轴来非线性地“扭曲”。在语音波形中,每个语音的持续时间和声音之间的间隔是允许变化的,但整体语音波形必须相似。下面做点有趣的测试,用沪深300的指数,测试范围两年的数据,在股票中寻找走势与之相似的股票。既然是时间序列的数据对比,分析相似度,那么当然也可以用于分析两个股票走势的相似度。通过两个图示对比,走势的相似度还是比较接近的,拟合的比较完美。原创 2024-08-23 11:44:19 · 286 阅读 · 0 评论 -
Backtrader 量化回测实践(7)——在jupyter中执行bt的samples
Backtrader提供了大量的测试用例,在samples目录下,测试程序主要都是用argparse解析参数,但是不能在jupyter中直接执行。找到一个解决方法,可以方便在jupyter中执行samples中的示例。原创 2024-04-11 09:07:31 · 437 阅读 · 0 评论 -
Backtrader 量化回测实践(6)——量化回测评价工具Quantstats
quantstats主要有三个功能,对每个功能进行解读和测试,提供测试用例: 1.统计功能,计算各类性能指标,夏普率,胜率,波动率等; 2.绘图功能,可视化性能指标,最大回撤,滚动统计,月度回报率等; 3.报告功能,生成度量报告,批量绘图,创建HTML报告;原创 2024-04-09 10:29:57 · 2205 阅读 · 0 评论 -
Backtrader 量化回测实践(3)—— 主要对象理解
在策略中使用的大部分数据形式:包括Indicator 、signal 、逻辑操作符、数学计算、切片访问的研究测试。重新回顾一下使用的主要对象,理解对象的性质,如何在实践中应用 。原创 2024-03-04 11:19:22 · 954 阅读 · 0 评论 -
Backtrader 量化回测实践(2)—— 16个主要K线形态定义(下)
K线图形中的趋势线和价格走势能够反映市场的整体趋势,比如是否处于上涨或下跌趋势中。用Backtrader做策略的时候,需要考虑K线形态,作为分析依据。K线的常用形态搜集整理如下:光头光脚大阳线、光头光脚大阴线、光头阳线、光头阴线、光脚阳线、光脚阴线、大阳线、大阴线、十字线、T字线、倒T字线、一字线。以上一共16个,应该是常见的K线主要形态。在策略中需要通过程序定义K线的形态,根据网上的介绍和定义,用dataframe分析定义形态。原创 2024-02-22 11:31:36 · 515 阅读 · 0 评论 -
Backtrader 量化回测实践(2)—— 16个主要K线形态定义(上)
K线图形中的趋势线和价格走势能够反映市场的整体趋势,比如是否处于上涨或下跌趋势中。用Backtrader做策略的时候,需要考虑K线形态,作为分析依据。K线的常用形态搜集整理如下:光头光脚大阳线、光头光脚大阴线、光头阳线、光头阴线、光脚阳线、光脚阴线、大阳线、大阴线、十字线、T字线、倒T字线、一字线。以上一共16个,应该是常见的K线主要形态。在策略中需要通过程序定义K线的形态,根据网上的介绍和定义,用dataframe分析定义形态。原创 2024-02-21 15:22:54 · 768 阅读 · 0 评论 -
Backtrader 量化回测实践(1)—— 架构理解和MACD/KDJ混合指标
按Backtrader的架构组织,整理了一个代码,包括了Backtrader所有的功能点,原来总是使用SMA最简单的指标,现在稍微增加了复杂性,用MACD和KDJ两个指标综合作为操作指标,因此买入卖出操作就比较少,还有就是买入的时候,采用了限价单,整个的交易频率不高,所以图示交易点比较少,也符合多看少动的交易理念。通过代码结合架构图,可以充分去理解整个Backtrader的功能设计思路,前面一个功能一个功能学习理解,现在把所有的功能综合在一起进行展示,小有成就感。原创 2024-02-20 14:31:41 · 1517 阅读 · 0 评论 -
Backtrader 文档学习- 整体架构功能分析理解
backtrader是一个用于开发和执行交易策略的Python框架。它提供了一套完整的工具和功能,使得用户可以方便地进行策略回测、实盘交易以及数据分析。backtrader的入口为Cerebro类,该类将所有输入(Data Feeds)、策略 (Strategy)、观察者(Observers)、策略评估(Analyzers) 、经纪人(Broker)、订单(Order)、交易(Trade)和日志记录(Writers)整合起来,实现回测以及交易,并返回结果和图表。原创 2024-02-18 11:39:52 · 2742 阅读 · 0 评论 -
交易中的胜率和盈亏比估算
通过胜率和盈亏比定义,模拟计算实际交易中的两个指标的影响。原创 2024-02-12 18:46:22 · 878 阅读 · 0 评论 -
Backtrader 文档学习- Plotting -Plotting on the same axis
在同一轴上绘图原创 2024-02-08 15:29:35 · 603 阅读 · 0 评论 -
Backtrader 文档学习- Plotting - Plotting Date Ranges
BT可以使用策略实例中保留完整长度的时间戳数组的索引,也可以使用实际的datetime.date 或datetime.datetime 实例来限制需要绘制时间段范围数据。原创 2024-02-08 14:25:44 · 602 阅读 · 1 评论 -
Backtrader 文档学习- Plotting
plot 绘图功能,绘图选项参数,控制对象的参数,plotscheme 对象。原创 2024-02-08 12:15:53 · 1288 阅读 · 0 评论 -
Backtrader 文档学习- Sizers
介绍Sizer对象,从Cerebro和Strategy中可以重定义,将Sizer用于仓位控制,重写Sizer方法。Sizer的参数说明。原创 2024-02-06 14:56:19 · 1027 阅读 · 0 评论 -
Backtrader 文档学习- Observers - Reference
Observers - Reference参考10个方法:Benchmark,Broker,BuySell,DrawDown,TimeReturn,Trades,LogReturns,LogReturns2,FundValue,FundShres原创 2024-02-06 10:28:31 · 1032 阅读 · 0 评论 -
Backtrader 文档学习- Observers - Benchmarking
Observers 观察者用于跟踪交易执行的情况,和 Analyzers 分析器的主要区别:Observers 的lines特性,它记录每个值,更适合绘图和实时查询,当然会消耗更多的内存。Analyzers 通过get_analysis方法返回一组结果,实现可能不会在运行结束之前提供任何结果,所以Analyzers记录最终结果,内存消耗小。Observers 按时间周期,投资组合/单个数据源 ,对比交易效果的示例。原创 2024-02-05 16:08:49 · 1073 阅读 · 0 评论 -
Backtrader 文档学习- Observers
backtrader示例图表都有三个默认绘制的东西, 现金和价值(经纪人中的资金情况) 交易(也称为操作) 买入/卖出订单 。原创 2024-02-04 17:32:34 · 934 阅读 · 0 评论 -
Backtrader 文档学习-Indicators- TA-Lib
即使BT提供的内置指标数量已经很多,开发指标主要是定义输入、输出并以自然方式编写公式,还是希望使用TA-LIB。原因:指标X在指标库中,而不在BT中 TA-LIB众所周知的,人们信任口碑好应需要BT提供了TA-LIB集成,但是BT和TA之间的指标还是略有差别。原创 2024-02-04 15:44:17 · 1288 阅读 · 1 评论 -
Backtrader 文档学习- Analyzers - Analyzers Reference(下)
分析器的分析指标,年度回报率,卡尔玛比率,最大回撤,资金杠杆,仓位资金,组合投资值等,是对策略的效果评估参数。方法说明,每个分析指标的测试用例,值得学习和理解。最后是如何带参数调用的测试。原创 2024-02-02 10:32:07 · 1059 阅读 · 0 评论 -
Backtrader 文档学习- Analyzers - Analyzers Reference(上)
分析器的分析指标,年度回报率,卡尔玛比率,最大回撤,资金杠杆,仓位资金,组合投资值等,是对策略的效果评估参数。方法说明,每个分析指标的测试用例,值得学习和理解。原创 2024-02-01 16:58:30 · 1083 阅读 · 0 评论 -
Backtrader 文档学习- Analyzers - PyFolio
自2017-07-25开始,pyfolio APIs发生了变化,create_full_tear_sheet不再将gross_lev作为命名参数。 因此集成的示例不起作用 。就是 PyFolio 和 PyFolio Integration 中的示例都不能正常运行。原创 2024-02-01 11:19:00 · 467 阅读 · 0 评论 -
Backtrader 文档学习- Analyzers
analyser 分析器,分析交易系统表现,不仅是否仅获得利润,还是以高风险获得利润,或者与参考资产(或无风险资产)。与Strategy紧密结合,使用的架构方法基本相同。内存方面开销不大,因为即使在分析了数千个价格bar之后,在内存中只保留一个结果。原创 2024-02-01 10:28:01 · 1070 阅读 · 0 评论 -
Backtrader 文档学习- Broker - Trade
跟踪交易的生命周期:仓位大小、价格、佣金(和价值), 交易从0开始,可以增加和减少,如果回到0,可以认为交易已平仓。 交易可以是多头(正大小)或空头(负大小)交易仅提供信息,没有用户可调用的方法 。原创 2024-01-31 14:18:20 · 434 阅读 · 0 评论 -
Backtrader 文档学习- Broker - Position
在backtrader中,Position对象是由Strategy对象创建的,用于跟踪策略的持仓。仓位表示: 持有size的资产, 平均价格为price原创 2024-01-31 14:01:18 · 501 阅读 · 0 评论 -
Backtrader 文档学习- Broker - Fillers
当使用交易量进行订单执行时,backtrader的模拟broker具有默认策略: 忽略交易量 ,broker可以接受Volume Fillers,filler确定在给定时间点上必须使用多少成交量进行订单匹配,更符合实际操作时考虑的重要因素。broker除了考虑价格因素外,还可以考虑volume成交量作为交易的依据,如果达到订单要求的成交量值或比例,才能够成交。原创 2024-01-31 13:23:31 · 952 阅读 · 0 评论 -
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 · 947 阅读 · 0 评论 -
Backtrader 文档学习- Broker - Slippage
测试滑点的关键参数作用,通过示例演示,以百分比滑点参数为主,配合slip_open , slip_out ,no-slip_match参数演示效果。原创 2024-01-30 15:14:41 · 978 阅读 · 0 评论 -
Backtrader 文档学习-Broker
介绍broker 的类继承,以及broker的属性参数和方法。原创 2024-01-30 10:42:27 · 933 阅读 · 0 评论 -
Backtrader 文档学习-Order StopTrail(Limit)
StopTrail订单,它是一种追踪止损订单。当市场价格朝定义的交易方向移动时,StopTrail订单会自动调整止损价,以便保护您的利润。当市场价格达到您的止损价格时,订单将被触发并执行。类似于追踪止盈的概念。原创 2024-01-29 11:15:57 · 964 阅读 · 0 评论 -
Backtrader 文档学习-Bracket Orders
组合订单类型是一个非常宽泛的订单类别,只要brokder支持的订单类型都可以,这些类型包括(Market, Limit, Close, Stop, StopLimit, StopTrail, StopTrailLimit, OCO)。主要用于止损和止盈。原创 2024-01-26 13:55:30 · 1078 阅读 · 0 评论 -
Backtrader 文档学习-Order OCO orders
主要是可以使用订单组的管理策略,使用订单组策略,则一组订单中,有一个符合条件的订单成交,订单组中其他的订单就自动被取消。原创 2024-01-25 10:07:04 · 1033 阅读 · 0 评论 -
Backtrader 文档学习-Target Orders
sizer不能决定操作是买还是卖,意味着需要一个新的概念,通过增加小智能层可以决定买卖,即通过持仓份额可以决定买卖操作。这就是策略中order_target_xxx方法族的作用。受zipline的方法的启发,提供了简单指定最终target的机会,target实现:- size 特定资产组合中的股票、合同数量- value 投资组合中资产的货币单位价值- percent 投资组合中资产价值的百分比(来自当前投资组合)原创 2024-01-24 10:49:03 · 915 阅读 · 0 评论 -
Backtrader 文档学习-Order Management and Execution
订单管理,主要介绍订单执行的逻辑,订单执行用例,执行类别:Market /Close /Limit /Limit with validity /Stop /StopLimit/ 。有一个完整的测试用例,说明各项参数和模式,非常重要!原创 2024-01-22 14:54:45 · 425 阅读 · 0 评论 -
Backtrader 文档学习-Order General
Cerebro是backtrader中的关键控制系统,策略(子类)是最终用户的关键控制点,后者需要连接系统其他部分的方法,这就是订单扮演的关键角色。原创 2024-01-19 16:41:30 · 990 阅读 · 0 评论 -
Backtrader 文档学习-Indicators混合时间框架
Indicator 中支持混合周期,在一个cerebro中进行策略计算,生成signal,有示例演示,有命令行方式,也有可以在jupyter中执行的 。原创 2024-01-18 17:28:03 · 1071 阅读 · 0 评论 -
Backtrader 文档学习-Indicators 开发
理解是在相同的Indicator下处理相同的bar ,输出的结果应该是一致的。虽然看起来不错,但是BT并不知道最小周期是多少,即使该参数被命名为“周期” ,(该名称可能会产生误导,Indicator可能会收到几个具有不同用途的“周期”)幂等是一个数学和计算机科学中的概念,描述的是一种特定的函数或操作,即使用相同的参数重复执行时,能够得到相同的结果。另一个是MA,已有定义的周期,如果周期是20,移动平均线也是20,得到的最小周期是40 bar。在next中,直接使用浮点值,所以可以使用标准的max函数。原创 2024-01-17 09:05:12 · 984 阅读 · 0 评论 -
Backtrader 文档学习-Indicators
Indicators的使用场景,在init和next中应用的区别,以及indicator绘图的参数设置介绍。原创 2024-01-12 10:49:45 · 1082 阅读 · 0 评论 -
Backtrader 文档学习-Strategy with Signals
backtrader可以不通过重写策略的方式触发交易,尽管重写策略是首选通用的方式。介绍通过使用信号也是可以实现交易触发的,定义signal ,signal 的状态:LONGSHORT、LONG、LONGEXIT 、SHORT、LONGEXIT、SHORTEXIT原创 2024-01-10 13:47:45 · 1010 阅读 · 0 评论 -
Backtrader 文档学习-Strategy(下)
BackTrader中的strategy 的方法和属性示例测试,notify_cashvalue 、notify_fund 、notify_store 、buy 、sell 等主要方法。原创 2024-01-09 10:08:43 · 584 阅读 · 0 评论 -
Backtrader 文档学习-Strategy(中)
Strategy是BT的核心模块,需要慢慢摸索内部设计的流程,方法的用途,使用场景,还要一些常用的状态值。本章主要介绍关于strategy的生存周期,notify_order方法,notify_trade方法,通过代码结合参数变化,理解订单消息和交易消息的使用情况,应用场景。原创 2024-01-03 16:27:07 · 563 阅读 · 0 评论 -
Backtrader 文档学习-Strategy(上)
当被调用时,它们返回一个订单(或子类)实例作参考。该订单具有唯一的参考标识符,可用于对比。如果正在replay数据或正载入数据,并且新tick正在到达相同的时间点,调用next而不改变长度。策略就像现实世界中的交易员一样,会在事件发生时得到通知。将重写backtrader创建的设置,并生成一个触及限价单,触及价格为9.8,限价为10.0。策略的长度总是等于主数据(datas[0])的长度,可以用len(self)。是BackTrader的核心模块,需要好好研读。策略通过方法的形式体现生命周期。原创 2023-12-25 09:19:38 · 945 阅读 · 0 评论