2023-03-22|閱讀時間 ‧ 約 6 分鐘

【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免費版功能)

💫凱龍下單機|TradingView|MultiCharts|凱龍客製化
💫凱龍官方LINE @979qbbfo|凱龍官網:https://www.kevinwtf524.com/
分享至
成為作者繼續創作的動力吧!
Multicharts是台灣市佔率最高的程式交易軟體,將詳細介紹Multicharts語法Powerlanguage!
從 Google News 追蹤更多 vocus 的最新精選內容從 Google News 追蹤更多 vocus 的最新精選內容

發表回應

成為會員 後即可發表留言
© 2024 vocus All rights reserved.