利用ASI選股及即市交易期指

潮流特區
程式交易 // 麥振威 ・2016-01-04

假期有學員問及ASI這個指標,其實過去在不同的場合也有介紹過,ASI這指標由J. Welles Wilder所創,看到這個名字,大家自然會想起由他研創的RSI、ATR等指標,事實上他在1978年撰寫的《New Concepts in Technical Trading Systems》所介紹的技術指標,至今都已十分流行。而ASI卻是較少人採用的,根據J. Welles Wilder所指,他希望「創造」一個價格,比真實價格更具代表性及預測性的,這才是他心目中「真實」的價格,更重要的是這個價格能讓使用者去更有效地判斷價格突破壓力或跌穿支持的真偽。     ASI的用法在網上大家應可找到很多很多,公式也不難找到,而這個指標在Amibroker中也是內置的,故不難應用。常見的用法是利用ASI來選股,找出ASI由負數轉為正數的股票,若大家運用這個簡單的方法每天在「港股通」中的300多隻股票中挑選股票,應發現有一定的效用。當中以港交所(0388)在2014年11月及2015年4月的例子是十分明顯的,又或其他的股票如騰訊(0700)也是如此。     但請看看銀娛(0027),去年ASI由負數轉為正數時,卻是股價見頂回落的時間。不同的股票會有不同的特性,一直認為不可能同一種分析方法應用在市場上不同的股票之上,究竟那些股票適合用那些工具去分析,利用程式其實可以在很短的時間便能找到答案。    至於該學員問及如何利用Amibroker編寫ASI由負數轉為正數的選股策略,答案如下: function SwingIndex( Limit ) { Hy = Ref( H, -1 ); Cy = Ref( C, -1 ); Ly = Ref( L, -1 ); Oy = Ref( O, -1 ); r1 = abs( H – Cy ); r2 = abs( L – Cy ); r3 = abs( H – L ); r4 = abs( Cy – Oy ); k = Max( r1, r2 ); r = IIf( r1 >= Max( r2, r3 ), r1 – r2/2 + r4/4,     IIf( r2 >= Max( r1, r3 ), r2 – r1/2 + r4/4,          r3 + r4/4 ) ); return IIf( r == 0, 0, 50 * ( ( C – Cy + 0.5 * ( C – O ) + 0.25 * ( Cy – Oy ) ) / r ) * k/Limit ); } function AccumulationSwingIndex( Limit ) {  return Cum( SwingIndex( Limit ) ); } Filter = AccumulationSwingIndex( Param(“Limit", 100, 1, 1000 )) > 0 AND Ref(AccumulationSwingIndex( Param(“Limit", 100, 1, 1000 )), -1) <= 0;    當然除了ASI這個指標外,大家可自行加上其他的選股準則來配合一併分析,若然懂得利用Amibroker,這類簡單的策略應不難做測試,大約十多分鐘應已能完成。   至於應用在期指的即市交易又如何?單單運用ASI由負數轉為正數這種方法即市交易期指,若只炒開市「第一轉」的話,其實有一定參考價值? 分析的準則分為四類: 開市後ASI由負數轉為正數 – 向好 開市後整個上午市況中,ASI皆為正數 – 向好 開市後ASI由正數轉為負數 – 向淡 開市後整個上午市況中,ASI皆為負數 – 向淡     若加上其他分析工具如成交量等又是否更有參考價值? 過去若沒有程式,要測試這類簡單的策略其實真的需要很長時間,但若懂得應用,以下的方法其實不難測試,而且更可加上自己的經驗,比如當日是裂口高開還是裂口低開? 高開/低開的幅度有多大? 開市首分鐘上升/下跌的幅度有多大? 隔晚美股的走勢如何? 內地股市開市首分鐘的走勢如何? 等等等,利用程式把不同的準則加進策略中,熟習程式運用的學員們應不會覺得太困難,而且從中大家應會發現更多更有效的交易策略!    

以限價單做AutoTrade減低Bid/Ask Spread影響

潮流特區
程式交易 // 麥振威 ・2015-09-17

