1 Star 4 Fork 13

王布衣/pandas

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
kdj.go 1.09 KB
一键复制 编辑 原始数据 按行查看 历史
王布衣 提交于 2023-02-17 08:34 . 修订KDJ注释
package indicator
import (
"gitee.com/quant1x/pandas"
. "gitee.com/quant1x/pandas/formula"
)
// KDJ 指标
//
// RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
// RSV赋值:(收盘价-N日内最低价的最低值)/(N日内最高价的最高值-N日内最低价的最低值)*100
// K:EMA(RSV,M1,1);
// 输出K:RSV的M1日[1日权重]移动平均
// D:EMA(K,M2,1);
// 输出D:K的M2日[1日权重]移动平均
// J:3*K-2*D;
// 输出J:3*K-2*D
func KDJ(df pandas.DataFrame, N, M1, M2 int) pandas.DataFrame {
//CLOSE, HIGH, LOW stat.Series
var (
CLOSE = df.ColAsNDArray("close")
HIGH = df.ColAsNDArray("high")
LOW = df.ColAsNDArray("low")
)
// 计算N周期的最高价序列
x01 := HHV(HIGH, N)
// 计算N周期的最低价序列
x02 := LLV(LOW, N)
// CLOSE-LLV(LOW,N)
x11 := CLOSE.Sub(x02)
// (HHV(HIGH,N)-LLV(LOW,N))*100
x12 := x01.Sub(x02)
//(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100
RSV := x11.Div(x12).Mul(100)
//K:EMA(RSV,M1,1);
K := EMA(RSV, M1*2-1)
//D:EMA(K,M2,1)
D := EMA(K, M2*2-1)
// 3*K-2*D;
J := K.Mul(3).Sub(D.Mul(2))
return pandas.NewDataFrame(K, D, J)
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/quant1x/pandas.git
git@gitee.com:quant1x/pandas.git
quant1x
pandas
pandas
v0.8.7

搜索帮助