配合大市走勢來選股的程式寫法

配合大市走勢來選股的程式寫法

(例子):

NEW 288

 

經過六月至七月的跌市,較多學員問的問題是,如何利用程式配合市況來選股,同時再做BACKTEST。假設大家希望恆指在20EMA之上的日子,才買入創52週新高的股票,又或恆指由高位回落30%,又或50%,才買入創52週新低的股票,這些準則其實很簡單便能利用程式寫出來,Amibroker中,foreign(ticker, datafield)這個語法便能做到。

 

以上述的作例子,AFL 的寫法如下:

 

HSIClose = Foreign( “^HSI”, “C” );

TimeFrameSet( inweekly);

ABC =C>REF(HHV(H,52),-1);

TimeFrameRestore();

ABC = TimeFrameExpand(ABC, inWEEKLY);

condition = ABC AND C>O AND C > Ref (C, -1) AND H > Ref (H,-1) ;

Filter= condition AND HSIClose > EMA(HSIClose, 20);

 

 

恆指在20EMA之上的日子,才買入創52週新高的股票,寫下這個準則來選股,那恆指在20EMA以下的日子程式便不會選出股票,當然也可以加上BUY、SELL的準則,即買入及沽出的準則來為以上的選股方法做測試(當然這個只是例子,創52週新高的股票大多是缺乏成交的,未必可以做實際交易時的選股準則!)

 

究竟恆指處於什麼情況下才適合選股? 這個其實利用程式便能很容易做BACKTEST。也可特別留意大跌市的日子,若在過去十年中,比如在2008年金融海嘯期間,又或過去的兩個月等等日子,恆指究竟是處於那種情況? 利用程式寫出來,避免在這種情況下選股,看看是否能提高勝算?

 

又或反過來,在恆指大跌後,比如設定恆指創10日新低後,買入跌穿保歷加通道底部同時成交量急增的股票,這些利用以上的FILE,大家也可以自行作出修改!

 

AMIBROKER的使用步驟:

利用Amibroker的「Auto- update quote(AmiQuote)」功能更新股票的基本數據,選Yahoo Current ( current day only, stocks, funds , US&international(50))

 

new 3

但留意你的選股LIST中必需有「^HSI」這個代號,這樣才能同時更新恆指的數據。

 

開啟Amibroker的Formula Editor,再把以下的afl file 貼上

new 4

HSIClose = Foreign( “^HSI”, “C” );

TimeFrameSet( inweekly);

ABC =C>REF(HHV(H,52),-1);

TimeFrameRestore();

ABC = TimeFrameExpand(ABC, inWEEKLY);

condition = ABC AND C>O AND C > Ref (C, -1) AND H > Ref (H,-1) ;

Filter= condition AND HSIClose > EMA(HSIClose, 20);

 

可看以下解釋:

NEW-28

 

再根據圖中設定來選股

 

new 6

 

new 7

能自行做BACKTEST才真正開始交易,是程式交易的優勢之一,而且數據是可免費網上下載,配合大市走勢來選股,所需要懂的語法也十分簡單,希望這對大家有幫助!

 

富昌金融集團聯席董事麥振威

電郵: paul.mark881@gmail.com