附圖是今天(2015年9月17日)期指的1分鐘圖走勢,可看到開市第一個MACD訊號,以及波幅收窄後的第一個MACD訊號也能賺到錢。但可以只有在2015年是這樣,今年港股及期指的波幅比過往大很多,若同樣策略放在2014年,則會是虧損,特別是計及買賣差價及滑價的影響後。 早前建議大家在Back-test時單邊佣金設定在200元,這假設是交易的佣金是20元,而剩下的180元則全是是買賣差價及滑價的影響。 在課堂上也有建議大家以這個簡單的策略做測試,也可自行修改策略,便是希望大家發現,由於2014年波幅不及2015年,在計及買賣差價及滑價,根本如何去改動策略也難以賺錢,除非能有方法減低買賣差價及滑價的影響。 事實上,利用程式寫出一個交易策略,當發出入市訊號後,要確定能真正「成交」,這難晚需要追價,比如設定追價10點,這當然不是每次高於現價10點入市,追價10點是確認能成交的做法,最終高追的幅度平均約1至2點,但期指本身買賣差價已有3點,加上這高追的1至2點,單邊的「成本」(未計佣金)已達到4至5點,這是AutoTrade的問題之一,也因而令很多能賺錢的策略變成虧損。 當然某些Trader想出的策略便是因應這問題而改良策略,正如在個人書藉中曾提及「211」的方法,受買賣差價及滑價影響是較其他策略為低的。 在課堂上先叫學員們做macd第一個入市訊號策略的測試,便是希望明白這一點。而在課堂完結後便會再約每位學員,會再教大家如何利用Amibroker設定以限價單做AutoTrade,以配合大家個人的策略。 要寫出這類策略其實不算太困難,先寫好大家的策略,再後加這部份便可以! 這方法應對很多的策略也有效,應會發現一些因計及買賣差價及滑價而不能賺錢的策略,回報會改善很多!

入市時間改為「波幅收窄後第一個MACD入市訊號」效果更好?

潮流特區
程式交易 // 麥振威 ・2015-09-17

有關開市第一個MACD訊號的策略,也有學員電郵詢問,其實在課堂上講解了一個思考交易策略的概念,入市的時間最好是即將出現大升/大跌的時間,而即將出現大升/大跌的時間大多便是「波幅收窄」的時間。 很可能你的策略只有「五成中」,但無論買升還是買跌,若都選擇在波幅收窄的時間入市,估錯方向時可在有限幅度便止蝕,但獲利時則可賺取更大幅度的利潤。比如結果是40點止蝕,80點止賺,在20個交易日中,只有一半能獲利,最終在未扣除交易費用下,獲利的幅度也有400點。 另一個好處是波幅收窄後出現的升/跌浪,只要估對方向,坐倉的機會是相對較少的,升浪/跌浪便急速地運行,這減低了入市後坐倉的壓力。 我們假設開市後第一個MACD的入市訊號也只有「五成中」,但是否又可以稍作修改? 把「開市後第一個MACD的入市訊號」改為「開市後波幅收窄後的第一個MACD入市訊號」才入市交易? 如何介定波幅收窄,某些學員喜歡用保歷加通道的BANDWIDTH,筆者建議也可以用SD與五支陰陽燭的平均SD作比較,如附圖(一)是本日期指的1分鐘走勢,開市後第一個MACD入市訊號出現便造淡,結果能賺錢,但改為「開市後波幅收窄後的第一個MACD入市訊號」才入市也同樣能賺錢。     不過,大家再看看附圖(二),當日若在開市後第一個MACD入市訊號便入市,即使能獲利,幅度也十分有限。但若改為「開市後波幅收窄後的第一個MACD入市訊號」才入市,則當日獲利的幅度卻大很多! 當然這個只是建議的思考策略模式,若在設計個人交易策略時遇上問題,也歡迎學員們隨時找我研究!

2015年每天只交易第一個MACD訊號也能賺錢?

潮流特區
程式交易 // 麥振威 ・2015-09-15

