【Multicharts】【MACD策略】程式碼逐條解說

【Multicharts】【MACD策略】程式碼逐條解說

更新於 發佈於 閱讀時間約 6 分鐘
投資理財內容聲明

首先,我們先介紹MACD的公式及原理!

快線:12根K棒價格指數平均線

慢線:26根K棒價格指數平均線

macd: 快線-慢線

signal: 9根macd指數平均線

柱狀體:macd-signal


MACD最原始的策略

柱狀體由負值轉正,我們做多

柱狀體由正值轉負,我們做空

隨著時代的演進,MACD的運用早已變幻莫測

但由於今天最主要是要介紹Multicharts程式碼

我們今天就先以原始型態來做介紹


inputs: fastLength(12), slowLength(26), MACDLength(9);
vars: emaFast(0), emaSlow(0), macd(0), signal(0);

宣告「參數(inputs)」以及「變數(vars)」

在運作程式碼的時候不會改變的,我們稱作「參數(inputs)」

會隨著程式碼運作而改變的,我們稱作「變數(vars)」


emaFast = XAverage(close, fastLength);

我們利用Multicharts內建的XAverage()函數計算12天(使用已宣告參數fastLength)的收盤價(close)指數平均


emaSlow = XAverage(close, slowLength);

我們利用Multicharts內建的XAverage()函數計算26天(使用已宣告參數slowLength)的收盤價(close)指數平均


macd = emaFast - emaSlow;

我們將上兩段程式碼求得的快線(emaFast)減去慢線(emaSlow)

得到變數macd值


signal = XAverage(macd, MACDLength);

我們用上一段程式碼求得的macd值,用內建函數XAverage()做9天(使用已宣告參數MACDLength)做指數平均,得到變數signal


if macd > signal and macd[1] <= signal[1] 
  then buy next bar market;

我們利用「if...then...」運算式,寫入做多進場訊號

「若今日的macd變數大於今日的signal變數 且 昨日的macd變數小於等於昨日的signal變數,我們在下一根K棒用市價做多一口」

亦即當今日柱狀體(macd-signal)轉正值,而且昨日的柱狀體(macd-signal)小於等於0,我們進場做多單

即是macd黃金交叉signal,做多


if macd < signal and macd[1] >= signal[1] 
  then sellshort next bar market;

「若今日的macd變數小於今日的signal變數 且 昨日的macd變數大於等於昨日的signal變數,我們在下一根K棒用市價做空一口」

亦即當今日柱狀體(macd-signal)轉負值,而且昨日的柱狀體(macd-signal)大於等於0,我們進場做空單

即是macd死亡交叉signal,做空


由於台灣的看盤軟體習慣用柱狀體表達(macd-signal)

所以在這裡沒有用cross over以及cross under去表達

這樣能更生動的表達出柱狀體的概念!


這樣,我們就完整的解讀了MACD程式碼

之後我們可以用這樣單純的進出場條件

Multicharts去做績效回測

看看原始的MACD是不是真的能夠賺錢

並且使用Multicharts的強項最佳化參數,去修正我們的策略參數

當然還有不可或缺的停損停利以及交易濾網

都將在之後一一介紹!


最後把上面所有程式碼整理到這裡

方便各位投資朋友複製程式碼貼在PowerLanguage Editor上

inputs: fastLength(12), slowLength(26), MACDLength(9);
vars: emaFast(0), emaSlow(0), macd(0), signal(0);

emaFast = XAverage(close, fastLength);
emaSlow = XAverage(close, slowLength);
macd = emaFast - emaSlow;
signal = XAverage(macd, MACDLength);

if macd > signal and macd[1] <= signal[1]
  then buy next bar market;
if macd < signal and macd[1] >= signal[1]
  then sellshort next bar market;

尚未註冊TrdingView的投資朋友歡迎使用Kevin專屬註冊連結:

https://www.tradingview.com/?aff_id=131489

享一個月免費試用Premium帳號,到期後可享50%的續約優惠!

(即使不續約,仍可繼續使用TradingView免費版功能)


⭐目前凱龍承接三大項業務,歡迎洽詢:

  1. 金融量化系列|凱龍下單機租用 & TradngView & MultiCharts 程式碼諮詢撰寫
  2. Line官方系列|凱龍Line官方模組租用 & Line官方機器人全系列諮詢架設
  3. 網站SaaS平台|凱龍雲端應用 & 網站SaaS平台諮詢架設

⭐凱龍Line官方:@979qbbfo

⭐凱龍官方網站:https://kevinwtf524.com/

⭐instagram:https://www.instagram.com/kevinwtf524/

⭐YouTube:https://www.youtube.com/@kevinwtf524

avatar-img
Kevin 凱龍
21會員
17內容數
嗨!我是凱龍負責人Kevin - ⭐️凱龍金融量化(期貨程式交易看這裡) 凱龍下單機 $545起/月 - ⭐️凱龍商城(餐飲業線上訂餐看這裡) 凱龍訂餐模組 $690/月 - ⭐️專案客製(各類客製專案看這裡) 金融量化策略撰寫、Line@機器人及各類網站客製架設 - ⭐凱龍官方Line:@979qbbfo
留言
avatar-img
留言分享你的想法!