![]() |
在這個頁面顯示本主題全部的 23 個文章 |
奇狐社區論壇 (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=24473)
高低連線問題
請問以下公式要如何修改,才能正確連到K棒的高低點,謝謝
例如1815富喬,從2025/12/16的低點79.00連到2025/12/29高點101.50,從2025/12/11高點91.00連到2025/12/16低點79.00
UP1 := H > REF(HHV(HIGH,3),1);
DOWN1 := L < REF(LLV(LOW,3),1);
UP1_BARS := BARSLAST(UP1) + 1;
HH_SINCE_UP1 := HHV(H, UP1_BARS);
DOWN1_BARS := BARSLAST(DOWN1) + 1;
LL_SINCE_DOWN1 := LLV(L, DOWN1_BARS);
A1 := IF(DOWN1, HH_SINCE_UP1, 0);
A2 := IF(UP1, LL_SINCE_DOWN1, 0);
DRAWLINE(DOWN1, A1, UP1, A2, 0);
DRAWLINE(UP1, A2,DOWN1, A1, 0);
回覆: 高低連線問題
引用:
最初由 Rosetta 發表
請問以下公式要如何修改,才能正確連到K棒的高低點,謝謝
例如1815富喬,從2025/12/16的低點79.00連到2025/12/29高點101.50,從2025/12/11高點91.00連到2025/12/16低點79.00
UP1 := H > REF(HHV(HIGH,3),1);
DOWN1 := L < REF(LLV(LOW,3),1);
UP1_BARS := BARSLAST(UP1) + 1;
HH_SINCE_UP1 := HHV(H, UP1_BARS);
DOWN1_BARS := BARSLAST(DOWN1) + 1;
LL_SINCE_DOWN1 := LLV(L, DOWN1_BARS);
A1 := IF(DOWN1, HH_SINCE_UP1, 0);
A2 := IF(UP1, LL_SINCE_DOWN1, 0);
DRAWLINE(DOWN1, A1, UP1, A2, 0);
DRAWLINE(UP1, A2,DOWN1, A1, 0);
回覆: 回覆: 高低連線問題
引用:
最初由 cgjj 發表
此段公式並不是用來做高低點判斷的,故無法修改!
要判斷一個位置是否為高低點
其必須向前和向後比較數值,才能確立
回覆: 回覆: 回覆: 高低連線問題
引用:
最初由 Rosetta 發表
UP1 := H > REF(HHV(HIGH,3),1);
DOWN1 := L < REF(LLV(LOW,3),1);
A為UP1後第一個DOWN1,UP1與DOWN1二者所夾之最高點,例如 1815 富喬,2025/12/29 高點 101.50
B為DOWN1後第一個UP1,DOWN1與UP1二者所夾之最低點,例如 1815 富喬,2025/12/16 低點 79.00
請問如何寫公式,將A與B連線,謝謝
回覆: 回覆: 回覆: 回覆: 高低連線問題
引用:
最初由 cgjj 發表
UP1 有可能連續成立
DOWN1 也可能連續成立
UP1與DOWN1二者所夾之最高價
該價不一定只發生在一根K棒上(可能連續或不連續)
以上~~ 有想過要如何處理嗎?
回覆: 回覆: 回覆: 回覆: 回覆: 高低連線問題
引用:
最初由 Rosetta 發表
>>UP1 有可能連續成立
>>DOWN1 ˋ也可能連續成立
應該說是只要UP1後接著是DOWN1,二者所夾之最高價當根K棒高點就定義為A,
例如 1815 富喬,2025/12/22開始都是連續UP1,之後發生第一個DOWN1在2026/01/02,因此最後一個UP1 2025/12/29與2026/01/02所夾之最高價當根K棒2025/12/29高點就定義為A
>>UP1 與 DOWN1 二者所夾之最高價
>>該價不一定只發生在一根 K 棒上 (可能連續或不連續)
若出現此狀況,請定義最後出現的最高價為A,例如 1815 富喬,2025/2/10與2/11高點相同,則定義2/11為A
回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 高低連線問題
引用:
最初由 cgjj 發表
此外,當 UP1 和 DOWN1 同時成立時,又如何處理?
回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 高低連線問題
引用:
最初由 Rosetta 發表
當 UP1 和 DOWN1 同時成立時(以下稱貫穿線):
1.若貫穿線成立時,前面最後出現的是UP1,例如 1815 富喬,2024/11/28,則連線先從2024/11/19低點,連線到2024/11/28高點,再從2024/11/28高點,連線到2024/11/28低點
2.若貫穿線成立時,前面最後出現的是DOWN1,例如 1815 富喬,2024/11/01,則連線先從2024/10/22高點,連線到2024/11/01低點,再從2024/11/01低點,連線到2024/11/01高點
3.若貫穿線成立時,前面最後出現的是貫穿線,不管前面的貫穿線是先連低再連高,還是先連高再連低,一律先連到後面的貫穿線低點,再從後面的貫穿線低點,連到後面的貫穿線高點
例如 1904正隆,2026/03/20、3/23二根貫穿線,3/20是先連高再連低(符合條件1),則3/23這根是從3/20低點連到3/23低點,再從3/23低點連線到3/23高點
例如 3105穩懋,2015/11/10、11/11二根貫穿線,11/10是先連低再連高(符合條件2),則11/11這根是從11/10高點連到11/11低點,再從11/11低點連線到11/11高點
回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 高低連線問題
引用:
最初由 cgjj 發表
若貫穿線連續成立呢?
回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 高低連線問題
引用:
最初由 Rosetta 發表
上面第3點就是
回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 高低連線問題
引用:
最初由 cgjj 發表
不好意思,沒說清楚
我指的是若貫穿線連續3根成立呢?
例如: 2438 2019/6/19
能否畫一個有連續貫穿的高低連線圖實例呢?
這樣比較好精準比對了解您想要的高低連線方式
(方便了解連續貫穿K棒往前往後銜接的情形)
例如: 以 1904 之 20260209-20260406 為例

