 |
k5157
初級會員
註冊日期: Nov 2012
來 自:
文章數量: 17 |
問題請教
你好:想請教一下公式的寫法,我主要先用KD找出相對的高低點位之後再畫水平線,如右邊無股價則向右延伸,如有股價則畫虛線,我有加入判斷式但好像無法成立,請問要如何修改或有其他的寫法,謝謝。
//KD
RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
K:=SMA(RSV,3,1);
D:=SMA(K,3,1);
//高低點
zs:=BARSCOUNT(CLOSE);
HH:=HHV(HIGH,BARSLAST(K<D));
LL:=LLV(LOW,BARSLAST(K>D));
Y1:=FILTERX(HIGH=HH,BARSLAST(K<D));
Y2:=FILTERX(LOW=LL,BARSLAST(K>D));
T1:=BACKSET(BARSTATUS=2,BARSLAST(Y2)+1); U1:=T1>REF(T1,1);
T2:=BACKSET(U1,REF(BARSLAST(Y2),1)+2); U2:=T2>REF(T2,1);
T3:=BACKSET(U2,REF(BARSLAST(Y2),1)+2); U3:=T3>REF(T3,1);
R1:=BACKSET(BARSTATUS=2,BARSLAST(Y1)+1); S1:=R1>REF(R1,1);
R2:=BACKSET(S1,REF(BARSLAST(Y1),1)+2); S2:=R2>REF(R2,1);
R3:=BACKSET(S2,REF(BARSLAST(Y1),1)+2); S3:=R3>REF(R3,1);
//畫線
A1:=REF(HIGH,BARSLAST(S1));
PP:=0;
IF(ANY(CROSS(HIGH,A1),zs),PP=1,pp=2);
IF pp=2 then
DRAWLINE(s1,A1,CROSS(HIGH,A1),A1,0),ColorYellow,LINEDOT;
Else Begin
DRAWLINE(s1,A1,ISLASTBAR,A1,1),ColorRed;
DRAWNUMBER(ISLASTBAR,A1,A1,2),ColorRed;
End
A2:=REF(HIGH,BARSLAST(S2));
xx:=0;
IF(ANY(CROSS(HIGH,A2),zs),xx=1,xx=2);
IF xx=2 then
DRAWLINE(s2,A2,CROSS(HIGH,A2),A2,0),Colorblack,LINEDOT;
Else Begin
DRAWLINE(s2,A2,ISLASTBAR,A2,1),ColorRed;
DRAWNUMBER(ISLASTBAR,A2,A2,2),ColorRed;
End
A3:=REF(HIGH,BARSLAST(S3));
xx:=0;
IF(ANY(CROSS(HIGH,A3),zs),xx=1,xx=2);
IF xx=2 then
DRAWLINE(s3,A3,CROSS(HIGH,A3),A3,0),ColorYellow,LINEDOT;
Else Begin
DRAWLINE(s3,A3,ISLASTBAR,A3,1),ColorRed;
DRAWNUMBER(ISLASTBAR,A3,A3,2),ColorRed;
End
|
最後由 k5157 在 2019-10-21 14:55 編輯 |
向版主報告此篇 |  |
|
2019-10-21 14:51 |
|
|
|  |
 |
cgjj
總版主

