奇狐社區論壇 總頁數 (3): « 1 [2] 3 »
在這個頁面顯示本主題全部的 31 個文章

奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- 問題交流 (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=28)
-- 問題請教 (http://www.chiefox.com.tw/bbs/showthread.php?threadid=19381)


由 chungdune 在 2015-08-06 14:32 發表:

回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 問題請教

引用:
最初由 cgjj 發表
KD 源碼請自行帶入於前

原碼:
DESP:=barslast(date<>ref(date,1)); KD生叉:=cross(K,D); FKD生叉:=KD生叉 and sum(KD生叉,DESP+1)=1; DRAWTEXT(refx(FKD生叉,1),C,'KD生叉') ALIGN2 pxup9; VERTLINE(FKD生叉) linedot; VLC:=C<ref(C,1) and C<refx(C,1) or barpos=0; DWP:=C*0; DWL:=DWP; CC:=C; for i=lbound(FKD生叉) to datacount do begin if FKD生叉[i] then begin for j=i-1 downto 1 do if VLC[j] then break; if j=0 then break; DWP[j]:=1; for k=j+1 to datacount do begin if CC[k]<CC[j] then break; end; DWL[j]:=j-K; end; end; DRAWSL(DWP,C,0,DWL,0) pxdn2 linedot;




又有新問題要麻煩版主,請問版主上面這個公式的條件2:

2.在今日第一個KD生叉時,往前尋找最近一個收盤價的轉折低點(定義:收盤價呈現高-低-高),且此轉折低點要低於KD生叉時之收盤價,並且在此轉折低點劃線且向右延伸,直到被某一收盤價跌破

若是要加入一個條件,變成:

2.在今日第一個KD生叉時,往前尋找最近一個收盤價的轉折低點(定義:收盤價呈現高-低-高),且此轉折低點要低於KD生叉時之收盤價,「且必須是今日第一個KD生叉條件成立時,開盤至今之最高收盤價往左看的轉折低,且此轉折低目前尚未被某一收盤價跌破」,並且在此轉折低點劃線且向右延伸,直到被某一收盤價跌破

請問該如何處理?


由 cgjj 在 2015-08-06 15:44 發表:

回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 問題請教

引用:
最初由 chungdune 發表
又有新問題要麻煩版主,請問版主上面這個公式的條件2:

2.在今日第一個KD生叉時,往前尋找最近一個收盤價的轉折低點(定義:收盤價呈現高-低-高),且此轉折低點要低於KD生叉時之收盤價,並且在此轉折低點劃線且向右延伸,直到被某一收盤價跌破

若是要加入一個條件,變成:

2.在今日第一個KD生叉時,往前尋找最近一個收盤價的轉折低點(定義:收盤價呈現高-低-高),且此轉折低點要低於KD生叉時之收盤價,「且必須是今日第一個KD生叉條件成立時,開盤至今之最高收盤價往左看的轉折低,且此轉折低目前尚未被某一收盤價跌破」,並且在此轉折低點劃線且向右延伸,直到被某一收盤價跌破

請問該如何處理?



看不懂您意思,建議用圖解說會清楚些


由 chungdune 在 2015-08-06 16:42 發表:

回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 問題請教

引用:
最初由 cgjj 發表
看不懂您意思,建議用圖解說會清楚些


如果今日第一個KD生叉時之收盤價又同時為目前5MIN最高收盤價時,往前尋找最近一個收盤價的轉折低點(定義:收盤價呈現高-低-高),且此轉折低點要低於KD生叉時之收盤價。
如果今日第一個KD生叉時之收盤價<目前5MIN最高收盤價時則按下圖處理。


由 cgjj 在 2015-08-07 00:14 發表:

回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 問題請教

引用:
最初由 chungdune 發表
如果今日第一個KD生叉時之收盤價又同時為目前5MIN最高收盤價時,往前尋找最近一個收盤價的轉折低點(定義:收盤價呈現高-低-高),且此轉折低點要低於KD生叉時之收盤價。
如果今日第一個KD生叉時之收盤價<目前5MIN最高收盤價時則按下圖處理。




Q1:
若KD生叉收盤價<>目前最高收盤價
則兩個紅圈圈範圍內的轉折低,都不去取用對吧?

Q2:
若今日第一個KD生叉成立之處, 其前面沒有足夠的K棒做計算
或前面無符合的轉折低,則該日不畫線嗎?


由 chungdune 在 2015-08-07 10:28 發表:

回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 問題請教

引用:
最初由 cgjj 發表
Q1:
若KD生叉收盤價<>目前最高收盤價
則兩個紅圈圈範圍內的轉折低,都不去取用對吧?

Q2:
若今日第一個KD生叉成立之處, 其前面沒有足夠的K棒做計算
或前面無符合的轉折低,則該日不畫線嗎?




A1:
應該是說:
1.若KD生叉收盤價>=目前最高收盤價,則由KD生叉收盤價往前尋找最近一個收盤價的轉折低點(定義:收盤價呈現高-低-高),且此轉折低點要低於KD生叉時之收盤價。
2.若KD生叉收盤價<目前最高收盤價,則高於「轉折低3」(定義:KD生叉收盤價與目前最高收盤價兩點所夾之最低收盤價)的轉折低不取,因此不取「轉折低2」,當然也不取「轉折低3」,只取「轉折低1」。

A2:
就如同之前寫的程式一樣,往前面尋找,因此有可能轉折低在昨日。


由 cgjj 在 2015-08-07 15:59 發表:

回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 問題請教

引用:
最初由 chungdune 發表
A1:
應該是說:
1.若KD生叉收盤價>=目前最高收盤價,則由KD生叉收盤價往前尋找最近一個收盤價的轉折低點(定義:收盤價呈現高-低-高),且此轉折低點要低於KD生叉時之收盤價。
2.若KD生叉收盤價<目前最高收盤價,則高於「轉折低3」(定義:KD生叉收盤價與目前最高收盤價兩點所夾之最低收盤價)的轉折低不取,因此不取「轉折低2」,當然也不取「轉折低3」,只取「轉折低1」。

A2:
就如同之前寫的程式一樣,往前面尋找,因此有可能轉折低在昨日。



原碼:
DESP:=barslast(date<>ref(date,1)); KD生叉:=cross(K,D); FKD生叉:=KD生叉 and sum(KD生叉,DESP+1)=1; DRAWTEXT(refx(FKD生叉,1),C,'KD生叉') ALIGN2 pxup9; VERTLINE(FKD生叉) linedot; VLC:=C<ref(C,1) and C<refx(C,1) or barpos=0; DWP:=C*0; DWL:=DWP; CC:=C; HHC:=HHV(C,DESP+1); for i=lbound(FKD生叉) to datacount do begin if FKD生叉[i] then begin if CC[i]>=HHC[i] then begin for j=i-1 downto 1 do if VLC[j]<CC[i] then break; if j=0 then break; end else begin MinBC:=9999999; for j=i-1 downto i-DESP[i] do begin if CC[j]<MinBC then MinBC:=CC[j]; if CC[j]=HHC[i] then break; end; if MinBC=9999999 then break; for j=j-1 downto 1 do if VLC[j] and CC[j]<MinBC then break; end; DWP[j]:=1; for k=j+1 to datacount do begin if CC[k]<CC[j] then break; end; DWL[j]:=j-K; end; end; DRAWSL(DWP,C,0,DWL,0) pxdn2 linedot;


由 chungdune 在 2015-08-07 19:49 發表:

回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 問題

引用:
最初由 cgjj 發表
原碼:
DESP:=barslast(date<>ref(date,1)); KD生叉:=cross(K,D); FKD生叉:=KD生叉 and sum(KD生叉,DESP+1)=1; DRAWTEXT(refx(FKD生叉,1),C,'KD生叉') ALIGN2 pxup9; VERTLINE(FKD生叉) linedot; VLC:=C<ref(C,1) and C<refx(C,1) or barpos=0; DWP:=C*0; DWL:=DWP; CC:=C; HHC:=HHV(C,DESP+1); for i=lbound(FKD生叉) to datacount do begin if FKD生叉[i] then begin if CC[i]>=HHC[i] then begin for j=i-1 downto 1 do if VLC[j]<CC[i] then break; if j=0 then break; end else begin MinBC:=9999999; for j=i-1 downto i-DESP[i] do begin if CC[j]<MinBC then MinBC:=CC[j]; if CC[j]=HHC[i] then break; end; if MinBC=9999999 then break; for j=j-1 downto 1 do if VLC[j] and CC[j]<MinBC then break; end; DWP[j]:=1; for k=j+1 to datacount do begin if CC[k]<CC[j] then break; end; DWL[j]:=j-K; end; end; DRAWSL(DWP,C,0,DWL,0) pxdn2 linedot;



目前看到一些在非轉折低劃線的日期,時間如下:(加權5MIN)

08/07 09:35
08/04 09:15
07/24 09:15
07/06 09:25
07/03 09:20
07/01 10:30
06/29 13:30
06/26 09:10
06/09 09:10
...

其他還有,先列舉以上時間,請版主協助


由 cgjj 在 2015-08-09 20:22 發表:

回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆

引用:
最初由 chungdune 發表
目前看到一些在非轉折低劃線的日期,時間如下:(加權5MIN)

08/07 09:35
08/04 09:15
07/24 09:15
07/06 09:25
07/03 09:20
07/01 10:30
06/29 13:30
06/26 09:10
06/09 09:10
...

其他還有,先列舉以上時間,請版主協助



請將此段
for j=i-1 downto 1 do if VLC[j]<CC[i] then break;

修正為
for j=i-1 downto 1 do if VLC[j] and CC[j]<CC[i] then break;


由 chungdune 在 2015-08-10 08:17 發表:

回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆

引用:
最初由 cgjj 發表
請將此段
for j=i-1 downto 1 do if VLC[j]<CC[i] then break;

修正為
for j=i-1 downto 1 do if VLC[j] and CC[j]<CC[i] then break;



報告版主,狀況一樣沒變,請再協助,謝謝


由 cgjj 在 2015-08-10 09:41 發表:

回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆

引用:
最初由 chungdune 發表
報告版主,狀況一樣沒變,請再協助,謝謝


狀況不可能沒變
請確認該行是否真的替換成功


由 chungdune 在 2015-08-10 18:42 發表:

回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆

引用:
最初由 cgjj 發表
狀況不可能沒變
請確認該行是否真的替換成功




原來是我眼花,少改一行,感謝版主

另外還有違反條件「2.若KD生叉收盤價<目前最高收盤價,則高於「轉折低3」(定義:KD生叉收盤價與目前最高收盤價兩點所夾之最低收盤價)的轉折低不取,因此不取「轉折低2」,當然也不取「轉折低3」,只取「轉折低1」。」,理論上不該出現的線(加權5min),請版主協助

08/10 09:10
08/06 10:00
08/05 10:00
08/03 09:40
07/31 09:50


由 cgjj 在 2015-08-11 09:52 發表:

回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆

引用:
最初由 chungdune 發表
原來是我眼花,少改一行,感謝版主

另外還有違反條件「2.若KD生叉收盤價<目前最高收盤價,則高於「轉折低3」(定義:KD生叉收盤價與目前最高收盤價兩點所夾之最低收盤價)的轉折低不取,因此不取「轉折低2」,當然也不取「轉折低3」,只取「轉折低1」。」,理論上不該出現的線(加權5min),請版主協助

08/10 09:10
08/06 10:00
08/05 10:00
08/03 09:40
07/31 09:50



少改一行??
僅有一行需要被修改,怎會有 "少改一行" 的狀況呢?
您列的這幾個時間,並沒有線是從這幾個時間當起點畫的唷

按前面我所敘述的,改完的程式碼應該是這樣:
原碼:
DESP:=barslast(date<>ref(date,1)); KD生叉:=cross(K,D); FKD生叉:=KD生叉 and sum(KD生叉,DESP+1)=1; DRAWTEXT(refx(FKD生叉,1),C,'KD生叉') ALIGN2 pxup9; VERTLINE(FKD生叉) linedot; VLC:=C<ref(C,1) and C<refx(C,1) or barpos=0; DWP:=C*0; DWL:=DWP; CC:=C; HHC:=HHV(C,DESP+1); for i=lbound(FKD生叉) to datacount do begin if FKD生叉[i] then begin if CC[i]>=HHC[i] then begin for j=i-1 downto 1 do if VLC[j] and CC[j]<CC[i] then break; if j=0 then break; end else begin MinBC:=9999999; for j=i-1 downto i-DESP[i] do begin if CC[j]<MinBC then MinBC:=CC[j]; if CC[j]=HHC[i] then break; end; if MinBC=9999999 then break; for j=j-1 downto 1 do if VLC[j] and CC[j]<MinBC then break; end; DWP[j]:=1; for k=j+1 to datacount do begin if CC[k]<CC[j] then break; end; DWL[j]:=j-K; end; end; DRAWSL(DWP,C,0,DWL,0) pxdn2 linedot;


由 chungdune 在 2015-08-11 12:17 發表:

回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆

引用:
最初由 cgjj 發表
少改一行??
僅有一行需要被修改,怎會有 "少改一行" 的狀況呢?
您列的這幾個時間,並沒有線是從這幾個時間當起點畫的唷

按前面我所敘述的,改完的程式碼應該是這樣:
原碼:
DESP:=barslast(date<>ref(date,1)); KD生叉:=cross(K,D); FKD生叉:=KD生叉 and sum(KD生叉,DESP+1)=1; DRAWTEXT(refx(FKD生叉,1),C,'KD生叉') ALIGN2 pxup9; VERTLINE(FKD生叉) linedot; VLC:=C<ref(C,1) and C<refx(C,1) or barpos=0; DWP:=C*0; DWL:=DWP; CC:=C; HHC:=HHV(C,DESP+1); for i=lbound(FKD生叉) to datacount do begin if FKD生叉[i] then begin if CC[i]>=HHC[i] then begin for j=i-1 downto 1 do if VLC[j] and CC[j]<CC[i] then break; if j=0 then break; end else begin MinBC:=9999999; for j=i-1 downto i-DESP[i] do begin if CC[j]<MinBC then MinBC:=CC[j]; if CC[j]=HHC[i] then break; end; if MinBC=9999999 then break; for j=j-1 downto 1 do if VLC[j] and CC[j]<MinBC then break; end; DWP[j]:=1; for k=j+1 to datacount do begin if CC[k]<CC[j] then break; end; DWL[j]:=j-K; end; end; DRAWSL(DWP,C,0,DWL,0) pxdn2 linedot;





感謝版主提示,已修正

另外我試著將程式修改為:KD死叉時找轉折高劃線,發現有些時間並非從當時5MIN最低點找轉折高,請問有哪些地方沒改好?
06/25 09:35
06/23 09:55
06/22 09:40


收盤:close,linethick0;
DESP:=barslast(date<>ref(date,1)),linethick0;
vertline(refx(date<>ref(date,1),1)),colorpurple,linethick3;
drawnumber(islastbar,C,C,2),shift1;
partline(C>ref(C,1),C),colorred,linethick3;
partline(C<=ref(C,1),C),colorBLUE,linethick3;

RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
K:=SMA(RSV,3,1);
D:=SMA(K,3,1);

KD死叉:=cross(D,K);
FKD死叉:=KD死叉 and sum(KD死叉,DESP+1)=1;
VERTLINE(FKD死叉) linedot;
VLC:=C>ref(C,1) and C>refx(C,1) or barpos=0;
DWP:=C*0; DWL:=DWP; CC:=C; LLC:=LLV(C,DESP+1);
for i=lbound(FKD死叉) to datacount do begin
if FKD死叉[i] then begin
if CC[i]<=LLC[i] then begin
for j=i-1 downto 1 do if VLC[j] and CC[j]>CC[i] then break;
if j=0 then break;
end else begin
MinBC:=9999999;
for j=i-1 downto i-DESP[i] do begin
if CC[j]<MinBC then MinBC:=CC[j];
if CC[j]=LLC[i] then break;
end;
if MinBC=9999999 then break;
for j=i-1 downto 1 do if VLC[j] and CC[j]>MinBC then break;
end;
DWP[j]:=1;
for k=j+1 to datacount do begin
if CC[k]>CC[j] then break;
end;
DWL[j]:=j-K;
end;
end;
DRAWSL(DWP,C,0,DWL,0),linethick2;


由 cgjj 在 2015-08-11 14:55 發表:

回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆

引用:
最初由 chungdune 發表
感謝版主提示,已修正

另外我試著將程式修改為:KD死叉時找轉折高劃線,發現有些時間並非從當時5MIN最低點找轉折高,請問有哪些地方沒改好?
06/25 09:35
06/23 09:55
06/22 09:40


收盤:close,linethick0;
DESP:=barslast(date<>ref(date,1)),linethick0;
vertline(refx(date<>ref(date,1),1)),colorpurple,linethick3;
drawnumber(islastbar,C,C,2),shift1;
partline(C>ref(C,1),C),colorred,linethick3;
partline(C<=ref(C,1),C),colorBLUE,linethick3;

RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
K:=SMA(RSV,3,1);
D:=SMA(K,3,1);

KD死叉:=cross(D,K);
FKD死叉:=KD死叉 and sum(KD死叉,DESP+1)=1;
VERTLINE(FKD死叉) linedot;
VLC:=C>ref(C,1) and C>refx(C,1) or barpos=0;
DWP:=C*0; DWL:=DWP; CC:=C; LLC:=LLV(C,DESP+1);
for i=lbound(FKD死叉) to datacount do begin
if FKD死叉[i] then begin
if CC[i]<=LLC[i] then begin
for j=i-1 downto 1 do if VLC[j] and CC[j]>CC[i] then break;
if j=0 then break;
end else begin
MinBC:=9999999;
for j=i-1 downto i-DESP[i] do begin
if CC[j]<MinBC then MinBC:=CC[j];
if CC[j]=LLC[i] then break;
end;
if MinBC=9999999 then break;
for j=i-1 downto 1 do if VLC[j] and CC[j]>MinBC then break;
end;
DWP[j]:=1;
for k=j+1 to datacount do begin
if CC[k]>CC[j] then break;
end;
DWL[j]:=j-K;
end;
end;
DRAWSL(DWP,C,0,DWL,0),linethick2;





MinBC:=9999999;
for j=i-1 downto i-DESP[i] do begin
if CC[j]<MinBC then MinBC:=CC[j];
if CC[j]=LLC[i] then break;
end;
if MinBC=9999999 then break;
for j=j-1 downto 1 do if VLC[j] and CC[j]<MinBC then break;

改為這樣試試
MaxBC:=0;
for j=i-1 downto i-DESP[i] do begin
if CC[j]>MaxBC then MaxBC:=CC[j];
if CC[j]=LLC[i] then break;
end;
if MaxBC=0 then break;
for j=j-1 downto 1 do if VLC[j] and CC[j]<MaxBC then break;


由 chungdune 在 2015-08-13 16:13 發表:

回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆

問題解決了,感謝版主熱心協助


全部時間均為台灣時間, 現在時間為07:27 總頁數 (3): « 1 [2] 3 »
在這個頁面顯示本主題全部的 31 個文章


Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.

簡愛洋行 製作 Copyright 2003-. All Rights Reserved.