回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 高低連線問題
引用:
最初由 Rosetta 發表
修改有關貫穿線的畫法
1.若貫穿線成立時,前面最後出現的不管是UP1或DOWN1,一律先連到後面的貫穿線低點,再從後面的貫穿線低點,連到後面的貫穿線高點
例如 1904 正隆,2025/3/20、3/23二根貫穿線,則連線先從3/18高點→連線到3/20低點→連線到3/20高點→連線到3/23低點→連線到3/23高點
2.若是連續N根貫穿線(N>=2)成立時,一律先連第N根貫穿線低點→連第N根貫穿線高點→連第N+1根貫穿線低點→連第N+1根貫穿線高點
例如 2438翔耀,2019/6/17、6/18、6/19三根貫穿線,則連線
6/10 低點→連到 6/17 低點→連到 6/17 高點→連到 6/18 低點→連到 6/18 高點→連到 6/19 低點→連到 6/19 高點
![]()
完成了,使用上請注意!!!
1.這個公式並非高低高低高低...一直如此反向。
2.這個公式有動用到未來數據!
原碼:
DWP1:=C*0 linethick; DWP2:=DWP1 linethick; DWLEN:=DWP1 linethick; HH:=H; LL:=L; UP1:=HH > REF(HHV(HH,3),1) or barpos=0 linethick; DOWN1:=LL < REF(LLV(LL,3),1) or barpos=0 linethick; UD:=DOWN1+UP1*2; UP1SP:=barslast(UP1); DOWN1SP:=barslast(DOWN1); LastUD:=0; LastDW:=-1; for i = 1 to datacount do begin if UD[i]=1 and LastUD=2 or UD[i]=3 and LastUD=2 then begin PP:=i-1; for j = PP downto 1 do begin if HH[j]>HH[PP] then PP:=j; if UP1[j]=1 then break; end; if j>0 and DOWN1[PP]=0 then begin DWP1[PP]:=HH[PP]; if LastDW > -1 then begin DWLEN[PP]:=PP-LastDW; DWP2[PP]:=DWP1[LastDW]; end; LastDW:=PP; if UD[i]=3 then begin DWP2[i]:=DWP1[PP]; DWP1[i]:=LL[i]; DWLEN[i]:=i-LastDW; LastDW:=i; end; end; end else if UD[i]=2 and LastUD=1 or UD[i]=3 and LastUD=1 then begin PP:=i-1; for j = PP downto 1 do begin if LL[j]<LL[PP] then PP:=j; if DOWN1[j]=1 then break; end; if j>0 and UP1[PP]=0 then begin DWP1[PP]:=LL[PP]; if LastDW > -1 then begin DWLEN[PP]:=PP-LastDW; DWP2[PP]:=DWP1[LastDW]; end; LastDW:=PP; if UD[i]=3 then begin DWP2[i]:=DWP1[PP]; DWP1[i]:=LL[i]; DWLEN[i]:=i-LastDW; LastDW:=i; end; end; end else if UD[i]=3 and LastUD=3 then begin DWP2[i]:=HH[LastDW]; DWP1[i]:=LL[i]; DWLEN[i]:=i-LastDW; LastDW:=i; end; if UD[i]>0 then LastUD:=UD[i]; end; DRAWSL(DWP1>0 and DWP2>0 and DWLEN>0,DWP1,(DWP1-DWP2)/DWLEN,-DWLEN,1) coloryellow pxdn2; STICKLINE(DWP1>0 and DWP2>0 and UD=3 and refx(UD,1)=3 and not(islastbar),H,L,0.1,0) coloryellow;
引用:
最初由 cgjj 發表
完成了,使用上請注意!!!
1.這個公式並非高低高低高低...一直如此反向。
2.這個公式有動用到未來數據!
原碼:
DWP1:=C*0 linethick; DWP2:=DWP1 linethick; DWLEN:=DWP1 linethick; HH:=H; LL:=L; UP1:=HH > REF(HHV(HH,3),1) or barpos=0 linethick; DOWN1:=LL < REF(LLV(LL,3),1) or barpos=0 linethick; UD:=DOWN1+UP1*2; UP1SP:=barslast(UP1); DOWN1SP:=barslast(DOWN1); LastUD:=0; LastDW:=-1; for i = 1 to datacount do begin if UD[i]=1 and LastUD=2 or UD[i]=3 and LastUD=2 then begin PP:=i-1; for j = PP downto 1 do begin if HH[j]>HH[PP] then PP:=j; if UP1[j]=1 then break; end; if j>0 and DOWN1[PP]=0 then begin DWP1[PP]:=HH[PP]; if LastDW > -1 then begin DWLEN[PP]:=PP-LastDW; DWP2[PP]:=DWP1[LastDW]; end; LastDW:=PP; if UD[i]=3 then begin DWP2[i]:=DWP1[PP]; DWP1[i]:=LL[i]; DWLEN[i]:=i-LastDW; LastDW:=i; end; end; end else if UD[i]=2 and LastUD=1 or UD[i]=3 and LastUD=1 then begin PP:=i-1; for j = PP downto 1 do begin if LL[j]<LL[PP] then PP:=j; if DOWN1[j]=1 then break; end; if j>0 and UP1[PP]=0 then begin DWP1[PP]:=LL[PP]; if LastDW > -1 then begin DWLEN[PP]:=PP-LastDW; DWP2[PP]:=DWP1[LastDW]; end; LastDW:=PP; if UD[i]=3 then begin DWP2[i]:=DWP1[PP]; DWP1[i]:=LL[i]; DWLEN[i]:=i-LastDW; LastDW:=i; end; end; end else if UD[i]=3 and LastUD=3 then begin DWP2[i]:=HH[LastDW]; DWP1[i]:=LL[i]; DWLEN[i]:=i-LastDW; LastDW:=i; end; if UD[i]>0 then LastUD:=UD[i]; end; DRAWSL(DWP1>0 and DWP2>0 and DWLEN>0,DWP1,(DWP1-DWP2)/DWLEN,-DWLEN,1) coloryellow pxdn2; STICKLINE(DWP1>0 and DWP2>0 and UD=3 and refx(UD,1)=3 and not(islastbar),H,L,0.1,0) coloryellow;
引用:
最初由 Rosetta 發表
以下問題請板主協助修改,謝謝
根據穿線規則第一條:
6168宏齊,2023/9/21一根貫穿線,線的畫法應該是:09/15高→09/21低→09/21高→09/27低→10/24高
根據穿線規則第二條:
6168宏齊,2024/11/08、11/11二根貫穿線,線的畫法應該是:11/04高→11/08低→11/08高→11/11低→11/11高→11/18低
原碼:
HH:=H; LL:=L; UP1:=HH > REF(HHV(HH,3),1) or barpos=0 linethick; DOWN1:=LL < REF(LLV(LL,3),1) or barpos=0 linethick; UD:=DOWN1+UP1*2 linethick; LastUD:=0; LastDW:=-1; DWP1:=C*0 linethick; DWP2:=DWP1 linethick; DWPZ:=DWP1 linethick; DWLEN:=DWP1; for i = 1 to datacount do begin if LastUD=UD[i] then begin if LastUD=3 and LastDW>-1 then begin DWP1[i]:=LL[i]; DWP2[i]:=HH[LastDW]; DWPZ[LastDW]:=DWP2[i]; DWLEN[i]:=i-LastDW; LastDW:=i; end; end else begin if UD[i]=1 or (UD[i]=3 and LastUD=2) then begin PP:=i-1; for j = PP downto 1 do begin if HH[j]>HH[PP] then PP:=j; if UP1[j]=1 then break; end; if j>0 and DWP1[PP]=0 then begin DWP1[PP]:=HH[PP]; if LastDW > -1 then begin DWP2[PP]:=LL[LastDW]; DWPZ[LastDW]:=DWP2[PP]; DWLEN[PP]:=PP-LastDW; end; LastDW:=PP; if UD[i]=3 then begin DWP1[i]:=LL[i]; DWP2[i]:=DWP1[LastDW]; DWPZ[LastDW]:=DWP2[i]; DWLEN[i]:=i-LastDW; LastDW:=i; end; end; end else if UD[i]=2 or (UD[i]=3 and LastUD=1) then begin PP:=i-1; for j = PP downto 1 do begin if LL[j]<LL[PP] then PP:=j; if DOWN1[j]=1 then break; end; if j>0 and DWP1[PP]=0 then begin DWP1[PP]:=LL[PP]; if LastDW > -1 then begin DWP2[PP]:=HH[LastDW]; DWPZ[LastDW]:=DWP2[PP]; DWLEN[PP]:=PP-LastDW; end; LastDW:=PP; if UD[i]=3 then begin DWP1[i]:=LL[i]; DWP2[i]:=DWP1[LastDW]; DWPZ[LastDW]:=DWP2[i]; DWLEN[i]:=i-LastDW; LastDW:=i; end; end; end; end; if UD[i]>0 then LastUD:=UD[i]; end; DRAWSL(DWP2>0,DWP1,(DWP1-DWP2)/DWLEN,-DWLEN,1) coloryellow pxdn2; STICKLINE(DWPZ<>DWP1 and DWPZ>0 ,H,L,0.1,0) coloryellow;
延伸應用
請總版主協助:
1,求黑色折線的數值;
2,附圖中頂點,底點的公式寫法;
3,求頂點的H 及 底點的L;
感謝!
回覆: 延伸應用
引用:
最初由 Markchu7 發表
請總版主協助:
1,求黑色折線的數值;
2,附圖中頂點,底點的公式寫法;
3,求頂點的H 及 底點的L;
感謝!
感謝總版主協助與提醒!
我也知道有未來函數的效果!基本上根據觀察會有過了3,4根K棒後,折線才畫出來!但畫了之後就確定了!
我是想確定了之後才運用!
另:1,求黑色折線的數值;這個問題,總版主似乎忘了協助,再請幫忙!
謝謝!
引用:
最初由 Markchu7 發表
感謝總版主協助與提醒!
我也知道有未來函數的效果!基本上根據觀察會有過了3,4根K棒後,折線才畫出來!但畫了之後就確定了!
我是想確定了之後才運用!
另:1,求黑色折線的數值;這個問題,總版主似乎忘了協助,再請幫忙!
謝謝!
<會有在同根K棒自高垂直連到低>,是的!我也有觀察到這個現象!
以程式小白的我來說:我很好奇,一K棒有2個值,它是怎樣做到的?
總是謝謝總版主的協助!感恩哪!
引用:
最初由 Markchu7 發表
<會有在同根K棒自高垂直連到低>,是的!我也有觀察到這個現象!
以程式小白的我來說:我很好奇,一K棒有2個值,它是怎樣做到的?
總是謝謝總版主的協助!感恩哪!
引用:
最初由 cgjj 發表
注意!!! 它並非是像 ZIG 那樣的公式唷~~
1.這個公式並非高低高低高低...一直如此反向。
2.這個公式有動用到未來數據!
3.頂點和底點有可能在同一根
重新處理如下:
原碼:
HH:=H; LL:=L; UP1:=HH > REF(HHV(HH,3),1) or barpos=0 linethick; DOWN1:=LL < REF(LLV(LL,3),1) or barpos=0 linethick; UD:=DOWN1+UP1*2 linethick; LastUD:=0; LastDW:=-1; DWP1:=C*0 linethick; DWP2:=DWP1 linethick; DWPZ:=DWP1 linethick; DWLEN:=DWP1; for i = 1 to datacount do begin if LastUD=UD[i] then begin if LastUD=3 and LastDW>-1 then begin DWP1[i]:=LL[i]; DWP2[i]:=HH[LastDW]; DWPZ[LastDW]:=DWP2[i]; DWLEN[i]:=i-LastDW; LastDW:=i; end; end else begin if UD[i]=1 or (UD[i]=3 and LastUD=2) then begin PP:=i-1; for j = PP downto 1 do begin if HH[j]>HH[PP] then PP:=j; if UP1[j]=1 then break; end; if j>0 and DWP1[PP]=0 then begin DWP1[PP]:=HH[PP]; if LastDW > -1 then begin DWP2[PP]:=LL[LastDW]; DWPZ[LastDW]:=DWP2[PP]; DWLEN[PP]:=PP-LastDW; end; LastDW:=PP; if UD[i]=3 then begin DWP1[i]:=LL[i]; DWP2[i]:=DWP1[LastDW]; DWPZ[LastDW]:=DWP2[i]; DWLEN[i]:=i-LastDW; LastDW:=i; end; end; end else if UD[i]=2 or (UD[i]=3 and LastUD=1) then begin PP:=i-1; for j = PP downto 1 do begin if LL[j]<LL[PP] then PP:=j; if DOWN1[j]=1 then break; end; if j>0 and DWP1[PP]=0 then begin DWP1[PP]:=LL[PP]; if LastDW > -1 then begin DWP2[PP]:=HH[LastDW]; DWPZ[LastDW]:=DWP2[PP]; DWLEN[PP]:=PP-LastDW; end; LastDW:=PP; if UD[i]=3 then begin DWP1[i]:=LL[i]; DWP2[i]:=DWP1[LastDW]; DWPZ[LastDW]:=DWP2[i]; DWLEN[i]:=i-LastDW; LastDW:=i; end; end; end; end; if UD[i]>0 then LastUD:=UD[i]; end; DRAWSL(DWP2>0,DWP1,(DWP1-DWP2)/DWLEN,-DWLEN,1) coloryellow pxdn2; STICKLINE(DWPZ<>DWP1 and DWPZ>0 ,H,L,0.1,0) coloryellow;
引用:
最初由 Rosetta 發表
請板主協助新增功能,謝謝。
1.連線從低連到高時,在高點標示出高點數值與(高-低)的數值
6168 宏齊,2026/3/31低點22.70連線到4/20高點30.80,因此在4/20高點標示出文字30.80與8.1
2.連線從高連到低時,在低點標示出低點數值與(低-高)的數值
6168 宏齊,2026/3/25高點28.10連線到3/31低點22.70,因此在3/31低點標示出文字22.70與-5.4
3.目前在UP1未發生DOWN1時,從前面DOWN1 與 UP1 二者所夾之最低點,連線到目前最後一個UP1高點,並在最後一個UP1高點標示出高點數值與(高-低)的數值
2351順德,到2026/4/24為止都是UP1未發生DOWN1,因此從4/15低點劃線到4/23高點,並且在4/23高點標示出文字172.5與54.5
4.目前在DOWN1未發生UP1時,從前面UP1 與 DOWN1 二者所夾之最高點,連線到目前最後一個DOWN1低點,並在最後一個DOWN1低點標示出低點數值與(低-高)的數值
1815富喬,到2026/4/24為止都是DOWN1未發生UP1,因此從4/20高點劃線到4/23低點,並且在4/23低點標示出文字105與-24.5
5.貫穿線也適用以上之標示規則
![]()
| 全部時間均為台灣時間, 現在時間為14:05 | 在這個頁面顯示本主題全部的 23 個文章 |
Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.
簡愛洋行 製作 Copyright 2003-. All Rights Reserved.