配合大市走勢來選股的程式寫法
創富坊
程式交易 www.quants.hk (導師: 財經書藉作家: 麥振威)・2015-07-25
配合大市走勢來選股的程式寫法 (例子): 經過六月至七月的跌市,較多學員問的問題是,如何利用程式配合市況來選股,同時再做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)) 但留意你的選股LIST中必需有「^HSI」這個代號,這樣才能同時更新恆指的數據。 開啟Amibroker的Formula Editor,再把以下的afl file 貼上 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); 可看以下解釋: 再根據圖中設定來選股 能自行做BACKTEST才真正開始交易,是程式交易的優勢之一,而且數據是可免費網上下載,配合大市走勢來選股,所需要懂的語法也十分簡單,希望這對大家有幫助!