程式交易在基金投資上的應用之五~ MFO資金流指標翻多

By | 2017-07-20

把程式交易應用在基金投資時, 最大的困擾是,基金投資的Benchmark是各商品的ETF及指數,這些Benchmark除了開高低收成交量之外,找不到更多的數據可以加入運算,因此,只能從這五個數據中加以運算,找出數字間特殊而有意義的關係,今天要跟大家介紹的MFO資金流震盪指標,就是這樣的應用。

首先我們先來看以下的這張圖

2017071901

我們可以透過近兩根K棒的高低點位置,計算出多頭與空頭各自施展的最大力量,然後把兩個力量相減當分子,把這兩個力量相加當分母,相除之後再乘以成交量,這樣算出來的值就是多空相抵後的力量佔多空力量的總能量。再去計算一段期間這個總能量的總合佔該期間成交量的總合,這就是MFO資金流震盪指標。

2017071902

這個指標的數字如果從零以下突破零,往往代表的是一個長期下降趨勢的轉變,所以還蠻適合作為波段操作的反轉訊號。

於是我把這個指標改寫成一個基金操作的策略腳本

input:period(20,"計算天期");

if ((high-low[1])+(high[1]-low))*volume <> 0
then 
value1= ((high-low[1])-(high[1]-low))/((high-low[1])+(high[1]-low))*volume
else
value1 = 0;

value2= summation(value1,period)/summation(volume,period);

if value2 crosses over 0
and GetSymbolField("tse.tw","收盤價","W")
>average(GetSymbolField("tse.tw","收盤價","W"),13)
then ret=1;

拿這個腳本去回測加權指數,過去五年只有七次進場的機會,但有六次是獲利出場,代表這個腳本在預測反轉的時點是有其獨到之處,如果拿去測ETF指標組,一樣是設定40天後出場,過去五年的回測報告如下

2017071903

 

這個腳本能過濾大部份的反彈,但濾不掉大空頭市場。