近日有學員問及,若2015年每天只交易第一個MACD(12,26,9)的金叉或死叉訊號好像也能賺錢,原來這麼簡單的策略在2015年也能有不俗回報! 但其後他再測試2014年的數據卻又發現虧損收場。 附圖是在2015年每天只交易第一個MACD(12,26,9)入市訊號的BACK-TEST REPORT,結果是2015年1月2日至9月14日獲利41.77%,15萬元本金交易1張大期,資金累增至212652元(扣除手續費手及滑價),但2014年卻虧損34.76%。 (2015年回報) (2014年回報) 在這當然不是指只交易第一個MACD入市訊號便能賺錢,這絕不可能!如大家自行測試,也可看到雖在2015年能賺錢,但部份交易坐倉的幅度達200點或以上,在真實交易時根本承受不了這份壓力。 以下是利用Amibroker簡單地寫出每日只交易第一個MACD入市訊號的方法, 1)先開啟Amibroker的Formula Editor   2) 把以下的language貼上: SetPositionSize(1, spsshares);BuyCondition = Cross(MACD(12, 26), Signal(12, 26, 9));ShortCondition = Cross(Signal(12, 26,9), MACD(12, 26));CrossCondition = BuyCondition OR ShortCondition; CrossTotal = Sum(CrossCondition, BarsSince( DateNum()!=Ref(DateNum(),-1)));Buy = BuyCondition AND Ref(CrossTotal, -1)==0;Sell = 0 OR TimeNum() >= 160000;Short = ShortCondition AND Ref(CrossTotal, -1)==0;Cover = 0 OR TimeNum() >= 160000; ProfitPercent = Optimize(“WinPercent", 1.6, 0.2, 2, 0.1);LossPercent = Optimize(“LossPercent", 1.2, 0.2, 2, 0.1); ApplyStop(stopTypeProfit, stopModePercent, ProfitPercent);ApplyStop(stopTypeLoss, stopModePercent, LossPercent);   3) 在backtest前根據以下做設定: 一個十分簡單的策略,在2015年又好像比很多的策略回報更好? 其實,既然單單是交易每天第一個MACD入市訊號也能在2015年賺錢,是否能根據這個觀念去作出修改? 藉此想出一套個人的交易策略? 比如出訊號後把入市位介定在其他水平,如平均線等? 又或將1分鐘圖表改為3分鐘、5分鐘或10分鐘的圖表? 另外,是否每天也需要交易? 如附圖中便是將這個簡單得不可再簡單的策略,加上與上日收市的MACD作比較這個準則,藉此剔走一些入市訊號,結果2015年1月2日至9月14日獲利由41.77%提升至182.37%,15萬元本金交易1張大期,資金累增至423547元(扣除手續費手及滑價)。   以下是利用Amibroker簡單地修改上述策略的寫法: SetPositionSize(1, spsshares);BuyCondition = Cross(MACD(12, 26), Signal(12, 26, 9));ShortCondition = Cross(Signal(12, 26,9), MACD(12, 26));CrossCondition = BuyCondition OR ShortCondition; CrossTotal = Sum(CrossCondition, BarsSince( DateNum()!=Ref(DateNum(),-1))+1);Buy = BuyCondition AND Ref(CrossTotal, -1)==0;Sell = 0 OR TimeNum() >= 160000;Short = ShortCondition AND Ref(CrossTotal, -1)==0;Cover = 0 OR TimeNum() >= 160000; ProfitPercent = Optimize(“WinPercent", 1.6, 0.2, 2, 0.1);LossPercent = Optimize(“LossPercent", 1.2, 0.2, 2, 0.1); ApplyStop(stopTypeProfit, stopModePercent, ProfitPercent);ApplyStop(stopTypeLoss, stopModePercent, LossPercent); 當然這個也只是作參考,並不是單單這樣便能賺錢! 在課堂上向來也鼓勵學員多嘗試,如上述策略是每天開市後的第一個MACD入市訊號,那若然把策略改為每天「正股市場」開市後的第一個入市訊號,結果又會如何?   利用程式的好處就是可以自行去測試,再加上自己經驗得來的交易觀念去修正任何一個策略,繼而進行程式交易。不過在這想提醒一點,2015年港股及期指的波動情況確實比過去五年中任何一年更大,這也令不少Trader的策略在2015年的回報與過去數年不同(當然有些高手年年也大賺的!)。 此外,在這想指出一個問題,2015年港股及期指的波動情況與過去數年不同,相信滬港通的推出是其中一個原因,這點在滬港通剛推出時在講座中提及,但凡一些政策上的轉變,也會令市場的波動產生變化,正如2011年推出期指延長交易時間,大家在設計交易策略時便常遇到一個問題,策略放在2015、2014、2013、2012、2011年也可以賺錢,但在2010及之前的年份表現卻不同,這便是政策令市場波幅改變的結果。 如何去解決這個問題,如何在新政策推出後再修正個人的交易策略,這方面在課堂中會與大家探討!

利用Single Trend Index 即市交易期指的方法以及在2015年7月份的表現

潮流特區
程式交易 // 麥振威 ・2015-08-10

