奇狐社區論壇
在這個頁面顯示本主題全部的 11 個文章

奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- 問題交流 (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=28)
-- 有關macd突破0軸公式 (http://www.chiefox.com.tw/bbs/showthread.php?threadid=17634)


由 chungdune 在 2013-04-15 13:56 發表:

有關macd突破0軸公式

最近寫macd柱狀圖突破0軸對應k棒之高低點公式,參考下列文章
http://www.chiefox.com.tw/bbs/showt...&highlight=macd
源碼如下:
===========================================
VAR1:CROSS("MACD.MACD",0),LINETHICK;
VAR2:BARSLAST(VAR1)=1,LINETHICK;
VAR3:IF(VAR2,MAX(H,REF(H,1)),0),LINETHICK;
VAR4:IF(VAR2,MIN(L,REF(L,1)),0),LINETHICK;
STICKLINE(VAR2,VAR3,VAR4,10,1),LINEDOT,COLORWHITE;
STICKLINE(REFX(VAR2,1),REFX(VAR3,1),REFX(VAR4,1),10,1),LINEDOT,COLORWHITE;
===========================================

請問各位先進,可否讓公式只計算最近一次的生叉,太早的日期就不要了,謝謝。


由 cgjj 在 2013-04-15 14:58 發表:

回覆: 有關macd突破0軸公式

引用:
最初由 chungdune 發表
最近寫macd柱狀圖突破0軸對應k棒之高低點公式,參考下列文章
http://www.chiefox.com.tw/bbs/showt...&highlight=macd
源碼如下:
===========================================
VAR1:CROSS("MACD.MACD",0),LINETHICK;
VAR2:BARSLAST(VAR1)=1,LINETHICK;
VAR3:IF(VAR2,MAX(H,REF(H,1)),0),LINETHICK;
VAR4:IF(VAR2,MIN(L,REF(L,1)),0),LINETHICK;
STICKLINE(VAR2,VAR3,VAR4,10,1),LINEDOT,COLORWHITE;
STICKLINE(REFX(VAR2,1),REFX(VAR3,1),REFX(VAR4,1),10,1),LINEDOT,COLORWHITE;
===========================================

請問各位先進,可否讓公式只計算最近一次的生叉,太早的日期就不要了,謝謝。



那篇文章並非是求 "MACD突破0軸對應k棒之高低點"
也沒有必要去引用 "MACD.MACD" <== 會讓計算速度變慢

處理範例如下:(參數請自行帶入)

DIFF:=EMA(CLOSE,SHORT) - EMA(CLOSE,LONG);
DEA:=EMA(DIFF,M);
MACD:=2*(DIFF-DEA);
CKSP:=barslast(cross(MACD,0));
MH:ref(H,CKSP);
ML:ref(L,CKSP);
VERTLINE(CKSP=0) linedot;


由 chungdune 在 2013-04-15 15:30 發表:

回覆: 回覆: 有關macd突破0軸公式

引用:
最初由 cgjj 發表
那篇文章並非是求 "MACD突破0軸對應k棒之高低點"
也沒有必要去引用 "MACD.MACD" <== 會讓計算速度變慢

處理範例如下參數請自行帶入)

DIFF:=EMA(CLOSE,SHORT) - EMA(CLOSE,LONG);
DEA:=EMA(DIFF,M);
MACD:=2*(DIFF-DEA);
CKSP:=barslast(cross(MACD,0));
MH:ref(H,CKSP);
ML:ref(L,CKSP);
VERTLINE(CKSP=0) linedot;



報告版主,我沒把需求講清楚,不好意思
1.我的要求是"MACD突破及跌破0軸對應當根k棒及隔一根k棒,這兩根K棒中最高與最低點畫線"
2.只計算最近一次的突破及跌破0軸,太早的日期就不要了


由 cgjj 在 2013-04-15 16:32 發表:

回覆: 回覆: 回覆: 有關macd突破0軸公式

引用:
最初由 chungdune 發表
報告版主,我沒把需求講清楚,不好意思
1.我的要求是"MACD突破及跌破0軸對應當根k棒及隔一根k棒,這兩根K棒中最高與最低點畫線"
2.只計算最近一次的突破及跌破0軸,太早的日期就不要了



原碼:

DIFF
:=EMA(CLOSE,SHORT) - EMA(CLOSE,LONG);
DEA:=EMA(DIFF,M);
MACD:=2*(DIFF-DEA);
HH:=HLL:=L;
for 
i=datacount downto 2 do begin
  
if macd[i-1]<and macd[i]>0 then break;
end;
if 
i=datacount or i=1 then exit; //不足或尚未發生則跳離
MH:MAX(HH[i],HH[i+1]);
ML:MIN(LL[i],LL[i+1]);


由 chungdune 在 2013-04-16 23:13 發表:

感謝版主的協助


由 chungdune 在 2013-05-17 05:37 發表:

請問版主
若是改為:今日為MACD突破0軸或今日為MACD突破0軸的隔日,對應的k棒最高點畫線應該如何寫,謝謝。


由 cgjj 在 2013-05-17 13:29 發表:

引用:
最初由 chungdune 發表
請問版主
若是改為:今日為MACD突破0軸或今日為MACD突破0軸的隔日,對應的k棒最高點畫線應該如何寫,謝謝。



"對應的k棒最高點" 您是指那個位置? 線如何畫?


由 chungdune 在 2013-05-17 14:36 發表:

引用:
最初由 cgjj 發表
"對應的k棒最高點" 您是指那個位置? 線如何畫?


應該有兩條線
1.今日為MACD突破0軸,對應當根的k棒最高點畫線,向右延伸五天
2.今日為MACD突破0軸的隔日,對應當根的k棒最高點畫線,向右延伸五天


由 cgjj 在 2013-05-17 14:56 發表:

引用:
最初由 chungdune 發表
應該有兩條線
1.今日為MACD突破0軸,對應當根的k棒最高點畫線,向右延伸五天
2.今日為MACD突破0軸的隔日,對應當根的k棒最高點畫線,向右延伸五天



PP:=barslast(Not(MACD>0));
CK:=PP=1 or PP=2;
DRAWSL(CK,H,0,5,3) pxdn2 coloryellow;


由 chungdune 在 2013-05-17 15:50 發表:

引用:
最初由 cgjj 發表
PP:=barslast(Not(MACD>0));
CK:=PP=1 or PP=2;
DRAWSL(CK,H,0,5,3) pxdn2 coloryellow;



報告版主

1.畫線變成畫在指標區而非主圖區,請問如何修改?
2.因為要做成選股條件,因此只要今日(例如今天是2013/05/17)為MACD突破0軸或今日為MACD突破0軸的隔日的資料,其他之前日期就不要了,還有如何引用這兩個高點的數值?

謝謝


由 cgjj 在 2013-05-17 16:57 發表:

引用:
最初由 chungdune 發表
報告版主

1.畫線變成畫在指標區而非主圖區,請問如何修改?
2.因為要做成選股條件,因此只要今日(例如今天是2013/05/17)為MACD突破0軸或今日為MACD突破0軸的隔日的資料,其他之前日期就不要了,還有如何引用這兩個高點的數值?

謝謝



不是修不修改的問題
指標套在那個圖, 線就會畫在那圖中

是不是僅有今日的計算結果, 並不影響今日選股結果

ref(H,barslast(PP=1));
ref(H,barslast(PP=2));


全部時間均為台灣時間, 現在時間為18:42
在這個頁面顯示本主題全部的 11 個文章


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

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