淺談MACD小發現

2024/01/17閱讀時間約 5 分鐘
  • 文內如有投資理財相關經驗、知識、資訊等內容,皆為創作者個人分享行為。
  • 有價證券、指數與衍生性商品之數據資料,僅供輔助說明之用,不代表創作者投資決策之推介及建議。
  • 閱讀同時,請審慎思考自身條件及自我決策,並應有為決策負責之事前認知。
  • 方格子希望您能從這些分享內容汲取投資養份,養成獨立思考的能力、判斷、行動,成就最適合您的投資理財模式。

前陣子被YT演算法推薦了這篇: 點我

大約整理了3個重點:

  1. MACD指標本身其實是代表多空強度大小,而非網路上常說的多空訊號。
  2. 在一個時間格局中用在小周期較合適。
  3. MACD快線慢線和柱體分離時可以試著作為進場多空訊號。
在這裡先小小科普MACD算法

EMA(n)=(前一日EMA(n) × (n-1)+今日收盤價 × 2) ÷ (n+1)
EMA(m)=(前一日EMA(m) × (m-1)+今日收盤價 × 2) ÷ (m+1)
DIF=EMA(n)-EMA(m)
MACD(x)=(前一日xMACD × (x-1)+DIF × 2) ÷ (x+1)

大家看到這大串公式先別覺得眼花撩亂。

簡單來說,

就是用兩條不同EMA均線(現今普遍使用12,26EMA)相減得出一個值,接著再用一次EMA算法來算這個值,所以每根K棒都會有兩個值,因此很多K棒中將兩個值連起來就會得出兩條線,相減出來的就是DIF(差離值),另一條就是MACD,他們的相互關係就是我們現在常見的MACD指標。

順帶一提,有些看盤軟體MACD指標會有柱狀體的部分,那個是DIF-MACD的結果,也被稱為OSC。

科普結束。

看完覺得這想法蠻有趣的,於是可以利用XQ做一下小實驗。

影片中提到要搭配趨勢線使用,但趨勢線比較難呈現,且偏主觀,在這裡先撇除這因素

主要來試試看,如果主狀體在負值時,快速地向正數靠近時,勝率是否會提升?如左圖

raw-image

首先,我們先看一下,最基本的MACD進場。

input: FastLength(12), SlowLength(26), MACDLength(9); 
variable: difValue(0), macdValue(0), oscValue(0);

SetTotalBar((maxlist(FastLength,SlowLength,6) + MACDLength) * 4);

SetInputName(1, "DIF短期期數");
SetInputName(2, "DIF長期期數");
SetInputName(3, "MACD期數");

MACD_EMA(close, FastLength, SlowLength, MACDLength, difValue, macdValue, oscValue);
condition1 = {value1 > value2 and} value2 > value3;

Ret = difValue Crosses Below macdValue ;

這邊要注意,XQ內建MACD是使用XAverage做計算,而不是直接使用ema做計算,結果可能會有些微差異。

想知道差異詳情可以看這篇: 點我

進場寫好了,出場部分我們使用自己寫的,跌破20日低點出場,做回測。

回測結果如下:

raw-image

看起來回測結果沒有很好,所以再加上三個條件:

  1. 月營收連兩個月成長。
  2. 60均線在240均線之上。
  3. 五天成交量平均要>250張。

再做一次回測如下:

raw-image

可以發現到,時間加權報酬以及勝率皆有提升,獲利取線也好很多。

這時來到今天的主軸。

主狀體在負值時,快速地向正數靠近時,勝率是否會提升?

首先要做定義,怎樣算是從負值快速向正數靠近?

我給了這樣的條件:

第一天柱狀體負值 -> 第二天柱狀體比第一天柱狀體少了20% ->第三天柱狀體翻為正

input: FastLength(12), SlowLength(26), MACDLength(9);
variable: difValue(0), macdValue(0), oscValue(0);

SetTotalBar((maxlist(FastLength,SlowLength,6) + MACDLength) * 4);

SetInputName(1, "DIF短期期數");
SetInputName(2, "DIF長期期數");
SetInputName(3, "MACD期數");

MACD_EMA(close, FastLength, SlowLength, MACDLength, difValue, macdValue, oscValue);
value1 = average(close,60);
value2 = average(close,240);
condition1 = value1 > value2;
Ret = oscValue*1.2 > oscValue[1] and oscValue[1]*1.2 > oscValue[2] and oscValue[2] < 0 and oscValue[1] < 0 and oscValue > 0 and condition1 and average(volume,5) > 250 ;

回測結果如下:

raw-image

可以發現到,雖然時間加權報酬降低一些,但是勝率有顯著的提升!!

投資本來就有很多種方式。

有些方法低勝率,但只要獲利一次就可以蓋過前面的虧損。
有些方法則是高勝率求穩。

全看個人的能承受的曝險程度,沒有絕對的對或錯。

以此例來說,我們可以知道換成柱狀體快速提升的方法可以提高勝率,接下來就是尋找提升報酬或是讓勝率更高的條件。

今天的分享就到這裡~

謝謝大家


這裡會放上我的交易日常,研究~歡迎交流 動動手指追蹤是我產文的動力~ 粉專:https://www.facebook.com/richardchien66 IG搜尋:richard_invest_life 請多指教
留言0
查看全部
發表第一個留言支持創作者!