運用Single Trend Index 即市短炒期指 指標的用法如下: 運用的建議是期指即市(1分鐘)圖表 全日無論盈/虧只交易最多一次 假設30點博80點 1500(下午3點) 後的訊號不入 造好準則: 1)裂口高開(開市價與昨日收市價對比) 2)(黑線回至零線下) 3)(黑線重回零線上同時出現綠色BAR)     造淡準則: 1)裂口低開(開市價與昨日收市價對比) 2)(黑線回升至零線上) 3)(黑線重回零線下同時出現紅色BAR)   以下是七月份各日的入市訊號及盈/虧: 以一張期指計算,扣除交易費用後,獲利約27000元。 指標的公式及AFL file在課堂上已派發,在這希望用一個簡單的示範給學員看看,而不是強調有一個必勝指標,在課堂上已不只一次強調,獲利率是多少不是重點,獲利率達七成的方法能賺錢,獲利率只有五成的方法也能賺錢,在這裏示範的方法是用30點博80點,即1博2以上,但不少Trader做交易時,真實做出來,可能根本便是2博1,甚至3博1,即賺時只賺30點至40點,但輸時卻輸60點,甚至逾百點,這樣做即使獲利率有七成以上,也很難賺錢,很多學員也說我的交易策略並不是如此,但其後再看看自己的真實交易記錄,卻又發現賺時往往只有數十點,但輸時卻逾百點。最重要的是,在22個交易日中,只交易了18次,在課堂及講座上已不只一次強調,交易次數越多,成本便會很大,過量的交易,要賺錢可說極困難。 任何方法也有連續虧損的時候,在這post上每日的圖表及入市位,並不是說這個方法有多厲害,公式及方法也公開了給學員,也預期學員們必能改得更好。在每個交易日中也顯示了盈虧,最大坐倉幅度一欄的括弧( ) 便是當時帳面虧損最大的點數,數據也派了給所有學員,大家也可以自行做Back test,大家可看到七月份首數個交易日獲利已很高,但可以肯定不可能每月也是這樣,只是剛好七月份首數個交易日的波幅較大,再看看7月10日至7月13日,以及7月20日至7月24日,這些交易日裏不是「沒有入市訊號」便是錄得虧損,這些情況有可能在某些月份會出現在月初,也可能是月中,又或月尾,不可能全部也預測得到的,即使是利用程式做全自動交易,遇上這些日子,不少人便會將交易準則修改。又或如7月31日,明明帳面已獲利50點,既然只是設定了30點止蝕,那獲利50點為什麼不先平倉?  要堅持做到既定的原則如1博3,即使是用程式交易,仍是不斷的改、改、改,在這情況下,無論任何的交易方法,即使你backtest做得如何詳細,到真實交易時也會賺不到錢,這根本便是心理的問題。 這方法是在大波幅的日子賺錢,希望賺得最盡,其餘小波幅的日子可以沒有入市訊號,虧損也設定在30點,當然80點獲利目標也只是例子,大家也可以作出修改。 此外,課堂上已說明了,指標的參數也可以修改,Single Trend Index是用以找出單邊市的指標,故此大家絕對可以用以配合你個人的交易策略來運用。而且只要細心留意以下每個圖表,某些日子在裂口高開/低開後是很快便回補了的,這些日子的入市準則又是否可以作出修改? 配合Dynamic Trader Oscillator 、Alligator Indicator、Zero Lag MACD、 Market Facilitation Index 去分析又是否更好? 不同的指標也有不同的特性,根據它的特性來配合個人用經驗設計的交易策略來一併做分析才是最好的。   (7月2日至7月31日)    

【如何分辦即市中的「單邊市」及「上落市」】

潮流特區
程式交易 // 麥振威 ・2015-08-05

