HMA (Hull Moving Average) Hull 移動平均線,是一條經過特殊處理移動平均線,和一般傳統的移動平均線計算方式不同。
HMA函數
HMA在一般的看盤軟體找不到這樣的指標,在Multicharts裡面內建指標也沒有內建函數。必須自行新增。函數如下
Inputs: price(NumericSeries), length(NumericSimple);
Vars: halvedLength(0), sqrRootLength(0);
if ((ceiling(length / 2) - (length / 2)) <= 0.5) then halvedLength = ceiling(length / 2) else halvedLength = floor(length / 2);
if ((ceiling(SquareRoot(length)) - SquareRoot(length)) <= 0.5) then sqrRootLength = ceiling(SquareRoot(length)) else sqrRootLength = floor(SquareRoot(length));
Value1 = 2 * WAverage(price, halvedLength);
Value2 = WAverage(price, length);
Value3 = WAverage((Value1 - Value2), sqrRootLength);
HMA=Value3;
HMA指標
n週期的Hull平均線是以「n÷2日WMA乘以2倍,然後減掉n日WMA,將所得結果以n的平方根日WMA平均」計算。從公式的定義來看,比較靠近近期的收盤價這一半給予比較高的權重 讓均線看起來比較貼近行情,改善了傳統均線反應過慢的缺點

HMA台指期策略
利用HMA來開發台指期交易策略 (希望使用的最佳化參數在2個以內,年化風報比大於1)
當收盤價站上HMA 就買進多單 跌破HMA就買進空單,這是均線基本的操作原理,先看看原型的表現如何
套用在60分鐘K
if Close cross over HMA(c,HullLen) then buy next bar at market;
if Close cross under HMA(c,HullLen) then sellshort next bar at market;

發現雜訊比較多 交易次數也太頻繁 也可能是K棒的周期太短
HMA台指期策略改良1
上面的策略回測中發現雜訊比較多 交易次數也太頻繁 也可能是K棒的周期太短的關係
稍微改良了條件 必須交叉往上且突破前一根K棒高點才做多,跌破HMA且破前一根K棒低點才放空
if Close cross over HMA(c,HullLen) then buy next bar at high stop;
if Close cross under HMA(c,HullLen) then sellshort next bar at low stop;
看起來權益曲線有所改善

HMA台指期策略改良2
把周期拉長到90分K ,HMA的參數重新最佳化一次

看起來的權益曲線會比較平滑 最大策略虧損報酬有來到9 平均的年化風報比是1.5

缺點是交易次數太多 可能被交易成本佔了許多獲利

多空單回測分析
策略的核心價值還可以 HMA有別傳統的均線有較敏感的反應,且長周期的K棒 似乎比較少雜訊,只用到了一個最佳化的參數
回測區間從2018-2024 多單的權益曲線比較平滑,也和這幾年是多頭行情有關

空單的權益曲線比較鳥 ,也許 選擇只做多不做空,也是一種改良的策略

到底是指標有價值 還是邏輯本身正確? 還是剛好就遇到了對的行情? 完整的程式碼 簡單到不行
if C > HMA(c,HullLen) then buy next bar at High stop;
if C < HMA(c,HullLen) then sellshort next bar at Low stop;
if DAYofMonth(Date) > 14 and DAYofMonth(Date) < 22 and DAYofWeek(Date)=3 then setexitonclose;
如果有看到這篇文章的你 也能把HMA帶回去研究看看, 有更理想的做法或套用到其他商品也有好表現 請記得和我分享!!
發佈留言
很抱歉,必須登入網站才能發佈留言。