一、KDJ计算公式
K:SMA(RSV,5,1);
D:SMA(K,M1,1);
J:3*K-2*D;
def KDJ(CLOSE,HIGH,LOW, N=9,M1=3,M2=3):
'''
超卖超买类
RSV赋值:(收盘价-N日内最低价的最低值)/(N日内最高价的最高值-N日内最低价的最低值)*100
输出K:RSV的M1日[1日权重]移动平均
输出D:K的M2日[1日权重]移动平均
输出J:3*K-2*D
'''
RSV=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100
K=SMA(RSV,M1,1)
D=SMA(K,M2,1)
J=3*K-2*D
return K,D,J
二、代码
tdx_indicator 是1个通达信常用函数的封装库,下载可以从我的开源项目中拿到https://gitee.com/hytrader/hytrader/tree/master/data_tool/
from mootdx.quotes import Quotes
import pandas as pd
import tdx_indicator
client = Quotes.factory(market='std')
df = client.bars(symbol="300059", frequency=9, offset=300) #获取最近300日东方财富k线
close=df['close']
high=df['high']
low=df['low']
K,D,J=tdx_indicator.KDJ(close,high,low)
gold_fork =tdx_indicat