![]() |
在這個頁面顯示本主題全部的 14 個文章 |
奇狐社區論壇 (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=17184)
[求救]請問缺口上下緣被突破或跌破的公式寫法
請問缺口上下緣被突破或跌破的公式寫法
請問版主,請問缺口上下緣被突破或跌破的公式寫法,我有參考下篇文章:
http://www.chiefox.com.tw/bbs/showt...ight=%AF%CA%A4f
可是有些線會畫不出來,而且缺口線的上下緣被突破或跌破時,還是繼續往右畫線,請問正確的寫法為何?謝謝。
回覆: [求救]請問缺口上下緣被突破或跌破的公式寫法
引用:
最初由 chungdune 發表
請問缺口上下緣被突破或跌破的公式寫法
請問版主,請問缺口上下緣被突破或跌破的公式寫法,我有參考下篇文章:
http://www.chiefox.com.tw/bbs/showt...ight=%AF%CA%A4f
可是有些線會畫不出來,而且缺口線的上下緣被突破或跌破時,還是繼續往右畫線,請問正確的寫法為何?謝謝。
回覆: 回覆: [求救]請問缺口上下緣被突破或跌破的公式寫法
引用:
最初由 cgjj 發表
該篇文章
依據的是 "直至另一根K棒碰到該價位"
與您所想的需求應該是不一樣的
請先詳細定義 "缺口上下緣被突破或跌破" 之判斷規則
建議搭配圖形說明, 會比較清楚易懂
回覆: 回覆: 回覆: [求救]請問缺口上下緣被突破或跌破的公式寫法
引用:
最初由 chungdune 發表
1.我要的就是那個功能,只是該文章要的是「某個缺口的最低價向右畫一條線,直至他被回補」,而我要的是「某個缺口的最低價與最高價向右畫一條線,直至他被回補」。
2.根據該文章的公式修改結果,發現兩個問題:(請看附圖)
a.向下缺口(藍色線)的下緣與向上缺口(紅色線)的上緣無法畫出線條。
b.2012/10/11跌破2012/09/12的缺口,但是線條還是繼續往右畫。
不知為何圖老是貼不上,請連接以下網址,謝謝
http://www.freeimagehosting.net/ly1hh
引用:
最初由 chungdune 發表
不知為何圖老是貼不上,請連接以下網址,謝謝
http://www.freeimagehosting.net/ly1hh
原碼:
CK:=(L>ref(H,1))-(H<=ref(L,1));
MM:=(CK=1)*L+(CK=-1)*H;
HH:=H; LL:=L; PP:=C*0;
for i=lbound(CK) to datacount do begin
if CK[i]<>0 then begin
for j=i+1 to datacount do begin
if (CK[i]=1)*(LL[j]<=LL[i])+(CK[i]=-1)*(HH[j]>=HH[i]) then begin
PP[i]:=j-i; break;
end;
end;
end;
end;
DRAWSL(CK,MM,0,PP,3) pxdn2 linedot coloryellow;
引用:
最初由 cgjj 發表
圖的寬和高必需在999個像素之內
碰到K棒和被回補 兩者是不同的
該篇文章處理的結果, 與您的需求是相當不一樣的
看看以下處理結果是否為您要的:
原碼:
CK:=(L>ref(H,1))-(H<=ref(L,1));
MM:=(CK=1)*L+(CK=-1)*H;
HH:=H; LL:=L; PP:=C*0;
for i=lbound(CK) to datacount do begin
if CK[i]<>0 then begin
for j=i+1 to datacount do begin
if (CK[i]=1)*(LL[j]<=LL[i])+(CK[i]=-1)*(HH[j]>=HH[i]) then begin
PP[i]:=j-i; break;
end;
end;
end;
end;
DRAWSL(CK,MM,0,PP,3) pxdn2 linedot coloryellow;
引用:
最初由 chungdune 發表
報告版主:向下缺口的上緣與向上缺口的下緣無法畫出線條。
應該這麼說:完全缺口的上下緣都要劃線,上緣被碰到(包含跳空過或破)則上緣停止劃線,下緣被碰到(包含跳空過或破)則下緣停止劃線。
原碼:
CK:=(L>ref(H,1))-(H<=ref(L,1));
MM1:=(CK=1)*L+(CK=-1)*H;
RCK:=refx(CK,1) and ISLASTBAR=0;
MM2:=(RCK=1)*H+(RCK=-1)*L;
HH:=H; LL:=L; P1:=C*0; P2:=P1;
for i=lbound(CK) to datacount do begin
if CK[i]<>0 then begin
for j=i+1 to datacount do begin
if (CK[i]=1)*(LL[j]<=LL[i])+(CK[i]=-1)*(HH[j]>=HH[i]) then begin
P1[i]:=j-i; break;
end;
end;
k:=i-1;
for j=i+1 to datacount do begin
if (CK[i]=1)*(LL[j]<=HH[k])+(CK[i]=-1)*(HH[j]>=LL[k]) then begin
P2[k]:=j-k; break;
end;
end;
end;
end;
DRAWSL(CK,MM1,0,P1,3) pxdn2 linedot coloryellow;
DRAWSL(RCK,MM2,0,P2,3) pxdn2 linedot colormagenta;
引用:
最初由 cgjj 發表
注意: 此公式計算負載較重, 請注意使用
原碼:
CK:=(L>ref(H,1))-(H<=ref(L,1));
MM1:=(CK=1)*L+(CK=-1)*H;
RCK:=refx(CK,1) and ISLASTBAR=0;
MM2:=(RCK=1)*H+(RCK=-1)*L;
HH:=H; LL:=L; P1:=C*0; P2:=P1;
for i=lbound(CK) to datacount do begin
if CK[i]<>0 then begin
for j=i+1 to datacount do begin
if (CK[i]=1)*(LL[j]<=LL[i])+(CK[i]=-1)*(HH[j]>=HH[i]) then begin
P1[i]:=j-i; break;
end;
end;
k:=i-1;
for j=i+1 to datacount do begin
if (CK[i]=1)*(LL[j]<=HH[k])+(CK[i]=-1)*(HH[j]>=LL[k]) then begin
P2[k]:=j-k; break;
end;
end;
end;
end;
DRAWSL(CK,MM1,0,P1,3) pxdn2 linedot coloryellow;
DRAWSL(RCK,MM2,0,P2,3) pxdn2 linedot colormagenta;
引用:
最初由 chungdune 發表
報告版主:向上跳空缺口的線條正常,但是向下跳空缺口的上緣線條有問題,應該是畫在k棒的最低點而非最高點。
感謝版主,問題解決了。
不好意思,請問版主,若此公式要改成實體缺口(就是相鄰二根K棒實體之間有缺口)劃線要如何作,我改了之後只會變成在當根畫線,懇請協助,謝謝。
引用:
最初由 chungdune 發表
不好意思,請問版主,若此公式要改成實體缺口(就是相鄰二根K棒實體之間有缺口)劃線要如何作,我改了之後只會變成在當根畫線,懇請協助,謝謝。
原碼:
MAXKBAR:=1500; //設定運算近期N根(0為全部)
StPos:=datacount-MAXKBAR+1;
if StPos<1 or MAXKBAR=0 then StPos:=1;
SH:=MAX(O,C); SL:=MIN(O,C);
x:=SETLBOUND(SH,StPos);
x:=SETLBOUND(SL,StPos);
CK:=(SL>ref(SH,1))-(SH<=ref(SL,1));
MM1:=(CK=1)*SL+(CK=-1)*SH;
RCK:=refx(CK,1)*(ISLASTBAR=0);
MM2:=(RCK=1)*SH+(RCK=-1)*SL;
P1:=C*0; P2:=P1;
for i=lbound(CK) to datacount do begin
if CK[i]<>0 then begin
for j=i+1 to datacount do begin
if (CK[i]=1)*(SL[j]<=SL[i])+(CK[i]=-1)*(SH[j]>=SH[i]) then begin
P1[i]:=j-i; break;
end;
end;
k:=i-1;
for j=i+1 to datacount do begin
if (CK[i]=1)*(SL[j]<=SH[k])+(CK[i]=-1)*(SH[j]>=SL[k]) then begin
P2[k]:=j-k; break;
end;
end;
end;
end;
DRAWSL(CK,MM1,0,P1,3) pxdn2 linedot coloryellow;
DRAWSL(RCK,MM2,0,P2,3) pxdn2 linedot colormagenta;
前面程式, 這行:
CK:=(SL>ref(SH,1))-(SH<=ref(SL,1));
要修正為
CK:=(SL>ref(SH,1))-(SH<ref(SL,1));
全部時間均為台灣時間, 現在時間為07:31 | 在這個頁面顯示本主題全部的 14 個文章 |
Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.
簡愛洋行 製作 Copyright 2003-. All Rights Reserved.