到奇狐勝券首頁 奇狐社區論壇 購買奇狐勝券 試用奇狐勝券
 
論壇首頁 你可以在這裡編輯你的資料,查看短訊,訂閱主題和論壇參數等等 免費會員註冊 會員列表 論壇幫助 論壇日曆 論壇搜索 加入我的最愛 登出論壇  
奇狐社區論壇 : Powered by vBulletin version 2.3.0 奇狐社區論壇 > 指標公式 > 問題交流 > 請教總版主:如何畫上昇趨勢線與下降趨勢線
  上一主題   下一主題
作者
主題 發表新主題    回覆主題
sunnyjboy1960
中級會員

註冊日期: Sep 2010
來  自: 桃園
文章數量: 81

請教總版主:如何畫上昇趨勢線與下降趨勢線

有在論壇中爬文
有以下列方式查前方之高低點,但不甚週全,想找一個更好的方式
N3:=3;
{-------------------------------------------------------}
A1:=REF(HIGH,N3)=HHV(HIGH,2*N3+1);B1:=FILTER(A1,N3),LINETHICK1; C1:=BACKSET(B1,N3+1),LINETHICK1; D1:=FILTER(C1,N3),LINETHICK1;{高點}
A2:=REF(LOW,N3)=LLV(LOW,2*N3+1); B2:=FILTER(A2,N3); C2:=BACKSET(B2,N3+1); D2:=FILTER(C2,N3);{低點}
{-------------------------------------------------------}
E1:=(REF(LLV(LOW,2*N3),1)+REF(HHV(HIGH,2*N3),1))/2;
E2:=(HIGH+LOW)/2;{高低點出現在同一K線上時可作取捨}
H1:=(D1 AND NOT(D2 AND E1>=E2)) OR ISLASTBAR OR BARSCOUNT(CLOSE)=1;
L1:=(D2 AND NOT(D1 AND E1<E2)); H2:=D1 AND NOT(D2 AND E1>=E2);
X1:=REF(BARSLAST(H1),1)+1;
F1:=BACKSET(H1 AND COUNT(L1,X1)>0,LLVBARS(IF(L1,LOW,10000),X1));
G1:=F1>REF(F1,1); I1:=BACKSET(G1,2); LD:=I1>REF(I1,1);{過濾後低點}
L2:=LD OR ISLASTBAR OR BARSCOUNT(CLOSE)=1;
X2:=REF(BARSLAST(L2),1)+1;
F2:=BACKSET(L2 AND COUNT(H2,X2)>0,HHVBARS(IF(H2,HIGH,0),X2));
G2:=F2>REF(F2,1); I2:=BACKSET(G2,2); HD:=I2>REF(I2,1);{過濾後高點}
{--畫線趨勢---------------------------------------------------------}
///HD:="jgb.HD"(N);LD:="jgb.LD"(N);
R1:=BACKSET(ISLASTBAR,BARSLAST(HD)+1); S1:=R1>REF(R1,1); {前一高}
T1:=BACKSET(ISLASTBAR,BARSLAST(LD)+1); U1:=T1>REF(T1,1); {前一低}
R2:=BACKSET(S1,REF(BARSLAST(HD),1)+2); S2:=R2>REF(R2,1); {前二高}
T2:=BACKSET(U1,REF(BARSLAST(LD),1)+2); U2:=T2>REF(T2,1); {前二低}
T3:=BACKSET(U2,REF(BARSLAST(LD),1)+2); U3:=T3>REF(T3,1); {前三低}
T4:=BACKSET(U3,REF(BARSLAST(LD),1)+2); U4:=T4>REF(T4,1); {前四低}
R3:=BACKSET(S2,REF(BARSLAST(HD),1)+2); S3:=R3>REF(R3,1); {前三高}
R4:=BACKSET(S3,REF(BARSLAST(HD),1)+2); S4:=R4>REF(R4,1); {前四高}
{--標高低點---------------------------------------------------------}
DRAWICON(S1,HIGH+4,10);DRAWICON(S2,HIGH+4,10);DRAWICON(S3,HIGH+4,10);{標高點}
DRAWICON(U1,LOW-4,11);DRAWICON(U2,LOW-4,11);DRAWICON(U3,LOW-4,11);DRAWICON(U4,LOW-4,11);
{標高低價及壓力線}
DRAWNUMBER(S2,HIGH+6,HIGH,2),COLORMAGENTA;DRAWNUMBER(S1,HIGH+6,HIGH,2),COLORMAGENTA;
DRAWNUMBER(S3,HIGH+6,HIGH,2),COLORMAGENTA;
DRAWNUMBER(U1,LOW-6,LOW,2),COLORCYAN;DRAWNUMBER(U2,LOW-6,LOW,2),COLORCYAN;{標低點}
DRAWNUMBER(U3,LOW-6,LOW,2),COLORCYAN;DRAWNUMBER(U4,LOW-6,LOW,2),COLORCYAN;
DRAWLINE(S2,HIGH,S1,HIGH,1),LINETHICK1,Color00FFFF;{★壓力線1:}
DRAWLINE(U2,LOW,U1,LOW,1),LINETHICK1,Color00FFFF; {★支撐線1:}
DRAWLINE(S3,HIGH,S2,HIGH,1),LINETHICK1,Color009000;{★壓力線2:}
DRAWLINE(U3,LOW,U2,LOW,1),LINETHICK1,Color009900; {★支撐線2:}
DRAWLINE(S4,HIGH,S3,HIGH,1),LINETHICK1,Color000090;{★壓力線3:}
DRAWLINE(U4,LOW,U3,LOW,1)LINETHICK1,Color000090; {★支撐線3:}
THH1:IF(S1,HIGH,REF(HIGH,BARSLAST(S1))) LINETHICK2;
THH2:IF(S2,HIGH,REF(HIGH,BARSLAST(S2))) LINETHICK2;
THH3:IF(S3,HIGH,REF(HIGH,BARSLAST(S3))) LINETHICK2;
TLL1:IF(U1,LOW,REF(LOW,BARSLAST(U1))) LINETHICK2;
TLL2:IF(U2,LOW,REF(LOW,BARSLAST(U2))) LINETHICK2;
TLL3:IF(U3,LOW,REF(LOW,BARSLAST(U3))) LINETHICK2;






