COCO研究院

 找回密碼
 註冊
搜索
查看: 34058|回復: 10

分享AmiBroker的MACD紅綠柱狀線

[複製鏈接]
發表於 09-9-18 21:11 | 顯示全部樓層 |閱讀模式
剛才想要MACD紅綠柱狀線。
上網找了寫法。
分享給大家。
  1. //MACD - Moving Average Convergence Divergence v1
  2. //adapted from code by Tomasz Janeczko
  3. //ideas by Graham Kavanagh and Terry Magic
  4. r1 = Param( "Fast avg", 12, 2, 200, 1 );
  5. r2 = Param( "Slow avg", 26, 2, 200, 1 );
  6. r3 = Param( "Signal avg", 9, 2, 200, 1 );
  7. m1 = MACD(r1, r2);
  8. s1 = Signal(r1,r2,r3);
  9. difference = m1-s1;
  10. Plot( m1, StrFormat(_SECTION_NAME()+"(%g,%g)", r1, r2), ParamColor("MACD color", colorRed ), ParamStyle("MACD style") );
  11. Plot( s1, "Signal" + _PARAM_VALUES(), ParamColor("Signal color", colorBlue ), ParamStyle("Signal style") );
  12. Color=IIf(difference > 0,colorGreen,colorRed);
  13. Plot(difference, "MACD Histogram", Color, styleNoTitle | ParamStyle("Histogram style", styleHistogram | styleThick | styleNoLabel, maskHistogram ) );
複製代碼
macd.gif
發表於 12-1-13 01:13 | 顯示全部樓層
剛才有在別的主題上貼上自己修改的MACD碼。為了和更多人分享,在此也貼上自己用的MACD程式碼及產生的輸出圖。
MACD.png

中間是原本AmiBroker的MACD,下面是我MACD程式產生的圖形。DIF 及 MACD 線基本上一樣;DEF用PlotOHLC畫,所以會和Candlestick一樣粗;同時,除了顏色用正負區別外,同時也和前一個值比,往上與往下顏色會有些不同,所以光用看的,就可以知道DEF的方向。

程式碼如下:
  1. // ========== MACD Parameter ==========
  2. r1 = Param( "Fast avg", 12, 2, 200, 1 );
  3. r2 = Param( "Slow avg", 26, 2, 200, 1 );
  4. r3 = Param( "Signal avg", 9, 2, 200, 1 );

  5. // ========== MACD Calculation ==========
  6. MACDPrice = (C + H + L + C)/4;
  7. dif = EMA(MACDPrice, r1) - EMA(MACDPrice, r2);
  8. dea = EMA(dif, r3);
  9. def = dif - dea;

  10. // dif = MACD(r1, r2);
  11. // dea = Signal(r1,r2,r3);
  12. // def = dif -dea;

  13. // ========== DIF/MACD Plots ==========
  14. Plot( dif, StrFormat("DIF(%g,%g)", r1, r2), ParamColor("DIF color", colorRed ), ParamStyle("DIF style") );
  15. Plot( dea, "MACD" + _PARAM_VALUES(), ParamColor("MACD color", colorBlue ), ParamStyle("MACD style") );

  16. // ========== DEF "Thick" Histogram ==========
  17. // Set DEF color
  18. Color=IIf(def > 0,  IIf(def > Ref(def,-1), ColorRGB(128,255,128), colorGreen),IIf(def > Ref(def,-1), ColorRGB(255,160,160), colorRed));

  19. // Set DEF title and its value (no plot is drawn)
  20. Plot(def, _SECTION_NAME()  +_PARAM_VALUES() , colorGreen, styleHidden | styleHistogram | styleThick );

  21. // Plot DEF "thick" histogram using OHLC
  22. SetBarFillColor(Color);
  23. zero = IIf(IsEmpty(Ref(def, -1)), Null, 0);
  24. PlotOHLC(def, def, zero, zero, "Thick Histogram", Color, styleCandle | styleNoTitle | ParamStyle("Histogram style", styleOwnScale, styleOwnScale ) );

  25. GraphXSpace = 20;
複製代碼

評分

參與人數 1金錢 +2 收起 理由
lu0811 + 2 good~

查看全部評分

回復 支持 1 反對 0

使用道具 舉報

 樓主| 發表於 09-9-18 22:14 | 顯示全部樓層
抱歉。
剛才沒有發現顏色標反了。
外國人真奇怪,
上漲用綠的,下跌用紅的。
修正在下面。

  1. //MACD - Moving Average Convergence Divergence v1
  2. //adapted from code by Tomasz Janeczko
  3. //ideas by Graham Kavanagh and Terry Magic
  4. r1 = Param( "Fast avg", 12, 2, 200, 1 );
  5. r2 = Param( "Slow avg", 26, 2, 200, 1 );
  6. r3 = Param( "Signal avg", 9, 2, 200, 1 );
  7. m1 = MACD(r1, r2);
  8. s1 = Signal(r1,r2,r3);
  9. difference = m1-s1;
  10. Plot( m1, StrFormat(_SECTION_NAME()+"(%g,%g)", r1, r2), ParamColor("MACD color", colorRed ), ParamStyle("MACD style") );
  11. Plot( s1, "Signal" + _PARAM_VALUES(), ParamColor("Signal color", colorBlue ), ParamStyle("Signal style") );
  12. Color=IIf(difference > 0,colorRed,colorGreen);
  13. Plot(difference, "MACD Histogram", Color, styleNoTitle | ParamStyle("Histogram style", styleHistogram | styleThick | styleNoLabel, maskHistogram ) );
複製代碼



m1.gif
發表於 11-10-18 19:54 | 顯示全部樓層
本帖最後由 Sirius 於 11-10-18 07:59 PM 編輯

若需要柱體值的,最後一行補上以下這行即可
  1. Plot( difference , "BAR", Color, styleNoLine);
複製代碼
"BAR"那個柱體英文名稱,請自行改成自己想要的名稱

以上是幫oneman001大做的

評分

參與人數 1金錢 +2 收起 理由
oneman001 + 2

查看全部評分

發表於 11-10-18 20:09 | 顯示全部樓層
回復 3# Sirius
謝謝您
您人真好
發表於 11-10-18 22:40 | 顯示全部樓層
謝謝分享............
發表於 12-1-23 16:40 | 顯示全部樓層
謝謝您
您人真好。。。。。。。。。。。。
發表於 13-5-23 01:11 | 顯示全部樓層
真好!謝謝您分享。
發表於 13-5-24 08:51 | 顯示全部樓層
太棒了,很多希望是內建的,不用再搞東搞西
發表於 17-8-3 16:33 | 顯示全部樓層
謝謝大大.......剛來報到
發表於 17-8-11 15:12 | 顯示全部樓層
感謝版主的分享,謝謝
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

手機版|Archiver|站長信箱|廣告洽詢|COCO研究院

GMT+8, 24-12-23 18:22

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回復 返回頂部 返回列表
理財討論網站 |