kdj

  • 在这个公式里加入时间限制

    编写条件:编写方法: 

    公式技巧 2023年9月21日
  • 大智慧中KD在0-30数值内,连续两次金叉,取第二次金叉为给出信号

    编写条件:编写方法:网友求助:大智慧中kd在0-30数值内,连续两次金叉,取第二次金叉为给出信号

    公式技巧 2023年9月21日
  • 股价在96到100(是数值非价格)范围内连续两次下破主力线

    编写条件:编写方法:网友求助:股价在96到100(是数值非价格)范围内连续两次下破主力线,且第二个股价线高点低于第一个股价线高点,给出个信号。
    如何编写?
    源码如下:
    股价:3*SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100,5,1)-2*SMA(SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100,5,1),3,1),colorwhite;
    底区:10.5,COLORYELLOW;
    RSV30:=(CLOSE-LLV(LOW,30))/(HHV(HIGH,30)-LLV(LOW,30))*100;
    K30:=SMA(RSV30,5,1);
    D30:=SMA(K30,3,1);
    J30:=3*K30-2*D30;
    主力线:EMA(J30,2),COLORRED,LINETHICK1;
    顶区:90,COLOR00FF00;
    高风险火箭发射区:102,colorCCCC00;
    绝对卖出:IF(crOSS(主力线,股价)and BETWEEN(股价,96,100),100,0),linethick2,color00ff00;

    2023年9月21日
  • 日KDJ大于50的选股公式

    编写条件:编写方法:日kdj大于50的选股公式
     "kdJ.K#DAY">=50;

    公式技巧 2023年9月20日
  • 反向推算KDJ推演全程(附公式源码)


    检索全网,尚未有反推kdj方案,双节之际,公布【 反向推算kdJ---推演全程 (附公式源码)】.
    由于价量乃为指标之母,亦即先有股价、成交量,始有指标的产生,亦称为“因果关系”,
    反向推算的意义在于“倒果为因”,将指标的预估值,反推回k线做预先预估。如此将可以
    于明日便于了解指标进入”高档区”、”多空分界”、”低档区”的预估,同时亦可采用
    这种观念,研判多头行情或空头行情之支撑区或压力区。


    <<如何实现KDJ的J值=50时候对应价格的输出?>>
    一般情况下指标显示的都是o、p、h、l几个已经固定的价格所计算出来的对应的值,我想知道
    当盘中kdj的j值为确定值(比如50)时候对应的价格,怎么把它输出呢?


    所涉问题是反向推算,即以KDJ中的J为已知数,从而求出公式中的C的值.


    n:=9;m1:=3;m2:=3;
    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;

    以上是KDJ技术指标的原码及默认参数,关闭KDJ三线的输出.


    {=========去参数推演全程==========================}
    我们知道
    SMA(X,N,M),求X的N日移动平均,M为权重。
    算法: 若Y=SMA(X,N,M)
    则 Y=[M*X+(N-M)*Y')]/N,其中Y'表示上一周期Y值,N必须大于M。

    为了方便推演,把参数直接用m1=3;m2=3数值计算.根据以上数学式,
    则:k:=SMA(RSV,M1,1)即
    k:=SMA(rsv,3,1);
    可转化成
    k1:1/3*rsv+ref(k,1)/3*2;

    同样道理
    D:=SMA(k,3,1);
    可转化成
    d1:1/3*k+ref(d,1)/3*2;

    J:=3*K-2*D;
    可写成
    Jj:3*K1-2*D1;

    以上的k1,d1,jj等同于原式中的k,d,j值.
    把k1,d1代入jj项(为了叙述方便,jj用小序号标注,其值相等)
    则jj项可转化成

    Jd0:=3*(1/3*rsv+ref(k,1)/3*2)-2*(1/3*k+ref(d,1)/3*2);
    Jd1:=3*(1/3*rsv+ref(k,1)/3*2)-2/3*k-4/3*ref(d,1);             (去括号)
    jd2:=rsv+2*ref(k,1)-2/3*k-4/3*ref(d,1);                       (去括号,移项)
    jd3:=rsv+2*ref(k,1)-2/3*(1/3*rsv+ref(k,1)/3*2)-4/3*ref(d,1);  (把K代入上式)
    jd4:=rsv+2*ref(k,1)-2/3*(1/3*rsv+2/3*ref(k,1))-4/3*ref(d,1);  (化简)
    jd5:=rsv+2*ref(k,1)-2/9*rsv-4/9*ref(k,1)-4/3*ref(d,1);        (去括号)
    jd6:=rsv-2/9*rsv+2*ref(k,1)-4/9*ref(k,1)-4/3*ref(d,1);        (移项)
    jd7:=7/9*rsv+14/9*ref(k,1)-4/3*ref(d,1);                      (合并同类项)

    至此完成含未知数的rsv算术化简,jd7数值依然等于原公式中的j值.

    令j11=jd7;下面把上式置换位置,

    7/9*rsv:=j11-14/9*ref(k,1)+4/3*ref(d,1);                      (置换)
    rsv:=9/7*j11-2*ref(k,1)+12/7*ref(d,1);                        (化简)


    rsv:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))
    代入上式并化简后得
    (CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N)):=(9/7*j11-2*ref(k,1)+12/7*ref(d,1))/100;

    化简后得
    CLOSE-LLV(LOW,N):=((9/7*j11-2*ref(k,1)+12/7*ref(d,1))/100)*(HHV(HIGH,N)-LLV(LOW,N));

    令xxx等于所求的CLOSE,上式演化成
    xxx:=((9/7*j11-2*ref(k,1)+12/7*ref(d,1))/100)*(HHV(HIGH,N)-LLV(LOW,N))+LLV(LOW,N);

    至此所求的CLOSE即xxx己由j值来控制.大功告成!推演完毕!

    ================================================================

    {========反推公式源码============}
    {----试验参数(j1)说明:-----}
    {j1=-50读入即时j值,反推值是即时c值;
    j1=-49读入昨日j值,可知j值拐头时的价格;
    j1输入自定义值时,计算J线到达该值的临界值}

    input:j1(-50,-50,120);
    n:=9;m1:=3;m2:=3;
    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;
    {-----线值------------}
    k1:1/3*rsv+ref(k,1)/3*2;
    d1:1/3*k+ref(d,1)/3*2;
    Jj:3*K1-2*D1;
    {-----显示-------------}
    j11:=j;j昨:=ref(j,1);jx:=if(j1=-50,j11,if(j1=-49,j昨,j1));
    xxx:((9/7*jx-2*ref(k,1)+12/7*ref(d,1))/100)*(HHV(HIGH,9)-LLV(LOW,9))+LLV(LOW,9),colorred;
    {DRAWTEXTREL(5 ,5 ,'设J='+NUMTOSTRN(jx,2)+' 所演股价: '+NUMTOSTRN(xxx ,2));}
    IF j1=-50 and barstatus=2 THEN BEGIN DRAWTEXTREL(2,5,'设J='+NUMTOSTRN(jx,2)+' 所演即时股价: '+NUMTOSTRN(xxx ,2)),colorc0c0c0;end;
    IF j1=-49 and barstatus=2 THEN BEGIN DRAWTEXTREL(2,5,'设J='+NUMTOSTRN(jx,2)+' J线拐头股价: '+NUMTOSTRN(xxx ,2)),colorff88ff;end;
    IF j1>-49 and barstatus=2 THEN BEGIN DRAWTEXTREL(2,5,'设J='+NUMTOSTRN(jx,2)+' J线达标临界股价: '+NUMTOSTRN(xxx ,2)),color00ff00;end;

    2023年9月20日
  • 通达信如何使用分时指标的教程

    找到通达信软件的安装位置,打开“T0002”文件夹,把里面“Zstzb=macd”这一句中的MacD修改为自己要用的指标名称就OK啦。

    2023年9月20日
  • KDJ和RSI的选股公式

    编写条件:编写方法:
    条件是:rsi(6.12.24)三条线都在35区间以上,而且kdj的J线在50区间以上。

    公式技巧 2023年9月20日
  • 通达信排序功能详细讲解

    通达信软件有强大的排序功能,能够随意添加排序项目及指标,并对排序周期没有限定,可以更加排序周期,对实盘操作有着十分重要的参考意见!!
    具体使用方法:
    进入主页面-->点"报价"-->点"历史行情报表"-->一般系统默认指标(如正在计算"kdj"中k、d、j数值)排序计算 -->在页面的上面"指标"用右键-->更换排序指标(出现所有指标公式)-->就任选其中一个指标做为排序指标-->OK!计算中-->点排序的项目可以数值从“大”至“小”或从“小”至“大”排序。
    在排序状态下,点下面的版块(例如分类/A股/中小/B股等,也可以定义地域/行业等),任何一版块,包括自定义版块,均可利用自定义及软件自带的指标排序!!

    公式教程 2023年9月19日
  • 通达信指标变色线形的应用

    通达信指标编辑之:变色线形的应用
    一,单线变双色
    VAR1:MA(C,30),COLORRED;
    上升:IF(VAR1>REF(VAR1,1),VAR1,DRAWNULL),COLORRED;
    下降:IF(VAR1<REF(VAR1,1),VAR1,DRAWNULL),COLORGREEN;

    公式教程 2023年9月19日
  • 主图叠加副图的方法解释

    首先我们理解模板的意思,不能理解透,那么就无从入手

    HH:=CONST(HHV(C,120))*1;{取现价的N日最大值}
    LL:=CONST(LLV(C,120))*1;{取现价的N日最小值,HH与LL是整个版面的最高低点,这个好理解吧}
    HL:=CONST(IF(CONST((HH+LL)/2)<CONST(C),LL-(HH-LL)*0.2,HH+(HH-LL)*0.2));
    {取叠加副图自动转换高低值,当现价小于中间值时以LL-(HH-LL)*0.2为副图自动转换高低值,反之以HH+(HH-LL)*0.2为副图自动转 换高低值,
    (HH-LL)*0.2就是最高低点的差值,也是所叠加副图的高低值 的限制,想要叠加副图大点,那么(HH-LL)*0.4甚至0.6.  CONST((HH+LL)/2)<CONST(C), 这句的意思是当现价小于版面最高低点的一半时就自动转换将所叠加副图放上入下的意思,是为了保证叠加副图不太影响版面}
    HH1:=IF(CONST((HH+LL)/2)>CONST(C),HH,HL);{当现价小于中间值时以最大值为最高点,反之以HL为最高 点}
    LL1:=IF(CONST((HH+LL)/2)<CONST(C),LL,HL);{当现价小于中间值时以最小值为最低点,反之以HL为最低 点}
    HLMAX:=MAX(HH1,LL1);{设定所要叠加副图比例的最大值}
    HLMIN:=MIN(HH1,LL1);{设定所以叠加副图比例的最小值}
    HLMN1:=(HLMAX+HLMIN)/2;{取设定所要叠加副图比例的最大最小值的中间值}
    HLMN2:=HLMAX-HLMIN;{取设定所要叠加副图比例的最大最小值的差值}
    HLMN3:=(副图比例最高值-副图比例最低值)/2;
    HLMN4:=副图比例最高值-副图比例最低值{如果副图是kdj来说,那么最高值就是100,最低点就是0,这个是有限制高低点副图叠加的最高低点 值};
    所叠加副图线:(副图线形-HLMN4)*HLMN2/HLMN3+HLMN1;{按比例叠加副图线的计算方式}
    ==========
    理解了以上的模板,那么叠加起来就轻松了
    1/先对所叠加的副图进行定义,以你想叠加的指标为例子

    RSV:=(CLOSE - LLV(LOW,18))/(HHV(HIGH,18) - LLV(LOW,18))*100;
    K:EMA(RSV,3);
    D:EMA(K,3);
    J:=(3*K-2*D);
    火山:IF(J<=0,20,0),LINETHICK0;
    STICKLINE(J<=0,90,100,8,0),COLORYELLOW;
    kdJ1:=REF(COUNT(J<REF(J,1),5)>=3,1) AND REF(J,1)<20;
    KDJ2:=J>REF(J,1);
    反转:IF(FILTER(KDJ1 AND KDJ2,3),50,0),COLORRED;
    VAR22:=REF(LOW,1);
    VAR33:=SMA(ABS(LOW-VAR22),3,1)/SMA(MAX(LOW-VAR22,0),3,1)*100;
    VAR44:=EMA(IF(CLOSE*1.3,VAR33*10,VAR33/10),3);
    VAR55:=LLV(LOW,13);
    VAR66:=HHV(VAR44,13);
    VAR77:=IF(MA(CLOSE,34),1,0);
    VAR888:=EMA(IF(LOW<=VAR55,(VAR44+VAR66*2)/2,0),3)/618*VAR77;
    VAR999:=IF(VAR888>100,100,VAR888);
    吸筹:VAR999,LINETHICK1,COLORCD7F32 ;
    STICKLINE(VAR999>-120,0,VAR999,2,10),COLORFF00FF;

    这个是你想叠加的副图

    那么我们就先定义,上面红色字体是要写输出条件,在主图是不能写的,主图只能写赋值,就是AA:=...........加等号的赋值,那么就先将副图指 标原码粘贴过来,然后将有等号的输出条件加上等号,将画柱子等输出条件删除。

    RSV:=(CLOSE - LLV(LOW,18))/(HHV(HIGH,18) - LLV(LOW,18))*100;
    K:=EMA(RSV,3);
    D:=EMA(K,3);
    J:=(3*K-2*D);
    KDJ1:=REF(COUNT(J<REF(J,1),5)>=3,1) AND REF(J,1)<20;
    KDJ2:=J>REF(J,1);
    反转:=IF(FILTER(KDJ1 AND KDJ2,3),50,0),COLORRED;
    VAR22:=REF(LOW,1);
    VAR33:=SMA(ABS(LOW-VAR22),3,1)/SMA(MAX(LOW-VAR22,0),3,1)*100;
    VAR44:=EMA(IF(CLOSE*1.3,VAR33*10,VAR33/10),3);
    VAR55:=LLV(LOW,13);
    VAR66:=HHV(VAR44,13);
    VAR77:=IF(MA(CLOSE,34),1,0);
    VAR888:=EMA(IF(LOW<=VAR55,(VAR44+VAR66*2)/2,0),3)/618*VAR77;
    VAR999:=IF(VAR888>100,100,VAR888);
    吸筹:=VAR999,LINETHICK1,COLORCD7F32 ;

    红色字体是原码中输出条件转换成赋值。

    2/将模板粘贴进来

    HH:=CONST(HHV(C,120))*1;{取现价的N日最大值}
    LL:=CONST(LLV(C,120))*1;{取现价的N日最小值}
    HL:=CONST(IF(CONST((HH+LL)/2)<CONST(C),LL-(HH-LL)*0.2,HH+(HH-LL)*0.2));
    {取叠加副图自动转换高低值,当现价小于中间值时以LL-(HH-LL)*0.2为副图自动转换高低值,反之以HH+(HH-LL)*0.2为副图自动转 换高低值}
    HH1:=IF(CONST((HH+LL)/2)>CONST(C),HH,HL);{当现价小于中间值时以最大值为最高点,反之以HL为最高 点}
    LL1:=IF(CONST((HH+LL)/2)<CONST(C),LL,HL);{当现价小于中间值时以最小值为最低点,反之以HL为最低 点}
    HLMAX:=MAX(HH1,LL1);{设定所要叠加副图比例的最大值}
    HLMIN:=MIN(HH1,LL1);{设定所以叠加副图比例的最小值}
    HLMN1:=(HLMAX+HLMIN)/2;{取设定所要叠加副图比例的最大最小值的中间值}
    HLMN2:=HLMAX-HLMIN;{取设定所要叠加副图比例的最大最小值的差值}
    HLMN3:=(副图比例最高值-副图比例最低值)/2;
    HLMN4:=副图比例最高值-副图比例最低值;
    所叠加副图线:(副图线形-HLMN4)*HLMN2/HLMN3+HLMN1;

    红字体部分就是你想要叠加的线,因为KDJ的最高是100最低是0的限制值
    那么

    HLMN3:=(100-0)/2;
    HLMN4:=100-0;

    接下来就可以写0、20、50、80、100、K/D/J/信号等在叠加副图输出了

    首先我们就先定义坐标

    所叠加副图线:(副图线形-HLMN3)*HLMN2/HLMN4+HLMN1;{按比例叠加副图线的计算 方式}
    那么0坐标就是
    0坐标:(0-HLMN3)*HLMN2/HLMN4+HLMN1;{按比例叠加副图线的计算方式}
    100坐标:(100-HLMN3)*HLMN2/HLMN4+HLMN1;{按比例叠加副图线的计算方 式}
    K叠加线::(K- HLMN3)*HLMN2/HLMN4+HLMN1;{按比例叠加副图线的计算方式}

    ............
    等等

    如    反转:IF(FILTER(KDJ1 AND KDJ2,3),50,0),COLORRED;
    这句怎么写

    反转:IF(FILTER(KDJ1 AND KDJ2,3),(50-HLMN3)*HLMN2/100+HLMN1,:(0-HLMN3)*HLMN2/100+HLMN1),COLORRED;

    红色字体就是将副图的50/0黑铁成叠加副图的50/0

    三、整体二部分加起来,形成一个完整的主图
    =====================================

    RSV:=(CLOSE - LLV(LOW,18))/(HHV(HIGH,18) - LLV(LOW,18))*100;
    K:=EMA(RSV,3);
    D:=EMA(K,3);
    J:=(3*K-2*D);
    KDJ1:=REF(COUNT(J<REF(J,1),5)>=3,1) AND REF(J,1)<20;
    KDJ2:=J>REF(J,1);
    反转:=IF(FILTER(KDJ1 AND KDJ2,3),50,0),COLORRED;
    VAR22:=REF(LOW,1);
    VAR33:=SMA(ABS(LOW-VAR22),3,1)/SMA(MAX(LOW-VAR22,0),3,1)*100;
    VAR44:=EMA(IF(CLOSE*1.3,VAR33*10,VAR33/10),3);
    VAR55:=LLV(LOW,13);
    VAR66:=HHV(VAR44,13);
    VAR77:=IF(MA(CLOSE,34),1,0);
    VAR888:=EMA(IF(LOW<=VAR55,(VAR44+VAR66*2)/2,0),3)/618*VAR77;
    VAR999:=IF(VAR888>100,100,VAR888);
    吸筹:=VAR999,LINETHICK1,COLORCD7F32 ;

    HH:=CONST(HHV(C,120))*1;{取现价的N日最大值}
    LL:=CONST(LLV(C,120))*1;{取现价的N日最小值}
    HL:=CONST(IF(CONST((HH+LL)/2)<CONST(C),LL-(HH-LL)*0.4,HH+(HH-LL)*0.4));
    {取叠加副图自动转换高低值,当现价小于中间值时以LL-(HH-LL)*0.2为副图自动转换高低值,反之以HH+(HH-LL)*0.2为副图自动转 换高低值}
    HH1:=IF(CONST((HH+LL)/2)>CONST(C),HH,HL);{当现价小于中间值时以最大值为最高点,反之以HL为最高 点}
    LL1:=IF(CONST((HH+LL)/2)<CONST(C),LL,HL);{当现价小于中间值时以最小值为最低点,反之以HL为最低 点}
    HLMAX:=MAX(HH1,LL1);{设定所要叠加副图比例的最大值}
    HLMIN:=MIN(HH1,LL1);{设定所以叠加副图比例的最小值}
    HLMN1:=(HLMAX+HLMIN)/2;{取设定所要叠加副图比例的最大最小值的中间值}
    HLMN2:=HLMAX-HLMIN;{取设定所要叠加副图比例的最大最小值的差值}
    HLMN3:=(100-0)/2;
    HLMN4:=100-0;

    (50-50)*HLMN2/100+HLMN1,COLOR555555;
    (20-50)*HLMN2/100+HLMN1,COLOR555555;
    (80-50)*HLMN2/100+HLMN1,COLOR555555;
    (100-50)*HLMN2/100+HLMN1,COLOR555555;
    {以上定义叠加副图坐标}
    STICKLINE(吸筹,(0-50)*HLMN2/100+HLMN1,
    (VAR999-50)*HLMN2/100+HLMN1,2,10),COLORFF00FF;
    STICKLINE(J<=0,(90-50)*HLMN2/100+HLMN1,
    (100-50)*HLMN2/100+HLMN1,4,0),COLORYELLOW;
    IF(反转=50,(50-50)*HLMN2/100+HLMN1,
    (0-50)*HLMN2/100+HLMN1),COLORRED;
    {以上标出信号}
    KZ:(K-50)*HLMN2/100+HLMN1,COLORFFFFFF;
    DZ:(D-50)*HLMN2/100+HLMN1,COLOR00FFFF;
    JZ:(J-50)*HLMN2/100+HLMN1,COLOR00FF00;
    {以上输出KDJ线}

    {如果想加上均线就再写啊}
    MA5:MA(C,5);
    MA10:MA(C,10);

    2023年9月19日