下面是大概的需求:
LZ:ZIG(4,0.08) ;
查找較前1高更高之前2高
(C<前1高 and C<前2高) AND (前1高<前2高)
畫射線自 前2高 到 前1高
並計算目前K棒位置之壓力價

查找較前1低更低之前2低
(C>前1低 and C>前2低) AND (前1低>前2低)
畫射線自前2低 到 前1低
並計算目前K棒位置之支撐價

註:如圖中有同低之k棒,取後一個低點

sunnyjboy1960 附帶上了此圖片:

最後由 sunnyjboy1960 在 2011-07-04 21:12 編輯 向版主報告此篇 | 查IP位址
Old Post 2011-07-04 20:49
sunnyjboy1960 現在離線 點選這裡查看 sunnyjboy1960 的個人資料 點選這裡給 sunnyjboy1960 傳送一條短訊 查找更多關於 sunnyjboy1960 的文章 增加 sunnyjboy1960 至你的好友列表 編輯/刪除訊息 引用回覆
sunnyjboy1960
中級會員

註冊日期: Sep 2010
來  自: 桃園
文章數量: 81

之前的參考文章

可以參考這邊的做法
http://www.chiefox.com.tw/bbs/showt...60540#post60540
運用 sumbars 去做關鍵的運算來實現


//關鍵部份的處理, 示例如下:
ZX:ZIG(4,1);
CK1:=ZX>ref(ZX,1) and ZX>refx(ZX,1);
CK2:=ZX<ref(ZX,1) and ZX<refx(ZX,1);
轉折點:=CK1 or CK2;
轉折距:ref(barslast(轉折點)+1,1) linethick;
P1ZC:ref(C,SUMBARS(轉折點,1)-1) linethick;
P2ZC:ref(C,SUMBARS(轉折點,2)-1) linethick;
P3ZC:ref(C,SUMBARS(轉折點,3)-1) linethick;
VERTLINE(轉折點) linethick1;

由於對奇狐的程式語法不是能夠完全的運用,所以想了很久還找不出正確的方法
能否多增加一些提示

1.比現C高的第1轉折點,第2轉折點
2.比現C低的第1轉折點,第2轉折點

最後由 sunnyjboy1960 在 2011-07-04 23:14 編輯 向版主報告此篇 | 查IP位址
Old Post 2011-07-04 23:01
sunnyjboy1960 現在離線 點選這裡查看 sunnyjboy1960 的個人資料 點選這裡給 sunnyjboy1960 傳送一條短訊 查找更多關於 sunnyjboy1960 的文章 增加 sunnyjboy1960 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 18217

回覆: 之前的參考文章

引用:
最初由 sunnyjboy1960 發表
可以參考這邊的做法
http://www.chiefox.com.tw/bbs/showt...60540#post60540
運用 sumbars 去做關鍵的運算來實現


