%> 反向推算KDJ推演全程(附公式源码)_一百万教程网
反向推算KDJ推演全程(附公式源码) 5476



检索全网,尚未有反推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;


 



 



 

{股票教程网-http://ybwsoft.net承接通达信软件和公式破解,普通加密破解,完全加密破解,导入密码破解,时间限制破解,公式编写,可按您的要求写公式指标,价格按难度不同报价,有需要可以找我们}