註冊日期: Oct 2003
來 自:
文章數量: 18166 |
回覆: 問題請教
引用: 最初由 k5157 發表
你好:想請教一下公式的寫法,我主要先用KD找出相對的高低點位之後再畫水平線,如右邊無股價則向右延伸,如有股價則畫虛線,我有加入判斷式但好像無法成立,請問要如何修改或有其他的寫法,謝謝。
//KD
RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
K:=SMA(RSV,3,1);
D:=SMA(K,3,1);
//高低點
zs:=BARSCOUNT(CLOSE);
HH:=HHV(HIGH,BARSLAST(K<D));
LL:=LLV(LOW,BARSLAST(K>D));
Y1:=FILTERX(HIGH=HH,BARSLAST(K<D));
Y2:=FILTERX(LOW=LL,BARSLAST(K>D));
T1:=BACKSET(BARSTATUS=2,BARSLAST(Y2)+1); U1:=T1>REF(T1,1);
T2:=BACKSET(U1,REF(BARSLAST(Y2),1)+2); U2:=T2>REF(T2,1);
T3:=BACKSET(U2,REF(BARSLAST(Y2),1)+2); U3:=T3>REF(T3,1);
R1:=BACKSET(BARSTATUS=2,BARSLAST(Y1)+1); S1:=R1>REF(R1,1);
R2:=BACKSET(S1,REF(BARSLAST(Y1),1)+2); S2:=R2>REF(R2,1);
R3:=BACKSET(S2,REF(BARSLAST(Y1),1)+2); S3:=R3>REF(R3,1);
//畫線
A1:=REF(HIGH,BARSLAST(S1));
PP:=0;
IF(ANY(CROSS(HIGH,A1),zs),PP=1,pp=2);
IF pp=2 then
DRAWLINE(s1,A1,CROSS(HIGH,A1),A1,0),ColorYellow,LINEDOT;
Else Begin
DRAWLINE(s1,A1,ISLASTBAR,A1,1),ColorRed;
DRAWNUMBER(ISLASTBAR,A1,A1,2),ColorRed;
End
A2:=REF(HIGH,BARSLAST(S2));
xx:=0;
IF(ANY(CROSS(HIGH,A2),zs),xx=1,xx=2);
IF xx=2 then
DRAWLINE(s2,A2,CROSS(HIGH,A2),A2,0),Colorblack,LINEDOT;
Else Begin
DRAWLINE(s2,A2,ISLASTBAR,A2,1),ColorRed;
DRAWNUMBER(ISLASTBAR,A2,A2,2),ColorRed;
End
A3:=REF(HIGH,BARSLAST(S3));
xx:=0;
IF(ANY(CROSS(HIGH,A3),zs),xx=1,xx=2);
IF xx=2 then
DRAWLINE(s3,A3,CROSS(HIGH,A3),A3,0),ColorYellow,LINEDOT;
Else Begin
DRAWLINE(s3,A3,ISLASTBAR,A3,1),ColorRed;
DRAWNUMBER(ISLASTBAR,A3,A3,2),ColorRed;
End
原碼: //KD
RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
K:=SMA(RSV,3,1);
D:=SMA(K,3,1);
//高低點
HH:=H; LL:=L;
UCK:=Cross(K,D); DCK:=Cross(D,K);
UED:=refx(DCK,1) or islastbar;
DED:=refx(UCK,1) or islastbar;
HSP:=HHVBARS(H,BARSLAST(UCK)+1);
LSP:=LLVBARS(L,BARSLAST(DCK)+1);
HHP:=SETVAL(UED,0,-HSP,Barpos-HSP)=Barpos or barpos=0; //高點
LLP:=SETVAL(DED,0,-LSP,Barpos-LSP)=Barpos or barpos=0; //低點
//畫高點線
ZeroAry:=C*0; MaxN:=3; CountN:=0;
DWHP:=ZeroAry; DWLN:=ZeroAry;
for i=datacount downto 1 do begin
if HHP[i]=1 then begin
DWHP[i]:=1; DWLN[i]:=0;
for j=i+1 to datacount do begin
if HH[j]>=HH[i] and LL[j]<=HH[i] then begin
DWLN[i]:=j-i; break;
end;
end;
CountN:=CountN+1;
if CountN=MaxN then break;
end;
end;
DRAWSL(DWHP and DWLN=0,HH,0,DWLN,0) pxdn2 ColorFF00FF;
DRAWSL(DWHP and DWLN>0,HH,0,DWLN,0) pxdn2 linedot ColorFF00FF;
SP1:=sumbars(DWHP,1)-1;
DRAWNUMBER(ref(DWLN,SP1)=0 and islastbar,ref(HH,SP1),ref(HH,SP1),2) shift1 ColorFF00FF;
SP2:=sumbars(DWHP,2)-1;
DRAWNUMBER(ref(DWLN,SP2)=0 and islastbar,ref(HH,SP2),ref(HH,SP2),2) shift1 ColorFF00FF;
SP3:=sumbars(DWHP,3)-1;
DRAWNUMBER(ref(DWLN,SP3)=0 and islastbar,ref(HH,SP3),ref(HH,SP3),2) shift1 ColorFF00FF;
|
|
向版主報告此篇 |  |
|
2019-10-21 16:19 |
|
|
|  |
 |
k5157
初級會員
註冊日期: Nov 2012
來 自:
文章數量: 17 |
請問版主,是否可以把低點也加入這樣就完美了。真的很感謝!!
|
|
向版主報告此篇 |  |
|
2019-10-21 17:09 |
|
|
|  |
 |
cgjj
總版主

