大家好,欢迎来到IT知识分享网。
DKX – 多空线
1 公式
MID:=(3*CLOSE+LOW+OPEN+HIGH)/6;
DKX:(20*MID)+19*REF(MID,1)+18*REF(MID,2)+17*REF(MID,3)+
16*REF(MID,4)+15*REF(MID,5)+14*REF(MID,6)+
13*REF(MID,7)+12*REF(MID,8)+11*REF(MID,9)+
10*REF(MID,10)+9*REF(MID,11)+8*REF(MID,12)+
7*REF(MID,13)+6*REF(MID,14)+5*REF(MID,15)+
4*REF(MID,16)+3*REF(MID,17)+2*REF(MID,18)+REF(MID,20)/210;
MADKX:MA(DKX,M);
2 数据准备
我们以科创50指数 000688 为例,指数开始日期为2019-12-31,数据格式如下:
3 计算过程
def calculate_dkx(df: pd.DataFrame, N=10): """ 计算 DKX 指标及其移动平均线 MADKX。 参数: df (pd.DataFrame): 包含至少 'open', 'high', 'low', 'close' 列的 DataFrame, 分别代表每日开盘价、最高价、最低价和收盘价。 N (int): 用于计算 MADKX 的时间窗口大小,默认为10。 返回: pd.DataFrame: 包含原始数据及计算出的DKX和MADKX值的 DataFrame。 """ # 创建一个df的副本以避免修改原始数据 data = df.copy() # 计算中间价 (Mid-price),这里是采用收盘价、开盘价、最高价和最低价的加权平均 mid = (3*data['close'] + data['high'] + data['low'] + data['open']) / 6 # 初始化 DKX 指标 dkx = 0 a = 0 # 计算 DKX 指标 # 这里使用了一个循环来计算最近20天的加权平均 for i in range(1, 21): a += i # 累加权重 tmp = mid.shift(i-1) * (21 - i) # 计算加权项 dkx += tmp # 累加加权项 # 计算最终的 DKX 指标值 dkx = dkx / a # 计算 DKX 指标的 N 周期移动平均线 MADKX madkx = dkx.rolling(N).mean() # 将计算出的 DKX 和 MADKX 值添加到 DataFrame data['dkx'] = dkx data['madkx'] = madkx # 返回包含所有计算出指标的 DataFrame return data
4 注意事项
参数N=10时,计算结果与东方财富软件中一致
雪球无此指标
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/127324.html