如何分辦單邊市及上落市,是課堂上被問及最多的問題,其實過去也曾在課堂上講解過幾種分析方法。 為什麼很多Trader也想解決這個問題 ? 原因是,應該大家也發現最簡單的如MACD的快線升穿慢線及快線跌穿慢線的傳統買入及沽出訊號,其實也有參考價值的,問題是窄幅上落的市況中,MACD的買入及賣出訊號會頻繁地出現,很多時候,MACD快線升穿慢線後,遇上的只是很短暫的升浪,其後又再度下跌,這段時間入市便變得較難獲利。(如附圖) 但若然可預測何時會出現較大幅度的升浪/跌浪,簡單的用MACD的傳統買入訊號也能藉此獲利。(如附圖) 當然沒有任何方法是百分百準確的,但為了方便學員使用,我們利用課堂上教授過的方法,編寫了一個指標 – Single Trend Index,記緊還是要再強調,沒有任何指標是完美或最好的,也沒有任何指標是必勝的,我們不希望將任何的指標「神化」,什麼用了它便可全職交易,從此發達,這根本便不可能! 而這指標只是利用我們的一些交易經驗,把它編寫成指標方便大家使用,指標的公式也會在課堂上公開,也建議大家可以憑藉個人的經驗把它改得更好! 指標的用法如下: 運用的建議是期指即市(1分鐘)圖表 1)在零線之上出現「綠色」,代表升浪!2)在零線之下出現「紅色」,代表跌浪! 最重要的是,留意: 3) 在零線之上,出現「綠色」及「黑色」,這代表單邊升市出現的機會較高,可配合其他技術指標入市造好! 4) 在零線之下,出現「紅色」及「黑色」,這代表單邊跌市出現的機會較高,也可配合其他技術指標入市造淡! 如8月4日,今天可以簡單的劃分四個較大的升/跌浪   1)開市初段的急升(9:15至9:42)2)其後的急跌(9:45至10:08)3) 全日最大幅度的升浪(10:08至14:06)4)其後的跌浪 若用Single Trend Index,(1)、(3)的升浪及(4)的跌浪也能把握到的,至少能判斷出當時己屬即市中的單邊市況,特別是全日最大幅度的升浪最重要,而(2)的跌浪,則指標的顯示明顯地「滯後」了。 當然指標不可能百分百預測到每一個大升/大跌浪,但至少希望全日最大幅度的單邊升/跌市可以在即市中提早找出來!近期也會每天收市後把這指標的分析結果在facebook的專頁post出來! facebook專頁: https://www.facebook.com/pages/%E7%A8%8B%E5%BC%8F%E4%BA%A4%E6%98%93-Trader-Training/195881223903867  

【Acceleration Oscillator 指標過去三天合共獲利逾百點???】

潮流特區
程式交易 // 麥振威 ・2015-08-02

自介紹了Bill William 所研創的指標包括Dynamic Trader Oscillator及 Alligator Indicator後,越多越多電郵問及有關Bill William的指標。其實個人覺得此君有點像Welles Wilder(RSI始創人)或Larry William(%R始創人),研發了很多的技術指標,是否每一個指標都有實用價值,大家需要自行判斷。 近日便有讀者來信問及有關Bill William研創的另一個指標- Acceleration Oscillator,也表示近期利用這個指標,在七月份獲利不俗,同時問這個指標是否可以編寫成一套策略進行程式交易。是否能獲利,筆者沒有去印證,也沒有這個必要! 還未回答他前也要再強調,沒有任何一個技術指標當用了後便立即能賺錢的,要明白它的原理,也要觀察它的特性,看看特性是否能配合你個人的交易策略,是否用了它可以修定你個人策略的部份缺點,這樣做指標才會有價值。 此外,Acceleration Oscillator不是Amibroker內置的指標,但當然只要有公式便可以編寫出來運用,有關的策略當然也可以進行程式交易。 Acceleration Oscillator的中文名稱,直接翻譯便是「加速指標」,不過感覺上還是英文名稱好像易接受一點! 簡單來說,原創者指這個指標是用以衡量價格加速及減速的「力量」,在指標中,「綠色」的代加向好,「紅色」的代表向淡,而中間的零線則是平衡點。 指標的公式如下: AO = SMA(median price, 5)-SMA(median price, 34)   部份更喜歡再加一條平均線的,公式如下: AC = AO-SMA(AO, 5)   指標普邊的用法是,當出現「綠色」的部份時,可以考慮造好,特別是在零線出現綠色,甚至是連續出現兩支或三支的綠色,升勢更強。相反,當出現「紅色」的部份時,可以考慮造淡,特別是在零線出現紅色,甚至是連續出現兩支或三支的紅色。   但真的是這樣嗎?   我們拿近幾天的期指1分鐘圖來看看,若只把握開市第一個訊號入市交易: 7月31日,獲利幅度可達70點   7月30日,獲利幅度約60點 7月29日,獲利幅度約40點   若只以此三日來衡量,指標好像真的很實用,不過大家再看看其他的例子: 在backtest中便看到這個日子中的虧損是最大的(2014年5月2日),同樣的交易訊號在這日中不跌反大升! 但近數個交易日為什麼能賺錢? 是否因為整體市況偏淡才能做到?   其實這個指標的公式根本很簡單,只要有歷史數據,大家不難自行做BACKTEST,也可以加上其他的策略配合,看看是否可行!   比如,大家可以試試以下的策略作配合: 1)試試用更長時間間隔的圖表做分析,如將5分鐘、30分鐘或小時圖與剛才的1分鐘圖同時比較,或許在更長時間間隔的圖表中顯示向淡的情況下,1分鐘圖再發出訊號才能更準確! 2) 又或是否只造淡的策略比同時又造好又造淡的策略更好? 3)  剛才只是示範是開市首個交易訊號的例子,若然改為下午首個交易訊號,又或三時後(A股收市後)的交易訊號又是否會有不同?   至於個人的意見是,Acceleration Oscillator這個指標,若應用在期指即市交易上,並非綠色的便可買入,而是在綠色的部份出現時便考慮「不應造淡」,又或「停止造淡」。相反,出現紅色時也不代表應造淡,而是「不應造好」或「停止造好」,這個指標反過來當作止賺或止蝕的參考或許更好。明天再公布如何利用Amibroker編寫Acceleration Oscillator這個指標!

