BackTrader 中文文档(二十九)(4)

简介: BackTrader 中文文档(二十九)

BackTrader 中文文档(二十九)(3)https://developer.aliyun.com/article/1505507

随机指标(通用)

原文:www.backtrader.com/recipes/indicators/stochastic/stochastic/

backtrader已经包含了一个Stochastic指标(包括一种显示三条计算线而不仅仅是通常的两条%k%d线的变体)

但这种指标假设用于计算的数据源具有highlowclose组件。这是因为原始定义使用了这些组件。

如果想要使用不同的组件,一个首要的方法可能是创建一个数据源,将不同的组件存储在数据源的highlowclose行中。

但一个更直接的方法是拥有一个通用Stochastic指标,它接受三(3)个数据组件,并将它们用作如果它们是highlowclose组件。

下面的代码执行此操作,并通过允许自定义第二次平滑的移动平均值添加了一个不错的功能。

class Stochastic_Generic(bt.Indicator):
  '''
 This generic indicator doesn't assume the data feed has the components
 ``high``, ``low`` and ``close``. It needs three data sources passed to it,
 which whill considered in that order. (following the OHLC standard naming)
 '''
    lines = ('k', 'd', 'dslow',)
    params = dict(
        pk=14,
        pd=3,
        pdslow=3,
        movav=bt.ind.SMA,
        slowav=None,
    )
    def __init__(self):
        # Get highest from period k from 1st data
        highest = bt.ind.Highest(self.data0, period=self.p.pk)
        # Get lowest from period k from 2nd data
        lowest = bt.ind.Lowest(self.data1, period=self.p.pk)
        # Apply the formula to get raw K
        kraw = 100.0 * (self.data2 - lowest) / (highest - lowest)
        # The standard k in the indicator is a smoothed versin of K
        self.l.k = k = self.p.movav(kraw, period=self.p.pd)
        # Smooth k => d
        slowav = self.p.slowav or self.p.movav  # chose slowav
        self.l.d = slowav(k, period=self.p.pdslow)

当然,需要验证当给定相同的输入集时,该指标是否确实产生与标准指标相同的结果。下面的图表是使用这组指令创建的。

# Generate 3 data feeds
        d0 = bt.ind.EMA(self.data.high, period=14)
        d1 = bt.ind.EMA(self.data.low, period=14)
        d2 = bt.ind.EMA(self.data.close, period=14)
        Stochastic_Generic(d0, d1, d2)  # customized stochastic
        # These two have generate the same results
        Stochastic_Generic(self.data.high, self.data.low, self.data.close)
        bt.ind.Stochastic(self.data)

这里是指标如何工作的视图


绝对强度柱

原文:www.backtrader.com/recipes/indicators/stochrsi/stochrsi/

StockchartsInvestopedia 关于此指标有文献。

公式如下:

  • StochRSI = (RSI - min(RSI, period)) / (max(RSI, period) - min(RSI, period))

理论上,用于计算RSI的周期与随后用于查找RSI的最小值和最大值的周期相同。这意味着如果选择的周期是14(事实上的标准)用于RSI,则指标的总回溯期将为28

注意

实际回溯期将稍长,因为 14RSI 的有效回溯期为 15,因为需要比较前两个周期的收盘价格来启动计算

在任何情况下,backtrader 会自动计算所有必需的回溯期和预热期。

