前一篇海龜交易策略裡面有提到ATR(Average True Range) 真實平均區間,ATR常常被用來衡量目前市場的波動性 可以幫助交易者了解價格波動的幅度。
而Multicharts 裡面的avgtruerange函數 就是用來計算真實區間
以下是ATR的公式:
TR是一個反映價格波動幅度,首先先計算True Range,簡稱TR
當期的最高價(High)
當期的最低價(Low)
前一個交易日的收盤價(Previous Close)
TR的計算公式如下:
TR = Max[(High – Low), |High – Previous Close|, |Low – Previous Close|]
取三者之中的最大值
ATR是取TR平均值
ATR = [(前一天的ATR * (期間 – 1)) + 當日的TR] / 計算天數
ATR是從近期K棒波動來延伸設計的動量指標,加入均線的元素,形成了一個Keltner指標 公式如下
MA = AverageFC( Price, Length ) ;
ATR = NumATRs * AvgTrueRange( Length ) ;
UPLine= MA + ATR ;
DNline = MA – ATR ;
上通道就是均線加上N倍的ATR,下通道就是均線減去N倍的ATR
基本上 ATR就是一個濾網,站上UPLine買進多單 跌破 DNLine多單出場,比起單純用均線進出 更能減少交易次數和提升績效
以下是回測績效 (60min 2018~2023)
value1 = Average(c,45);
UPline = value1+AvgTrueRange(45)*2;
DNline = value1-AvgTrueRange(45)*1;
if c cross over UPline then buy next bar at market;
if c cross under DNline then sell next bar at market;
二行程式碼 就可以寫出績效往上的報酬率曲線 可見有研究價值
加入濾網 需要收盤價站上通道上緣 且突破前高才買進多單
if c cross over UPline then buy next bar at H stop;
if marketposition=1 then sell next bar at DNline stop;
表現又進步了一些,即使2022年空頭行情 也有正報酬的表現
最後再放上停損停利 我用1:1的方式
value1 = Average(c,45);
UPline = value1+AvgTrueRange(45)*1;
DNline = value1-AvgTrueRange(45)*1;
if marketposition=0 and c cross over UPline then buy next bar at H stop;
if marketposition=1 then sell next bar at DNline stop;
if marketposition=1 then sell next bar at entryprice – 200 stop;
if marketposition=1 then sell next bar at entryprice + 200 limit;
讀者可以試著改成純空單 或是多空雙向,用Keltner通道當濾網皆能產生不錯的效果,策略的核心本質是OK的 測試結果順勢的用法比逆勢較佳,做多的表現比做空好些。
發佈留言
很抱歉,必須登入網站才能發佈留言。