註冊日期: Oct 2003
來 自:
文章數量: 18166 |
引用: 最初由 k5157 發表
請問版主,是否可以把低點也加入這樣就完美了。真的很感謝!!
原碼: //KD
RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
K:=SMA(RSV,3,1);
D:=SMA(K,3,1);
//高低點
HH:=H; LL:=L;
UCK:=Cross(K,D); DCK:=Cross(D,K);
UED:=refx(DCK,1) or islastbar;
DED:=refx(UCK,1) or islastbar;
HSP:=HHVBARS(H,BARSLAST(UCK)+1);
LSP:=LLVBARS(L,BARSLAST(DCK)+1);
HHP:=SETVAL(UED,0,-HSP,Barpos-HSP)=Barpos or barpos=0; //高點
LLP:=SETVAL(DED,0,-LSP,Barpos-LSP)=Barpos or barpos=0; //低點
//畫線
ZeroAry:=C*0; MaxN:=3; CountH:=0; CountL:=0;
DWHP:=ZeroAry; DWLP:=ZeroAry; DWLN:=ZeroAry;
for i=datacount downto 1 do begin
if HHP[i]=1 then begin
DWHP[i]:=1; DWLN[i]:=0;
for j=i+1 to datacount do begin
if HH[j]>=HH[i] and LL[j]<=HH[i] then begin
DWLN[i]:=j-i; break;
end;
end;
CountH:=CountH+1;
if CountH=MaxN then break;
end;
end;
DRAWSL(DWHP and DWLN=0,HH,0,DWLN,0) pxdn2 ColorFF00FF;
DRAWSL(DWHP and DWLN>0,HH,0,DWLN,0) pxdn2 linedot ColorFF00FF;
SP1:=sumbars(DWHP,1)-1;
DRAWNUMBER(ref(DWLN,SP1)=0 and islastbar,ref(HH,SP1),ref(HH,SP1),2) shift1 ColorFF00FF;
SP2:=sumbars(DWHP,2)-1;
DRAWNUMBER(ref(DWLN,SP2)=0 and islastbar,ref(HH,SP2),ref(HH,SP2),2) shift1 ColorFF00FF;
SP3:=sumbars(DWHP,3)-1;
DRAWNUMBER(ref(DWLN,SP3)=0 and islastbar,ref(HH,SP3),ref(HH,SP3),2) shift1 ColorFF00FF;
for i=datacount downto 1 do begin
if LLP[i]=1 then begin
DWLP[i]:=1; DWLN[i]:=0;
for j=i+1 to datacount do begin
if LL[j]>=LL[i] and LL[j]<=LL[i] then begin
DWLN[i]:=j-i; break;
end;
end;
CountL:=CountL+1;
if CountL=MaxN then break;
end;
end;
DRAWSL(DWLP and DWLN=0,LL,0,DWLN,0) pxdn2 Color00FF00;
DRAWSL(DWLP and DWLN>0,LL,0,DWLN,0) pxdn2 linedot Color00FF00;
SP1:=sumbars(DWLP,1)-1;
DRAWNUMBER(ref(DWLN,SP1)=0 and islastbar,ref(LL,SP1),ref(LL,SP1),2) shift1 Color00FF00;
SP2:=sumbars(DWLP,2)-1;
DRAWNUMBER(ref(DWLN,SP2)=0 and islastbar,ref(LL,SP2),ref(LL,SP2),2) shift1 Color00FF00;
SP3:=sumbars(DWLP,3)-1;
DRAWNUMBER(ref(DWLN,SP3)=0 and islastbar,ref(LL,SP3),ref(LL,SP3),2) shift1 Color00FF00;
|
|
向版主報告此篇 |  |
|
2019-10-21 17:48 |
|
|
|  |
 |
k5157
初級會員
註冊日期: Nov 2012
來 自:
文章數量: 17 |
使用奇狐軟體是非常幸運的是,再次感謝版主!!
感謝你的幫忙!!
|
|
向版主報告此篇 |  |
|
2019-10-21 18:47 |
|
|
|  |
 |
k5157
初級會員
註冊日期: Nov 2012
來 自:
文章數量: 17 |
版主不好意思,低點的顯示有點問題,前低被碰到應該變虛線才對,可是目前是全部的低點都出現,很抱歉這麼麻煩你,謝謝!!
|
|
向版主報告此篇 |  |
|
2019-10-21 19:04 |
|
|
|  |
本站所有內容未經作者授權禁止轉貼節錄, 發表言論僅供參考勿作為投資決策依據。瀏覽本站請使用 IE 5.5 以上版本, 最佳瀏覽解析度 1024 x 768 全彩。
|
Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.
簡愛洋行 製作 Copyright 2003-. All Rights Reserved. 聯絡我們
|