考虑到以下是 backtrader 中的内置指标:

  • RSI
  • Lowest(又称MaxN
  • Highest(又称MinN

根据上述公式开发StochRSI是直接的。

class StochRSI(bt.Indicator):
    lines = ('stochrsi',)
    params = dict(
        period=14,  # to apply to RSI
        pperiod=None,  # if passed apply to HighestN/LowestN, else "period"
    )
    def __init__(self):
        rsi = bt.ind.RSI(self.data, period=self.p.period)
        pperiod = self.p.pperiod or self.p.period
        maxrsi = bt.ind.Highest(rsi, period=pperiod)
        minrsi = bt.ind.Lowest(rsi, period=pperiod)
        self.l.stochrsi = (rsi - minrsi) / (maxrsi - minrsi)

这里是指标工作原理的一瞥

商店/经纪人/数据源

介绍

原文:www.backtrader.com/recipes/storesbrokersdata/intro/

这一部分托管了一系列第三方存储(或单独的经纪人 / 数据源)的实现,它们不是backtrader核心的一部分。

bt-ccxt-store

原文:www.backtrader.com/recipes/storesbrokersdata/bt-ccxt-store/bt-ccxt-store/

bt-ccxt-store

作者 Dave Vallance

仓库链接:

Metaquotes MQL 5 - API

原文:www.backtrader.com/recipes/storesbrokersdata/mql5/mql5/

首次由用户 Nikolai 在这里宣布。

仓库链接:

NorgateData

原文:www.backtrader.com/recipes/storesbrokersdata/norgatedata/norgatedata/

包的链接:

Oanda v20

原文:www.backtrader.com/recipes/storesbrokersdata/oandav20/oandav20/

由用户 ftomassetti

仓库链接:

TradingView

原文:www.backtrader.com/recipes/storesbrokersdata/tradingview/tradingview/

用户为 Dave-Vallance

仓库链接:

相关文章
|
新零售 测试技术 持续交付
阿里如何定义团队的研发效能?
作者:何勉,阿里巴巴研发效能部资深技术专家 相关阅读:都996了,研发效能还是提不起来,关键在这里 因为身处研发效能部,我接触了公司很多产品技术团队。他们几乎都把研发效能提升列为了本财年的重要目标,大部分还为此成立专项。
19637 1
阿里如何定义团队的研发效能?
|
网络协议 Linux C++
Linux C/C++ 开发(学习笔记十二 ):TCP服务器(并发网络编程io多路复用epoll)
Linux C/C++ 开发(学习笔记十二 ):TCP服务器(并发网络编程io多路复用epoll)
535 0
|
算法 编译器 程序员
Windows下Boost库的安装与使用
Windows下Boost库的安装与使用
3726 0
Windows下Boost库的安装与使用
|
5月前
|
人工智能 自然语言处理 数据可视化
阿里云万小智AI建站怎么样?最新版本、价格,以及与云·企业官网相比优势参考
万小智AI建站是阿里云在2025年底重磅推出的全新建站产品,是原云·速成美站的全新升级换代产品,该产品深度融合人工智能生成技术与零代码开发理念,致力于为企业及个人用户提供极具效率的数字化建站解决方案,用户仅需通过自然语言对话交互及可视化拖拽操作,即可在无编程基础的前提下快速构建适配多终端的响应式网站。同时,阿里云的建站产品还有云·企业官网,以专业设计与高性能服务于高端需求,两者在阿里云生态中形成互补。
764 11
|
人工智能 测试技术 API
PaperBench:OpenAI开源AI智能体评测基准,8316节点精准考核复现能力
PaperBench是OpenAI推出的开源评测框架,通过8316个评分节点系统评估AI智能体复现学术论文的能力,涵盖理论理解、代码实现到实验执行全流程。
916 30
PaperBench:OpenAI开源AI智能体评测基准,8316节点精准考核复现能力
|
敏捷开发 数据可视化 BI
从数据到决策:工作汇报中可视化图表的正确打开方式
本文介绍如何根据信息选择合适的图表类型,包括时间相关的甘特图、折线图、时间线图;数据对比的柱状图、饼图、堆叠图;状态跟踪的看板、燃尽图;关系分析的散点图、热力图。
820 3
从数据到决策:工作汇报中可视化图表的正确打开方式
|
缓存 NoSQL Serverless
云数据库Tair:从稳定低延时缓存到 Serverless KV
本次分享聚焦云数据库Tair的使用,涵盖三部分内容:1) Tair概览,介绍其作为稳定低延时缓存及KV数据库服务的特点和优势;2) 稳定低延迟缓存技术,探讨如何通过多线程处理、优化内核等手段提升性能与稳定性;3) 从缓存到Serverless KV的演进,特别是在AI大模型时代,Tair如何助力在线服务和推理缓存加速。Tair在兼容性、性能优化、扩缩容及AI推理加速方面表现出色,满足不同场景需求。
|
存储 人工智能 JSON
AscendC从入门到精通系列(三)基于自定义算子工程开发AscendC算子
本文介绍了基于Ascend C的自定义算子开发流程,涵盖从工程创建、代码编写、编译部署到运行验证的全过程。以动态shape的AddCustom算子为例,详细描述了如何利用CANN提供的工具msOpGen生成开发工程,实现算子核函数与host侧代码,以及如何编译、部署和测试自定义算子。
|
消息中间件 存储 前端开发
「3.4w字」超保姆级教程带你实现Promise的核心功能
该文章通过详细的步骤和示例代码,逐步介绍了如何从零开始实现一个符合ECMAScript标准的Promise对象,涵盖了Promise的基本使用、状态管理、链式调用、错误处理机制及Promise.all和Promise.resolve等方法的实现。
「3.4w字」超保姆级教程带你实现Promise的核心功能
|
Shell
Gitee 如何自动部署 Pages?还是用 GitHub Actions!
在上篇《一篇教你代码同步 GitHub 和 Gitee》中,我们使用 GitHub Actions 解决了 GitHub 代码自动同步 Gitee 的问题,但我们的博客仓库代码同步到 Gitee 后,并不能像 GitHub 一样自动部署 Pages,如果不使用付费的 Gitee Pages Pro 服务,那我们该怎么实现 Gitee 自动部署 Pages 呢?
1160 0
Gitee 如何自动部署 Pages?还是用 GitHub Actions!

热门文章

最新文章