问题标签 [technical-indicator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1844 浏览

c# - 如何正确计算 Fisher 变换指标

我正在编写一个小型技术分析库,其中包含 TA-lib 中不可用的项目。我从在cTrader上找到的一个示例开始,并将其与 TradingView 版本中的代码进行匹配。

这是来自 TradingView的Pine 脚本代码:

这是我实施指标的尝试:

IndicatorBase 类和 CandleSeries 类

数学助手

问题

输出值似乎在预期范围内,但是我的 Fisher 变换交叉与我在 TradingView 的指标版本中看到的不匹配。

问题

如何在 C# 中正确实现 Fisher 变换指标?我希望这与 TradingView 的 Fisher Transform 输出相匹配。

我知道的

我已经对照我个人编写的其他指标和来自 TA-Lib 的指标检查了我的数据,并且这些指标通过了我的单元测试。我还逐个对照 TradingView 数据检查了我的数据,发现我的数据符合预期。所以我不怀疑我的数据是问题所在。

细节

CSV 数据 - NFLX 5 分钟汇总

下图是上面显示的应用于 TradingView 图表的 Fisher 变换代码。我的目标是尽可能地匹配这个输出。

在此处输入图像描述

Fisher 青色 触发器 洋红色

预期产出:

交叉在东部时间 15:30 完成

  • 大约 Fisher 值是 2.86

  • 大约触发值为 1.79

交叉在东部时间 10:45 完成

  • 大约费雪值是 -3.67

  • 大约触发值为 -3.10

我的实际输出:

交叉在东部时间 15:30 完成

  • 我的费雪值是 1.64

  • 我的触发值是 1.99

交叉在东部时间 10:45 完成

  • 我的费雪值是 -1.63

  • 我的触发值是 -2.00

赏金

为了让您的生活更轻松,我包含了一个小型控制台应用程序,其中包含通过和失败的单元测试。所有单元测试都是针对相同的数据集进行的。通过的单元测试来自经过测试的工作 简单移动平均线指标。失败的单元测试是针对有问题的Fisher 变换指标的。

项目文件 (5/14 更新)

帮助我的 FisherTransform 测试通过,我将奖励赏金。

在此处输入图像描述

如果您需要任何其他资源或信息,请发表评论。

我会考虑的替代答案

  • 在 C# 中提交您自己的工作 FisherTransform

  • 解释为什么我的 FisherTransform 实际上按预期工作

0 投票
1 回答
232 浏览

python-3.x - 如何从 OHLC 数据计算枢轴值

我有一个带有 open、high、low、close 和 key 列的 pandas 数据集。现在我想按键对数据集进行分组并使用公式计算枢轴 - (高+低+收盘)/ 3。到目前为止,我能够做到。但要求是将计算的数据转移到我无法编码的下一组。

我能够按键列对数据集进行分组并能够计算数据透视数据。

目前我正在低于输出。

但是在将值转移到下一组之后,预期的输出应该如下所述。

0 投票
1 回答
329 浏览

python-3.x - 如何从具有多个 groupby 列的 OHLC 数据中计算枢轴值

我有一个带有 open、high、low、close、key1 和 key2 列的 pandas 数据集。现在我想通过 key1 和 key2 对数据集进行分组,并使用公式 - (high + low + close) / 3 计算枢轴。到目前为止,我能够做到。但要求是将计算的数据转移到我无法编码的下一组。

我能够按 key1 和 key2 列对数据集进行分组,并且能够通过下面的代码计算数据透视数据,但无法在下一组上移动值。

当我使用下面的代码时,

我得到低于输出。

但预期输出:

0 投票
0 回答
129 浏览

metatrader4 - MetaTrader 中的 ADX 计算

我试图弄清楚如何在 MetaTrader 中计算 ADX。我研究了文档和ADX.mq4代码,但仍然得到一些错误的结果。

我正在尝试使用月度数据来查看历史第一条的计算结果。使用标准 14 周期和收盘价。

指标从第 15 个柱开始在图表上绘制,但数据窗口显示的值尚未从第二个柱开始,这没关系,因为它使用指数方法。

假设我们有以下 OHLC 条形数据:

那么第一个值(从第二个柱开始)应该计算如下:

但终端显示以下内容:

手动计算有什么问题?

PS:在MT5中观察到相同的结果

0 投票
1 回答
150 浏览

r - 我正在尝试在 squanstrat 中制定一种策略,当 200 SMA 大于股票时买入 QQQ,而在相反时卖出

我正在尝试在 quastrat 中开发一种策略,当 QQQ 大于 SMA 200 时买入,当 SMA 200 小于 QQQ 时卖出。但是我的买入和卖出信号有问题。

这是错误

sigComparison(label = label, data = data, columns = columns[c(i, : 不支持多于两列的比较,参见 sigFormula

当前代码如下:

添加买卖信号

添加进入和退出规则

0 投票
2 回答
1822 浏览

technical-indicator - 理解和转换 ThinkScripts CompoundValue 函数

我目前正在将 ThinkScript 指示器转换为 C#,但是,我遇到了这个CompoundValue函数,我不确定如何隐藏它。

文件内容如下:

根据以下规则计算复合值:如果柱数大于长度,则返回可见数据值,否则返回历史数据值。此函数用于使用递归初始化研究。

使用示例:

我的解释:

基于描述和示例。看起来我们正在传递一个计算,x[1] + x[2]它在当前柱和前一个柱上执行这个计算(基于 的第一个参数2)。我不确定该参数1的用途。

我的问题:

请解释一下这个函数实际上在做什么。如果可能,请说明此方法如何使用伪代码工作。

0 投票
0 回答
81 浏览

java - 用 Java 确定最优交易行为的遗传算法

Java中的遗传算法组合交易信号的输出,任务是演化一组权重(每个交易信号一个)以确定最佳交易行为。个体表示应关联一个数字权重(0到1之间)到每个交易信号。在进化过程结束时,应该返回最佳的权重配置。

0 投票
1 回答
2054 浏览

syntax - Tradingview pine 脚本是一坨屎:不能使用可变变量作为安全函数的参数

老实说,在脚本语言中实现没有后端问题的选项有多难。我收到以下错误“不能使用可变变量作为安全函数的参数”,只是因为我一直传入在 if 语句中设置的变量。尝试了变量间接,函数间接,各种排列方式,即使我知道的一些人在这方面取得了成功,但问题仍然存在。

我想要一种简洁的方式来编写代码,而不必使用三元运算或函数变通。重复问题中建议了三元运算和函数解决方法,但没有回答我正在寻找的内容。任何编程语言脚本或面向对象都有能力使用 if 语句来处理选项,这种语言没有。

0 投票
2 回答
3151 浏览

python - Pandas:基于局部最小值-最大值的数据之字形分割

我有一个时间序列数据。生成数据

我想创建一条连接局部最大值和局部最小值的曲折线,它满足在 y 轴上,|highest - lowest value|每条曲折线必须超过前一个距离的百分比(比如 20%)的条件之字形线和一个预先设定的值 k(比如 1.2)

我可以使用以下代码找到局部极值:

但我不知道如何将阈值条件应用于它。请告诉我如何申请这样的条件。

由于数据可能包含数百万个时间戳,因此强烈建议进行有效计算

为了更清楚的描述:在此处输入图像描述

示例输出,来自我的数据:

在此处输入图像描述

我想要的输出(与此类似,之字形仅连接重要段) 在此处输入图像描述

0 投票
1 回答
65 浏览

javascript - '{ period: any; 类型的参数 价格:任何;}' 不可分配给“MAInput”类型的参数

我想technicalindicators在我用 TypeScript 编写的 Angular 应用程序中使用,但不知道如何导入和使用它?

我想做的是计算数组的 SMA(简单移动平均线)。

编辑:

我已经使用命令安装了technicalindicators模块。npm i --save technicalindicators然后我像这样导入它:

然后我尝试像这样使用它:

但我收到此错误消息:

'{ period: any; 类型的参数 价格:任何;}' 不可分配给“MAInput”类型的参数