交易策略的形成過程~以多次到頂而破

By | 2016-03-14

這次AlphaGO的三勝一敗,讓人工智慧,再次回到聚光燈下。

我在開發交易策略的過程裡,深深體會人與機器之間那種1+1>2的力量,我認為人們運用機器大量運算,測試,不斷地學習改進,是找出有價值交易策略的一條更行之道。

把程式交易視為毒蛇猛獸,跟把人工智慧視為機器統治人類的前兆一樣,無法改變及面對機器運算能力持續進步的趨勢。

善用機器愈來愈強大的運算能力,可以讓人們收集整理分析及決策的力量,也跟著變大。

今天我想舉一個交易策略的形成過程作例子,說明機器的強大運算能力,可以協助我們做到什麼地步。

我經常跟大家分享的一個交易策略叫多次到頂而破。

一開始是我師父讓我把創新高的股票用Excel整理出來,每天送給他,後來我發現,不是每檔創新高的,接下來就一定會創新高,但那些衝了幾次都沒衝過去的高點,一旦衝過去了,後面都還會漲,所以我就寫了一個多次到頂而破的交易策略,腳本如下:

input:day(100);
input:band1(4);
setinputname(1,"計算區間");
setinputname(2,"三高點之高低價差");
value1=nthhighest(1,high[1],day);
value2=nthhighest(3,high[1],day);
value4=nthhighestbar(1,high,day);
value5=nthhighestbar(3,high,day);
value6=nthhighestbar(5,high,day);
value7=absvalue(value4-value6);
value8=absvalue(value5-value6);
value9=absvalue(value4-value5);
condition1=false;
if value7>3 and value8>3 and value9>3
then condition1=true;
value3=(value1-value2)/value2;

if value3<=band1/100
and close crosses above value1
and volume>2000
and condition1
then ret=1;

這個腳本是去找過去100根Bar中的最高三個點,而且高點之間差距都超過三根bar,且三個高點最高與最低差不超過4%

結果挑出來的股票例如昨天是跳出志聖2467與帛漢3299,跟我心理想的多次到頂而破有不少的差距,我心中的是像下面這張圖的樣子

031301

 

後來這個腳本後來經過我同事的修改,變成以下的腳本

input:HitTimes(3); setinputname(1,"設定觸頂次數");
input:RangeRatio(1); setinputname(2,"設定頭部區範圍寬度%");
input:Length(20); setinputname(3,"計算期數");

settotalbar(300);
setbarback(50);

variable: theHigh(0); theHigh = Highest(High[1],Length); //找到過去其間的最高點
variable: HighLowerBound(0); HighLowerBound = theHigh *(100-RangeRatio)/100; // 設為瓶頸區間上界
variable: TouchRangeTimes(0); //期間中進入瓶頸區間的低點次數,每跟K棒要歸0
 
//回算在此區間中 進去瓶頸區的次數 
TouchRangeTimes = CountIF(High[1] > HighLowerBound, Length);
 
if TouchRangeTimes >= HitTimes and ( q_ask> theHigh or close > theHigh) then ret=1;

這個腳本就是XS雲端策略中心裡的多次到頂而破的腳本。

不過透過這個腳本挑出來的股票,勝率還是很不穩定。

 

後來,我看到底下這本書

大漲的訊號

書中有特別強調,要挑這些創新高的股票時,應該要留意其基本面是很穩固的,創新高代表的是更上一層樓的意思,因此我就不再把1500檔股票去拿去跑這個腳本,也是改成用過去五年每年ESP都超過0.5元的選股條件先把1500檔縮小範圍,然後再去跑,這樣目標族群就從1500檔縮小到484檔

031401

 

透過這樣的過濾條件,在多頭市場這個腳本的勝率已經令我滿意,但在空頭市場還是當會追高後被套,於是我再設定,只有在加權指數週線在月線之上時,這個策略才開始執行。

到這裡,我算是完成了一個令我覺得還OK的交易策略。

回顧整個交易策略的演進,其實就像是下圖一般,不斷演進的過程,

策略的形成

 

這個過程裡,最大的敵人其實就是懶惰,我常被反應照某個腳本去賭會輸錢,然後呢? 其實該做的是找出那個腳本輸錢的股票具有什麼特色? 進一步根據這些特色去調整腳本,看是加濾網,還是調整腳本,最不該做的事情是: 放棄。

 

我認為,放棄電腦強大的運算能力,想靠經驗及直覺在市場上討生活的人,會像末代武士一樣,刀法很厲害,但別人都用槍。