大智慧反向推算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
-
文章来源:股海网作者:股海网发布时间:2012-04-10浏览次数:
大智慧反向推算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;