天软金融分析.NET函数大全 > 金融函数 > 技术分析 > 动量指标 > 计算公式

KDJ_f    

简述
随机指标,通过当日或最近几日最高价、最低价及收盘价等价格波动的波幅,反映价格趋势的强弱,与系统证券pn_stock()、系统时间pn_date()、系统周期pn_cycle()、复权方式pn_rate()、复权基准日pn_rateday()和执行点数PN_nDay()相关。调用时需注意设置系统参数。
定义
KDJ_f(N:Integer;M1:Integer;M2:Integer;Type:Integer):Table/Boolean
参数
名称类型说明
Ninteger整数,交易日天数
M1integer整数,计算K值的交易日天数
M2integer整数,计算D值的交易日天数
Typeinteger结果类型
显示名取值
当前值0
区间值1
买入条件2
卖出条件3
KDJ买入4
KDJ卖出5
返回
Type返回类型
0数组
1数组
2布尔值
3布尔值
4布尔值
5布尔值
数组结果说明:第一行为K值,第二行为K值,第三行为J值
  • 算法

    (1)X =收盘价-N日最低的最低价;
    (2)Y = N日最高的最高价-N日最低的最低价;
    (3)若Y非0,则RSV =X/Y*100;若Y为0,则RSV =100;
    (4)K =M1日RSV的平滑移动平均,权重为1;
    即K=SMa(RSV,M1,1)=[RSV+(M1-1)*K’]/M1,其中K’为上一周期K值;
    (5)D =M2日K的平滑移动平均,权重为1;
      即D=SMa(K,M2,1)=[K+(M2-1)*D’]/M2,其中D’为上一周期D值;
    (6)J =3*K-2*D;
    (7)Type=0,返回当前时间的随机指标K、D、J值;
    (8)Type=1,返回当前时间往前推共nDay个随机指标K、D、J的区间序列值;
    nDay由系统参数PN_nDay()设置,默认值为180。
    Type=2,返回K线是否上穿D线,且K<20;
    Type=3,返回K线是否下穿D线,且D>80;
    Type=4,返回J线是否上穿0;
    Type=5,返回J线是否下穿100。
    范例

    范例一:
    //计算白云机场2011年9月8日的随机指标。
    SetSysParam(pn_stock(),'SH600004');
    SetSysParam(pn_date(),inttodate(20110908));
    setsysparam(pn_cycle(),cy_day());
    setsysparam(pn_rate(),0);  //不复权
    //setsysparam(pn_rate(),1); //比例复权
    //setsysparam(pn_rateday(),-1);
    V:=KDJ_f(9,3,3,0);
    Return v;

    //结果:

    范例二:
    //计算白云机场2011年9月8日的向前推共5日随机指标序列(不复权)。
    SetSysParam(pn_stock(),'SH600004');
    SetSysParam(pn_date(),inttodate(20110908));
    setsysparam(pn_cycle(),cy_day());
    setsysparam(pn_rate(),0);  //不复权
    //setsysparam(pn_rate(),1);  //比例复权
    //setsysparam(pn_rateday(),-1);
    SetSysParam(pn_nday(),5);
    V:=KDJ_f(9,3,3,1);
    Return v;

    //结果:

    范例三:
    //计算白云机场2011年9月8日的K线是否上穿D线,且K<20。
    SetSysParam(pn_stock(),'SH600004');
    SetSysParam(pn_date(),inttodate(20110908));
    setsysparam(pn_cycle(),cy_day());
    setsysparam(pn_rate(),0);
    v:=KDJ_f(9,3,3,2);
    Return v;

    //结果:0,即此时K线未突破D线
相关