【年回報近七倍 獲利比例達八成的方法 如何去檢查真假?】

潮流特區
程式交易 // 麥振威 ・2015-07-30

七月份課堂有學員告訴我曾買過不少程式來做交易,花費了不少,但至今連程式的公式,又或入市訊號是如何出來也不太清楚,因為售賣的人不肯公開! 我相信市場上必有不少高手,在期指或股票交易上回報十分穩定,在這裏先聲明沒有對任何人有貶意,我也沒有刻意去檢查別人的交易策略是真是假,沒有這樣空閒。只是,既然有學員遇上這種問題,那便嘗試去解答一下! 可以肯定是,外國應有很多交易程式根本是不可行的(香港的我不太清楚),不過數據上卻看似十分厲害,若然程式交易訊號如何產生也不肯公開,又如何敢真的投入資金去做程式交易? 為了解答這個問題,我們在今晚的課堂上做了一個模擬的交易方法給學員看,但留意,這個交易方法根本在實際交易時不可能賺錢。 大家可看到,年回報達684%,整年交易了284次,獲利的有199次,獲利的比例達8成以上。 在課堂上也解釋過程式交易的滑價問題,利用這個交易方法我們設定了單邊3.5點是滑價,0.5點是佣金,合共4點,由2003年至2014年,每年回報也有幾倍! 若然不公開公式,再包裝一下,很多人看到每年回報如此地高,也相信會有興趣。 若將realtime data 導入程式,更可即場利用這個方法,實時發出一些買賣訊號,只要加上一些「竅門」,大家可以看到,真的有七至八成中。 但為什麼不能賺錢? 理由是真實交易是根本有很多的「假訊號」,但假訊號沒有出現在backtest 的report之上,這裏顯示了整年交易了284次,但實際上假訊號會令交易次數增加達1倍,結果是交易了近600次,而且假訊號大多是輸的! 基本上真實交易時每年也是虧損! 為什麼假訊號沒有顯示在backtest report之上? 我們又如何去檢查交易策略是否真的可行? 當然大前提是大家要有策略的公式,知道整個運作,然後才能檢查真假,在課堂上已教了大家檢查的方法,簡單的先用Amibroker的bar replay去觀察一下也可以,只要這樣,大家會發現根本很多的交易方法其實是不可行的。詳細的檢查方法,日後也會在課堂上作多些講解!

【收市前同時買入call輪及put輪等待翌日沽出獲利的交易方法】

潮流特區
程式交易 // 麥振威 ・2015-07-28

