 |
cgjj
總版主

註冊日期: Oct 2003
來 自:
文章數量: 18233 |
|
回覆: [求救]請問一下能夠如此自動畫線嗎?
引用: 最初由 ahtry 發表
MACD 的柱狀體以0軸為基準,0軸之上柱狀體最大值往前自動畫線到0軸之下柱狀體最小值,往後也是自動畫線到0軸之下柱狀體最小值.
請教一下這樣子不知道該如何寫?
//應用範例
SS:=SGN(MACD);
CK:=SS<>ref(SS,1) or barpos=1;
SP:=barslast(CK)+1;
HSP:=HHVBARS(MACD,SP);
LSP:=LLVBARS(MACD,SP);
SetCK:=SS<>refx(SS,1) or barpos=datacount;
WH:=SETVAL(SetCK and MACD>0,0,-HSP,1);
WH:=SETVAL(SetCK and MACD>0 and HSP>0,WH,-HSP+1,0);
WL:=SETVAL(SetCK and MACD<0,0,-LSP,1);
WL:=SETVAL(SetCK and MACD<0 and LSP>0,WL,-LSP+1,0);
POLYLINE(WH or WL,MACD) colorwhite;
|
|
向版主報告此篇 |  |
|
2011-01-26 10:29 |
|
|
|  |
 |
peter109
資深會員
註冊日期: Dec 2004
來 自: Taipei
文章數量: 1891 |
|
回覆: 回覆: [求救]請問一下能夠如此自動畫線嗎?
引用: 最初由 cgjj 發表
SS:=SGN(MACD);
CK:=SS<>ref(SS,1) or barpos=1;
SP:=barslast(CK)+1;
HSP:=HHVBARS(MACD,SP);
LSP:=LLVBARS(MACD,SP);
SetCK:=SS<>refx(SS,1) or barpos=datacount;
WH:=SETVAL(SetCK and MACD>0,0,-HSP,1);
WH:=SETVAL(SetCK and MACD>0 and HSP>0,WH,-HSP+1,0);
WL:=SETVAL(SetCK and MACD<0,0,-LSP,1);
WL:=SETVAL(SetCK and MACD<0 and LSP>0,WL,-LSP+1,0);
POLYLINE(WH or WL,MACD) colorwhite;
版大這範例真好
收下了
目前這範例是取 MACD>0 以及 MACD<0的最大(轉折) 最小(轉折)值
請問 如果要取 MACD>0 第二大或MACD<0第二小的轉折值
還請 版大協助
__________________
至誠能勝天下至偽
至拙能勝天下至巧
|
|
向版主報告此篇 |  |
|
2011-01-26 23:39 |
|
|
|  |
 |
peter109
資深會員
註冊日期: Dec 2004
來 自: Taipei
文章數量: 1891 |
|
如果沒有轉折第二大 就維持第一大不變 也就是取第二大轉折等於第一大轉折
若有轉折第二大 需要標注在第一大轉折前面或者後面的發生週期
反之亦然
感恩您的協助
__________________
至誠能勝天下至偽
至拙能勝天下至巧
|
|
向版主報告此篇 |  |
|
2011-01-27 22:38 |
|
|
|  |
 |
