问题标签 [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.
c# - 如何正确计算 Fisher 变换指标
我正在编写一个小型技术分析库,其中包含 TA-lib 中不可用的项目。我从在cTrader上找到的一个示例开始,并将其与 TradingView 版本中的代码进行匹配。
这是来自 TradingView的Pine 脚本代码:
这是我实施指标的尝试:
IndicatorBase 类和 CandleSeries 类
问题
输出值似乎在预期范围内,但是我的 Fisher 变换交叉与我在 TradingView 的指标版本中看到的不匹配。
问题
如何在 C# 中正确实现 Fisher 变换指标?我希望这与 TradingView 的 Fisher Transform 输出相匹配。
我知道的
我已经对照我个人编写的其他指标和来自 TA-Lib 的指标检查了我的数据,并且这些指标通过了我的单元测试。我还逐个对照 TradingView 数据检查了我的数据,发现我的数据符合预期。所以我不怀疑我的数据是问题所在。
细节
下图是上面显示的应用于 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 实际上按预期工作
python-3.x - 如何从 OHLC 数据计算枢轴值
我有一个带有 open、high、low、close 和 key 列的 pandas 数据集。现在我想按键对数据集进行分组并使用公式计算枢轴 - (高+低+收盘)/ 3。到目前为止,我能够做到。但要求是将计算的数据转移到我无法编码的下一组。
我能够按键列对数据集进行分组并能够计算数据透视数据。
目前我正在低于输出。
但是在将值转移到下一组之后,预期的输出应该如下所述。
python-3.x - 如何从具有多个 groupby 列的 OHLC 数据中计算枢轴值
我有一个带有 open、high、low、close、key1 和 key2 列的 pandas 数据集。现在我想通过 key1 和 key2 对数据集进行分组,并使用公式 - (high + low + close) / 3 计算枢轴。到目前为止,我能够做到。但要求是将计算的数据转移到我无法编码的下一组。
我能够按 key1 和 key2 列对数据集进行分组,并且能够通过下面的代码计算数据透视数据,但无法在下一组上移动值。
当我使用下面的代码时,
我得到低于输出。
但预期输出:
metatrader4 - MetaTrader 中的 ADX 计算
我试图弄清楚如何在 MetaTrader 中计算 ADX。我研究了文档和ADX.mq4代码,但仍然得到一些错误的结果。
我正在尝试使用月度数据来查看历史第一条的计算结果。使用标准 14 周期和收盘价。
指标从第 15 个柱开始在图表上绘制,但数据窗口显示的值尚未从第二个柱开始,这没关系,因为它使用指数方法。
假设我们有以下 OHLC 条形数据:
那么第一个值(从第二个柱开始)应该计算如下:
但终端显示以下内容:
手动计算有什么问题?
PS:在MT5中观察到相同的结果
r - 我正在尝试在 squanstrat 中制定一种策略,当 200 SMA 大于股票时买入 QQQ,而在相反时卖出
我正在尝试在 quastrat 中开发一种策略,当 QQQ 大于 SMA 200 时买入,当 SMA 200 小于 QQQ 时卖出。但是我的买入和卖出信号有问题。
这是错误
sigComparison(label = label, data = data, columns = columns[c(i, : 不支持多于两列的比较,参见 sigFormula
当前代码如下:
添加买卖信号
添加进入和退出规则
technical-indicator - 理解和转换 ThinkScripts CompoundValue 函数
我目前正在将 ThinkScript 指示器转换为 C#,但是,我遇到了这个CompoundValue
函数,我不确定如何隐藏它。
文件内容如下:
根据以下规则计算复合值:如果柱数大于长度,则返回可见数据值,否则返回历史数据值。此函数用于使用递归初始化研究。
使用示例:
我的解释:
基于描述和示例。看起来我们正在传递一个计算,x[1] + x[2]
它在当前柱和前一个柱上执行这个计算(基于 的第一个参数2
)。我不确定该参数1
的用途。
我的问题:
请解释一下这个函数实际上在做什么。如果可能,请说明此方法如何使用伪代码工作。
java - 用 Java 确定最优交易行为的遗传算法
Java中的遗传算法组合交易信号的输出,任务是演化一组权重(每个交易信号一个)以确定最佳交易行为。个体表示应关联一个数字权重(0到1之间)到每个交易信号。在进化过程结束时,应该返回最佳的权重配置。
syntax - Tradingview pine 脚本是一坨屎:不能使用可变变量作为安全函数的参数
老实说,在脚本语言中实现没有后端问题的选项有多难。我收到以下错误“不能使用可变变量作为安全函数的参数”,只是因为我一直传入在 if 语句中设置的变量。尝试了变量间接,函数间接,各种排列方式,即使我知道的一些人在这方面取得了成功,但问题仍然存在。
我想要一种简洁的方式来编写代码,而不必使用三元运算或函数变通。重复问题中建议了三元运算和函数解决方法,但没有回答我正在寻找的内容。任何编程语言脚本或面向对象都有能力使用 if 语句来处理选项,这种语言没有。
javascript - '{ period: any; 类型的参数 价格:任何;}' 不可分配给“MAInput”类型的参数
我想technicalindicators
在我用 TypeScript 编写的 Angular 应用程序中使用,但不知道如何导入和使用它?
我想做的是计算数组的 SMA(简单移动平均线)。
编辑:
我已经使用命令安装了technicalindicators
模块。npm i --save technicalindicators
然后我像这样导入它:
然后我尝试像这样使用它:
但我收到此错误消息:
'{ period: any; 类型的参数 价格:任何;}' 不可分配给“MAInput”类型的参数