//關鍵部份的處理, 示例如下:
ZX:ZIG(4,1);
CK1:=ZX>ref(ZX,1) and ZX>refx(ZX,1);
CK2:=ZX<ref(ZX,1) and ZX<refx(ZX,1);
轉折點:=CK1 or CK2;
轉折距:ref(barslast(轉折點)+1,1) linethick;
P1ZC:ref(C,SUMBARS(轉折點,1)-1) linethick;
P2ZC:ref(C,SUMBARS(轉折點,2)-1) linethick;
P3ZC:ref(C,SUMBARS(轉折點,3)-1) linethick;
VERTLINE(轉折點) linethick1;

由於對奇狐的程式語法不是能夠完全的運用,所以想了很久還找不出正確的方法
能否多增加一些提示

1.比現C高的第1轉折點,第2轉折點
2.比現C低的第1轉折點,第2轉折點



比現C高的, 取前面的向上轉折點嗎?
比現C低的, 取前面的向下轉折點嗎?

向版主報告此篇 | 查IP位址
Old Post 2011-07-05 13:25
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
sunnyjboy1960
中級會員

註冊日期: Sep 2010
來  自: 桃園
文章數量: 81

轉折點

比現C高的, 取前面的向上轉折點嗎?
比現C高的是要取下降趨勢線,是向下轉折點

比現C低的, 取前面的向下轉折點嗎?
比現C低的是要取上昇趨勢線,是向上轉折點

sunnyjboy1960 附帶上了此圖片:

向版主報告此篇 | 查IP位址
Old Post 2011-07-05 14:44
sunnyjboy1960 現在離線 點選這裡查看 sunnyjboy1960 的個人資料 點選這裡給 sunnyjboy1960 傳送一條短訊 查找更多關於 sunnyjboy1960 的文章 增加 sunnyjboy1960 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 18217

回覆: 轉折點

引用:
最初由 sunnyjboy1960 發表
比現C高的, 取前面的向上轉折點嗎?
比現C高的是要取下降趨勢線,是向下轉折點

比現C低的, 取前面的向下轉折點嗎?
比現C低的是要取上昇趨勢線,是向上轉折點



看看是否為您要的結果
原碼:

ZX
:ZIG(4,1);
CKU:=ZX>ref(ZX,1) and ZX>refx(ZX,1);
CKD:=ZX<ref(ZX,1) and ZX<refx(ZX,1);
UUSP:=barslast(CKU<>0); DDSP:=barslast(CKD<>0);
HC01:C*0 linethick0
HC02:HC01 linethick0
LC01:HC01 linethick0
LC02:HC01 linethick0;
CC:=C;
for 
i=1 to datacount do begin
  
for j=i-1 downto lbound(UUSP) do begin    
    j
:=j-UUSP[j];
    if 
ZX[j]>CC[ithen begin
      
if HC01[i]=0 then  begin
         HC01
[i]:=ZX[j];
      
end else if HC02[i]=0 then begin
         HC02
[i]:=ZX[j];
      
end;
      if 
HC01[i]>and HC02[i]>0 then break;
    
end;
  
end;
  for 
j=i-1 downto lbound(DDSP) do begin    
    j
:=j-DDSP[j];
    if 
ZX[j]<CC[ithen begin
      
if LC01[i]=0 then  begin
         LC01
[i]:=ZX[j];
      
end else if LC02[i]=0 then begin
         LC02
[i]:=ZX[j];
      
end;
      if 
LC01[i]>and LC02[i]>0 then break;
    
end;
  
end;
end;
VERTLINE(CKUlinethick1 linedot colorred;
VERTLINE(CKDlinethick1 linedot colorgreen;

向版主報告此篇 | 查IP位址
Old Post 2011-07-05 16:00
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
全部時間均為台灣時間, 現在時間為16:59 發表新主題    回覆主題
  上一主題   下一主題
顯示可列印版本 | 訂閱此主題

論壇跳轉:
主題評分:

論壇規定:
你不可以發表新主題
你不可以回覆文章
你不可以上傳附件
你不可以編輯自己的文章
HTML語法禁止
vB 語法核准
表情符號核准
貼圖語法[IMG]核准
 

本站所有內容未經作者授權禁止轉貼節錄, 發表言論僅供參考勿作為投資決策依據。瀏覽本站請使用 IE 5.5 以上版本, 最佳瀏覽解析度 1024 x 768 全彩。

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

簡愛洋行 製作 Copyright 2003-. All Rights Reserved.  聯絡我們