有不少電郵詢問都是有關Amibroker除了分析期指外,是否能分析股票或窩輪,答案當然是可以,程式交易向來不會只能選期指交易,正如上次講座中提及收市前同時買入「CALL輪及PUT輪」的交易方法,再翌日開市初段沽出,結果不少舊學員也電郵詢問,不過,我們的測試結果是,若選恆指輪是不行的,但部份市場上同時有CALL輪及PUT輪買賣的正股或ETF則可以,當中包括(1928)、(27)、(2822)、(2823)、(939)、(1398)、(941)、(388)等,但請留意,不可能每天也有入市機會,平均每月大約有6至10次入市機會,虧損的幅度可鎖定在2%至3%,利潤目標則有5%至8%,某些波動大的日子,獲利可以有15%以上。 正如7月13日收市前同時買入金沙的相關CALL輪及PUT輪,CALL輪選(20290),PUT輪選(20180),CALL輪的買入價為0.275元,沽出價為0.403元,獲利46.55%,至於PUT輪,買入價為0.156元,沽出價為0.114元,虧損26.92%,整體獲利19.62%。 不過翌日再做同樣的交易,也是選金沙的相關CALL輪及PUT輪,利潤便只有4.95%。 其實假設CALL輪投入5萬元,PUT輪投入也是同樣5萬元,即使整體只有4%利潤(留意這裏的意思是5萬元的4%),也有2500元,扣除手續費用等仍有約2000元的利潤。而且由於同時買入CALL輪及PUT輪,市場大升大跌反而有利,也不用估方向,特別是在近期的市況,急升後稍為靜數天,便又再急跌。 這類方法首要步驟當然是選正股,利用H-L Indicator 分析正股與大市的亙動關係,繼而再選CALL輪及PUT輪,由於市場上的PUT輪相對較少,加上策略上並非要求CALL輪及PUT輪的行使價相同,而且兩者的實際槓桿如何選擇也需要因應正股的走勢而有不同。 此外,翌日平倉時間方面,大部份都是同時平倉,但特定走勢下會先沽出CALL輪再沽出PUT輪(如7月14日金沙的窩輪),又或先沽出PUT輪再沽出CALL輪。 當然大家可能會問,為什麼不用股票期權,其實最初我們做測試時也是用股票期權的數據,原因是股票期權的歷史數據較易找到,而窩輪,由於到期後很可能同一個編號,但已是不同的窩輪,較難找到歷史數據,要同事們幫忙每天儲起來。 不過,測試結果是窩輪比期權好,好的方面是窩輪可以因買賣的供求關係而令價格並非「跟足」正股的升幅/跌幅,正如股價強勢一段時間,同時買入CALL輪及PUT輪,若然翌日股價再急升,即使CALL輪的條款與PUT輪的相同,CALL輪會因為較多買家追入而令價格升幅較大。利用這個特性,反而對我們做這類交易時更有利! 但為什麼恆指輪卻做不到這類交易,我指恆指輪不行純粹是測試的結果,原因如何? 應是與莊家有關! 至於選股、選輪及何時沽出的準則如何? 在講座中會多談這方面!  

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

潮流特區
程式交易 // 麥振威 ・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才真正開始交易,是程式交易的優勢之一,而且數據是可免費網上下載,配合大市走勢來選股,所需要懂的語法也十分簡單,希望這對大家有幫助!  

利用程式選出市值低於5億股票 炒「賣殼」概念

潮流特區
程式交易 // 麥振威 ・2015-07-20

近日有不少學員問及程式交易是否只集中在期指之上,其實這問題早已解釋過,利用程式選股,甚至直接利用程式自動交易股票也是可以的。而有關選股的問題,近日較多學員問的便是如何利用「市值」來選股,其實程式除了可以根據技術指標來選股外,同時也可以利用公司的基本面來選股,甚至兩者「混合」也可以。但為什麼特別多人問如何利用市值選股,原因應該是想炒「賣殼」概念吧!  早前市場曾掀炒「賣殼」概念,可以說今年以來,大部份宣佈賣殼的公司其後股價都有很大的升幅。若然在賣殼前能買入,能賺取的利潤自然更大。一般來說,創業板公司的殼價約3億港元,主板公司的殼價則為5億港元,無論是主板還是創業板也各有捧場客。 部份學員便希望先透過市值來選出市值低於5億港元的主板公司,再利用成交量等分析資金流入情況,又或其他指標配合分析走勢是否逐漸轉強。簡而這之,他們是希望先選市值再做分析,找出那隻股份已有「異動」的跡象,筆者對這種方法選股有點保留,但若學員們認為這種選股方法適合他們,又或想試試觀察成效,則可根據以下方法為程式做設定:   1) 先利用Amibroker的「Auto- update quote(AmiQuote)」功能更新股票的基本數據,根據圖中選擇   選擇Yahoo Fundamental – Basic ( basic fundamental data for stocks) (按圖可放大觀看)   2) 同時再update股票的最新收市價 選Yahoo Current ( current day only, stocks, funds , US&international(50))     3) 開啟Amibroker的Formula Editor,再把以下的afl file 貼上 marketCapRangeStart = 100000000; marketCapRangeEnd = 500000000; Capitalization = GetFnData(“SharesOut")*Close ; Filter = Capitalization >= marketCapRangeStart AND Capitalization <= marketCapRangeEnd; AddColumn(Capitalization, “Market Cap.", 1.2);   4)留意可按個人的要求修改股票的市值來搜尋,修改file中的以下兩句的數字 marketCapRangeStart = 100000000; marketCapRangeEnd = 500000000;   5) 在Analysis 中選New Analysis,並開啟剛才貼上的file 6) 再根據圖中設定來選股    