peter109
資深會員
註冊日期: Dec 2004
來 自: Taipei
文章數量: 1891 |
|
引用: 最初由 cgjj 發表
原碼: SS:=SGN(MACD);
CKA:=SS<>ref(SS,1) or barpos=1;
CKZ:=SS<>refx(SS,1) or barpos=datacount;
WH:=C*0; WL:=WH;
for i=1 to datacount do begin
if CKA[i] then begin
H1:=MACD[i]; L1:=MACD[i];
H1P:=i; L1P:=i; H2P:=0; L2P:=0;
end else begin
if MACD[i]>H1 then begin
H2P:=H1P; H1:=MACD[i]; H1P:=i;
end else if MACD[i]<L1 then begin
L2P:=L1P; L1:=MACD[i]; L1P:=i;
end;
end;
if CKZ[i] then begin
if MACD[i]>0 then begin
if H2P=0 then H2P:=H1P;
WH[H2P]:=1;
end else if MACD[i]<0 then begin
if L2P=0 then L2P:=L1P;
WL[L2P]:=1;
end;
end;
end;
POLYLINE(WH or WL,MACD) colorwhite;
謝謝您
出來的 和 希望的 定義有明顯差異耶
重新讓您知道 希望的 定義
取macd高轉為例
高轉(轉折)=macd>0 and macd>ref(mcd,1) and macd>refx(macd,1)
在連續macd>0的柱狀中
若有兩次以上(包含兩次)的高轉
就需要區分第一大高轉(macd會是該連續macd>0中最大值) 第二大高轉(只是高轉處的對應macd值比較後第二大)
並計算此二大高轉間的週期(若第二大高轉在第一大高轉前面取正週期 若第二大高轉在第一大高轉後面取負週期 )
如果沒有高轉第二大 就維持第一大不變 也就是取第二大高轉
等於第一大高轉
低轉需求和前面雷同
再次感恩您的協助
附圖做個簡單說明
__________________
至誠能勝天下至偽
至拙能勝天下至巧
|
| 最後由 peter109 在 2011-01-31 13:08 編輯 |
向版主報告此篇 |  |
|
2011-01-31 12:51 |
|
|
|  |
 |
peter109
資深會員
註冊日期: Dec 2004
來 自: Taipei
文章數量: 1891 |
|
111
peter109 附帶上了此圖片:
__________________
至誠能勝天下至偽
至拙能勝天下至巧
|
|
向版主報告此篇 |  |
|
2011-01-31 13:12 |
|
|
|  |
 |
peter109
資深會員
註冊日期: Dec 2004
來 自: Taipei
文章數量: 1891 |
|
引用: 最初由 cgjj 發表
原碼: SS:=SGN(MACD);
CKA:=SS<>ref(SS,1) or barpos=1;
CKZ:=SS<>refx(SS,1) or barpos=datacount;
高轉:=macd>0 and macd>ref(macd,1) and macd>refx(macd,1) or barpos=0;
低轉:=macd<0 and macd<ref(macd,1) and macd<refx(macd,1) or barpos=0;
WH:=C*0; WL:=WH;
for i=1 to datacount do begin
if CKA[i] then begin
H1:=0; H2:=0; L1:=0; L2:=0; H1P:=0; L1P:=0; H2P:=0; L2P:=0;
end;
if 高轉[i] then begin
if MACD[i]>H1 then begin
H2:=H1; H2P:=H1P; H1:=MACD[i]; H1P:=i;
end else if MACD[i]>H2 then begin
H2:=MACD[i]; H2P:=i;
end;
end else if 低轉[i] then begin
if MACD[i]<L1 then begin
L2:=L1; L2P:=L1P; L1:=MACD[i]; L1P:=i;
end else if MACD[i]<L2 then begin
L2:=MACD[i]; L2P:=i;
end;
end;
if CKZ[i] then begin
if MACD[i]>0 then begin
if H2P=0 then H2P:=H1P;
WH[H2P]:=1;
end else if MACD[i]<0 then begin
if L2P=0 then L2P:=L1P;
WL[L2P]:=1;
end;
end;
end;
POLYLINE(WH or WL,MACD) colorwhite;
收到 感恩
剩下兩者的週期 我再來處理
__________________
至誠能勝天下至偽
至拙能勝天下至巧
|
|
向版主報告此篇 |  |
|
2011-01-31 21:56 |
|
|
|  |
本站所有內容未經作者授權禁止轉貼節錄, 發表言論僅供參考勿作為投資決策依據。瀏覽本站請使用 IE 5.5 以上版本, 最佳瀏覽解析度 1024 x 768 全彩。
|
Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.
簡愛洋行 製作 Copyright 2003-. All Rights Reserved. 聯絡我們
|