【全网唯一中文】bt回测框架中文文档,不是backtrader!是bt

先复制一段官方的,中文文档在下面,也不说那么多了,要用到bt,肯定也知道他是干嘛的,,给博主点点关注点点赞!!!这样博主才能更新更多免费的教程,不然就直接丢付费专栏里了

前言



bt 是一个灵活的 Python 回测框架,用于测试定量 交易策略。回溯测试是在给定的 数据集。此框架允许您轻松创建混合和匹配的策略 不同的 Algos。它旨在促进创建易于测试、可重用和 灵活的策略逻辑区块,促进复杂 交易策略。

目标:让量化分析师免于重新发明轮子,让他们专注于 工作的重要组成部分 - 战略制定。

bt 使用 Python 编码,并加入了一个充满活力和丰富的数据分析生态系统。 存在许多用于机器学习、信号处理和统计的库,可以利用这些库来避免 重新发明轮子 - 使用其他轮子时经常发生的事情 没有同样丰富的高质量开源项目的语言。

bt 构建在 ffn 之上 - 一个用于 Python 的金融函数库。一探究竟!
 

特征

  • 树形结构 树形结构有利于复杂算法交易的构建和组成 模块化和可重用的策略。此外,每个树节点都有自己的 价格指数,Algos 可以使用它来确定节点的分配。

  • 算法堆栈 Algos 和 AlgoStacks 是 另一个有助于创建模块化和可重用策略的核心功能 逻辑。由于它们的模块化,这些逻辑块也更容易测试 - 这是构建稳健金融解决方案的重要一步。

  • Charting and Reporting bt 还提供了许多有用的图表功能,有助于可视化回测 结果。我们还计划在未来添加更多的图表、表格和报告格式, 例如自动生成的 PDF 报告。

  • 详细统计数据此外,bt 会计算一系列与回溯测试相关的统计数据,并提供一种快速的比较方法 通过 Results 显示方法进行许多不同的回测的这些不同的统计数据。

路线图

未来的开发工作将集中在:

  • 速度由于 bt 的灵活性,必须在 可用性和性能。可用性永远是重中之重,但我们确实如此 希望尽可能提高性能。

  • 算法随着时间的推移,我们还将开发更多算法。我们还 鼓励任何人也贡献自己的 ALGO。

  • 图表和报告这是我们希望不断改进的另一个领域 因为报告是工作的一个重要方面。图表和报告 有助于在 Strategy Logic 中查找 bug。

安装 bt

最简单的安装方法是使用 Python Package Index :btpip

pip install bt

由于 bt 有很多依赖项,我们强烈建议安装 Anaconda Scientific Python 分发,尤其是在 Windows 上。此发行版 预装了许多必需的软件包,包括 pip。安装 Anaconda 后,上述 命令应完成安装。

推荐设置

我们相信使用 bt 进行开发的最佳环境是 IPython Notebook。 从他们的主页上看,IPython Notebook 是:

<span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:#1f2328"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>"[...] a web-based interactive computational environment
where you can combine code execution, text, mathematics, plots and rich
media into a single document [...]"
</code></span></span></span></span>

此环境允许您内联绘制图表,还允许您 使用 Markdown 轻松添加周围的文本。您可以轻松创建具有以下特点的 Notebook 您可以与同事共享,也可以将它们另存为 PDF。如果你不是 但被说服了,请前往他们的网站。
 

 正文

以下是 bt 库中 algos 模块的类的翻译说明。这个模块包含了用于创建策略逻辑的各种算法(Algos)。

bt.algos.CapitalFlow(amount)

继承自:Algo

用于模拟资金流动。资金流动可以是流入或流出。

此算法可用于模拟资金流动。例如,一个养老金基金可能每月或每年都会有因缴款而产生的资金流入。此算法会影响目标节点的资本,但不会影响该节点的收益。

因为这是作为调整来建模的,因此在重新分配/再平衡之前,资本将保留在策略中。

参数:

  • amount (float):调整的金额。

bt.algos.CloseDead

继承自:Algo

关闭所有价格为零的头寸(我们假设这些股票已经不存在),并将它们从 temp['weights'] 中移除(如果它们碰巧进入了 temp['weights'])。应该在 Rebalance() 之前调用。

在正常工作流程中,这不是必需的,因为这些证券不会被 SelectAll(include_no_data=False) 或类似方法选择,并且 Rebalance() 会关闭 temp['weights'] 中不存在的头寸。但是,在某些情况下,当 include_no_data=False 无法使用或使用了一些修改过的加权方法时,CloseDead() 可以避免错误。

要求:

  • weights

bt.algos.ClosePositionsAfterDates(close_dates)

继承自:Algo

在给定日期之后关闭证券头寸。这可以确保在到期/赎回的证券头寸被关闭。它还可以作为策略的一部分,例如确保策略不持有到期时间少于一年的证券。

注意,如果在堆栈中放置在 RunPeriod 算法之后,实际关闭头寸的时间将发生在提供的日期之后。要使其正常工作,即使已到期,证券的“价格”也必须存在到该日期为止。或者,使用 @run_always 装饰器立即关闭头寸。

此外,该算法不使用 temp['weights'] 和 Rebalance 进行操作,这样对冲(不包含在该工作流中)也会根据需要关闭。

参数:

  • close_dates (str):一个以证券名称为索引的数据框名称,列为“date”:我们希望尽快关闭头寸的日期。

设置:

  • target.perm['closed']:用于跟踪已经关闭的证券。

bt.algos.Debug(name=None)

继承自:Algo

调试工具算法,在触发时调用 pdb.set_trace。

在调试会话中,target 可用,可以通过 StrategyBase 接口进行检查。

bt.algos.HedgeRisks(measures, pseudo=False, strategy=None, throw_nan=True)

继承自:Algo

使用选定的工具对风险测度进行对冲。

确保事先调用了 UpdateRisk 算法。

参数:

  • measures (list):要对冲的风险测度的名称。
  • pseudo (bool):是否使用伪逆来计算逆雅可比矩阵。如果为 False,则如果所选工具的数量不等于测度的数量,或如果雅可比矩阵是奇异的,则会失败。
  • strategy (StrategyBase):如果提供,将对冲该策略的风险以及目标的风险。这允许单独跟踪对冲和未对冲的性能。注意,risk_strategy 必须在对根的子树的深度优先遍历中早于 target 出现,否则对冲将在 risk_strategy 的头寸更新之前发生。
  • throw_nan (bool):是否在对冲数量为 nan 时抛出异常,而不是简单地不进行对冲。

要求:

  • selected

bt.algos.LimitDeltas(limit=0.1)

继承自:Algo

基于权重增量限制修改 temp['weights']。

基本上,如果我们希望限制某个证券的目标权重从一天到另一天下降多少,这个算法非常有用。当我们希望对某一天的实际交易量更加保守而不影响市场时,也可以使用它。

例如,如果我们有一个策略目前持有 100% 的一个证券,而加权算法将新权重设为 0%,但我们使用此算法并将限制设置为 0.1,则新目标权重将为 90% 而不是 0%。

参数:

  • limit (float, dict):权重增量限制。如果为浮点数,则将是所有证券的全局限制。如果为字典,可以按股票代码指定限制。

设置:

  • weights

要求:

  • weights
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿雄不会写代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值