創富坊
配合大市走勢來選股的程式寫法
配合大市走勢來選股的程式寫法
(例子):
經過六月至七月的跌市,較多學員問的問題是,如何利用程式配合市況來選股,同時再做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才真正開始交易,是程式交易的優勢之一,而且數據是可免費網上下載,配合大市走勢來選股,所需要懂的語法也十分簡單,希望這對大家有幫助!