【選股是否需配合大市走勢?】

潮流特區
程式交易 // 麥振威 ・2015-06-13

昨晚跟學員見面討論了選股是否應配合大市市況的問題,個人認為這個是必要的。 早前也提及過選股的策略應為: 先看當日市況 → 符合條件便利用程式選股 → 選出股票後再加上當晚美股要上升 → 翌日入市! 若市況未能配合,則入市的「注碼」應減少。其實利用程式大家不難做到這一點,比如某些學員會設定,恆指收市價大於10日、20日或50日平均線才選股,這個程式可以很簡單地寫出來,也可以進行BACKTEST,比較一下,在配合大市市況下選股與不配合的兩種情況下,那一個的回報較好,某部份已開始熟悉程式運用的學員,更會配合內地股市走勢下才選股。比如他可能設定以下準則:   1) A股10日EMA大於20日EMA 2)恆指收市價MACD快線高於慢線 3)期指的未平倉合約增加 4) 個別股票的MACD快線及慢線在零線附近徘徊已一段時間,並剛作出突破 以上的準則其實十分十分簡單,對新手來說,即使不曾使用程式,在我們的課堂上經過第一及第二課後相信也懂得自行去設定。而在這設定下,即使個股的選股條件配合,但市況未配合,也不會有股票會選出來,透過程式便能快速找出市況配合下符合特定條件的股票,甚至利用這些條件直接選股進行全自動交易。 其實配合市況選股是十分重要的,大家可看看恆指的走勢,自5月28日,恆指已有短期「轉勢」的跡象,其後由5月28日至6月13日,恆指是跌多於升的。再看看熱門股票如港交所(0388),在5月28日後也不曾出現過大幅上升,若然你的策略是配合市況下選股,則在這段時間即使入市,注碼也應減少,又或若然你的策略是專門炒港交所(0388),這段期間更不應入市。 (按圖可放大) 配合市況選股,便是希望避免入市後坐倉的情況,短炒股票其實也需要止蝕,只有設定為止蝕的策略,經過詳細的BACKTEST,那除了在牛市中能賺錢,跌市來臨時也可避免大虧損,不會把既得的利潤再輸掉。 當然選股的策略也十分重要,個人十分喜歡選強勢股,強勢股的好處是,即使遇上市況逆轉,又或入市後當晚美股大跌,但仍能保持在5%的止蝕範圍之內,在近期推介的股票中,大家也看到,市況雖逆轉,部份學員見當日市況大跌,加上當晚美股也大跌,但持有的股票即使裂口低開,也不會超過入市價的5%,當然配合市況選股,則買入這些股票時注碼也應減少,短炒股票間接相等如「只買升」,這不同於做期指,不配合市況在控制注碼,以及不定立一套止蝕策略,最終是很危險的。程式交易便是希望先透過測試來減低風險,若然不能做到這一點,也便浪費了程式的特點。 至於強勢股的設定是怎樣,如何配合市況選股,在6月16日的「程式講座」及6月30日的「程式選股講座」會多加講解。

程式交易 // 麥振威

麥振威

程式交易在美國及臺灣其實早已流行,在中國內地也有不少程式交易的專家,而近年程式交易在香港也逐漸興起,其實程式交易不是很多新手想像的那樣神秘,只要學懂基本的用法,遇上問題時有專人解答,再自己不斷嘗試,經過數月的時間,大部份人也會學懂如何將自己的交易策略轉化為程式語言,又或將來在發現一些市場的特性時,也懂得如何利用程式去自行做測試,優化個人的交易策略,無論是股票、期指等也能透過程式做分析,藉此提高交易的回報,本網誌便是希望介紹各種有關程式交易的知識,讓更多的投資者了解這個新趨勢。

聯絡: paul.mark881@gmail.com
網頁: www.quants.com.hk

熱門推介