更新於 2024/08/16閱讀時間約 5 分鐘

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

首先,我們先介紹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專屬註冊連結:
享一個月免費試用Premium帳號,到期後可享50%的續約優惠!
(即使不續約,仍可繼續使用TradingView免費版功能)

⭐目前凱龍承接三大項業務,歡迎洽詢:
  1. 金融量化系列|凱龍下單機租用 & TradngView & MultiCharts 程式碼諮詢撰寫
  2. Line官方系列|凱龍Line官方模組租用 & Line官方機器人全系列諮詢架設
  3. 網站SaaS平台|凱龍雲端應用 & 網站SaaS平台諮詢架設
⭐凱龍Line官方:@979qbbfo
⭐凱龍官方網站:https://kevinwtf524.com/
分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.