AmiBroker vs Multicharts

筆者兩樣都有用,雖然網上都會search到不同意見,但筆者還是想表達個人較中肯的意見。

語言篇;
AmiBroker 只支援英文,但Multicharts 支援多國語言,包括繁體及簡體中文。
所以係語言方面,Multichars獲勝。

速度篇:
在backtest 同一個策略的速度上,AmiBroker明顯較MultiCharts為快。
所以係速度方面,AmiBroker獲勝。

價錢篇:
AmiBroker全包都係大約4000港紙,但Multichart 大約10,000港元。明顯地,AmiBroker 較平。
所以係價錢方面,AmiBroker獲勝。

資訊源篇:
MultiCharts 可以在同一個資料庫內支援多個資訊源,而AmiBroker只有一個。
所以係資訊源方面,MultiCharts 較為優勝。

支援篇:
MultiCharts 能輕易地在網上找到不同策略的寫法,因為MultiCharts 前身跟TradeStation 是同一套來的。
而AmiBroker 則較難找到。
所以係支援篇方面,MultiCharts 較為優勝。

筆者會再稍後的文章再詳細跟大家解釋。

C.M.Ho
《全職操盤──輕鬆學懂全自動程式交易工具 Program Trading》作者之一

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

附圖是今天(2015年9月17日)期指的1分鐘圖走勢,可看到開市第一個MACD訊號,以及波幅收窄後的第一個MACD訊號也能賺到錢。但可以只有在2015年是這樣,今年港股及期指的波幅比過往大很多,若同樣策略放在2014年,則會是虧損,特別是計及買賣差價及滑價的影響後。

0917

早前建議大家在Back-test時單邊佣金設定在200元,這假設是交易的佣金是20元,而剩下的180元則全是是買賣差價及滑價的影響。

MA 1

在課堂上也有建議大家以這個簡單的策略做測試,也可自行修改策略,便是希望大家發現,由於2014年波幅不及2015年,在計及買賣差價及滑價,根本如何去改動策略也難以賺錢,除非能有方法減低買賣差價及滑價的影響。

事實上,利用程式寫出一個交易策略,當發出入市訊號後,要確定能真正「成交」,這難晚需要追價,比如設定追價10點,這當然不是每次高於現價10點入市,追價10點是確認能成交的做法,最終高追的幅度平均約1至2點,但期指本身買賣差價已有3點,加上這高追的1至2點,單邊的「成本」(未計佣金)已達到4至5點,這是AutoTrade的問題之一,也因而令很多能賺錢的策略變成虧損。

當然某些Trader想出的策略便是因應這問題而改良策略,正如在個人書藉中曾提及「211」的方法,受買賣差價及滑價影響是較其他策略為低的。

在課堂上先叫學員們做macd第一個入市訊號策略的測試,便是希望明白這一點。而在課堂完結後便會再約每位學員,會再教大家如何利用Amibroker設定以限價單做AutoTrade,以配合大家個人的策略。

要寫出這類策略其實不算太困難,先寫好大家的策略,再後加這部份便可以! 這方法應對很多的策略也有效,應會發現一些因計及買賣差價及滑價而不能賺錢的策略,回報會改善很多!

 

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

電郵: paul.mark881@gmail.com

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

有關開市第一個MACD訊號的策略,也有學員電郵詢問,其實在課堂上講解了一個思考交易策略的概念,入市的時間最好是即將出現大升/大跌的時間,而即將出現大升/大跌的時間大多便是「波幅收窄」的時間。

很可能你的策略只有「五成中」,但無論買升還是買跌,若都選擇在波幅收窄的時間入市,估錯方向時可在有限幅度便止蝕,但獲利時則可賺取更大幅度的利潤。比如結果是40點止蝕,80點止賺,在20個交易日中,只有一半能獲利,最終在未扣除交易費用下,獲利的幅度也有400點。

另一個好處是波幅收窄後出現的升/跌浪,只要估對方向,坐倉的機會是相對較少的,升浪/跌浪便急速地運行,這減低了入市後坐倉的壓力。

我們假設開市後第一個MACD的入市訊號也只有「五成中」,但是否又可以稍作修改? 把「開市後第一個MACD的入市訊號」改為「開市後波幅收窄後的第一個MACD入市訊號」才入市交易?

如何介定波幅收窄,某些學員喜歡用保歷加通道的BANDWIDTH,筆者建議也可以用SD與五支陰陽燭的平均SD作比較,如附圖(一)是本日期指的1分鐘走勢,開市後第一個MACD入市訊號出現便造淡,結果能賺錢,但改為「開市後波幅收窄後的第一個MACD入市訊號」才入市也同樣能賺錢。

0916

 

 

不過,大家再看看附圖(二),當日若在開市後第一個MACD入市訊號便入市,即使能獲利,幅度也十分有限。但若改為「開市後波幅收窄後的第一個MACD入市訊號」才入市,則當日獲利的幅度卻大很多!

0109

當然這個只是建議的思考策略模式,若在設計個人交易策略時遇上問題,也歡迎學員們隨時找我研究!

 

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

電郵: paul.mark881@gmail.com

 

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

近日有學員問及,若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年回報)

MA 3

(2014年回報)

ma 5

在這當然不是指只交易第一個MACD入市訊號便能賺錢,這絕不可能!如大家自行測試,也可看到雖在2015年能賺錢,但部份交易坐倉的幅度達200點或以上,在真實交易時根本承受不了這份壓力。

以下是利用Amibroker簡單地寫出每日只交易第一個MACD入市訊號的方法,

1)先開啟Amibroker的Formula Editor

MA 2

 

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前根據以下做設定:

MA 1

一個十分簡單的策略,在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);

ma 4

當然這個也只是作參考,並不是單單這樣便能賺錢! 在課堂上向來也鼓勵學員多嘗試,如上述策略是每天開市後的第一個MACD入市訊號,那若然把策略改為每天「正股市場」開市後的第一個入市訊號,結果又會如何?   利用程式的好處就是可以自行去測試,再加上自己經驗得來的交易觀念去修正任何一個策略,繼而進行程式交易。不過在這想提醒一點,2015年港股及期指的波動情況確實比過去五年中任何一年更大,這也令不少Trader的策略在2015年的回報與過去數年不同(當然有些高手年年也大賺的!)。

此外,在這想指出一個問題,2015年港股及期指的波動情況與過去數年不同,相信滬港通的推出是其中一個原因,這點在滬港通剛推出時在講座中提及,但凡一些政策上的轉變,也會令市場的波動產生變化,正如2011年推出期指延長交易時間,大家在設計交易策略時便常遇到一個問題,策略放在2015、2014、2013、2012、2011年也可以賺錢,但在2010及之前的年份表現卻不同,這便是政策令市場波幅改變的結果。

如何去解決這個問題,如何在新政策推出後再修正個人的交易策略,這方面在課堂中會與大家探討!

 

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

電郵: paul.mark881@gmail.com

 

 

 

 

 

 

 

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

sss1

運用Single Trend Index 即市短炒期指

指標的用法如下:

運用的建議是期指即市(1分鐘)圖表

全日無論盈/虧只交易最多一次

假設30點博80

1500(下午3點) 後的訊號不入

造好準則:

buy

1)裂口高開(開市價與昨日收市價對比)

2)(黑線回至零線下)

3)(黑線重回零線上同時出現綠色BAR)

 

 

造淡準則:

sell

1)裂口低開(開市價與昨日收市價對比)

2)(黑線回升至零線上)

3)(黑線重回零線下同時出現紅色BAR)

 

以下是七月份各日的入市訊號及盈/虧:

aaa

以一張期指計算,扣除交易費用後,獲利約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日)

0702a  0703a 0706a 0707a

0708a 0709a 0710a 0713a 0714a 0715a 0716a 0717a 0720a 0721a 0722a 0723a 0724a 0727a 0728a 0729a 0730a 0731a

 

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

電郵: paul.mark881@gmail.com

【利用Single Trend Index分析股票即市走勢例子】

近期也有些學員是專門短炒正股,甚至是正股的相關窩輪,如港交所(388)或金沙(1928)的窩輪,附圖是運用Single Trend Index分析昨日港交所的即市走勢,若用以即市交易正股或相關窩輪也有參考價值!

388

若運用Single Trend Index昨日(2015年8月15日)港交所在上午中段至下午展開的單邊升市應能捕捉得到!

 

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

電郵: paul.mark881@gmail.com

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

如何分辦單邊市及上落市,是課堂上被問及最多的問題,其實過去也曾在課堂上講解過幾種分析方法。

為什麼很多Trader也想解決這個問題 ?

原因是,應該大家也發現最簡單的如MACD的快線升穿慢線及快線跌穿慢線的傳統買入及沽出訊號,其實也有參考價值的,問題是窄幅上落的市況中,MACD的買入及賣出訊號會頻繁地出現,很多時候,MACD快線升穿慢線後,遇上的只是很短暫的升浪,其後又再度下跌,這段時間入市便變得較難獲利。(如附圖)

SINGLE TREND INDEX 4

但若然可預測何時會出現較大幅度的升浪/跌浪,簡單的用MACD的傳統買入訊號也能藉此獲利。(如附圖)

SINGLE TREND INDEX 5

當然沒有任何方法是百分百準確的,但為了方便學員使用,我們利用課堂上教授過的方法,編寫了一個指標 – Single Trend Index,記緊還是要再強調,沒有任何指標是完美或最好的,也沒有任何指標是必勝的,我們不希望將任何的指標「神化」,什麼用了它便可全職交易,從此發達,這根本便不可能!

而這指標只是利用我們的一些交易經驗,把它編寫成指標方便大家使用,指標的公式也會在課堂上公開,也建議大家可以憑藉個人的經驗把它改得更好!

指標的用法如下:

運用的建議是期指即市(1分鐘)圖表

1)在零線之上出現「綠色」,代表升浪!
2)在零線之下出現「紅色」,代表跌浪!

最重要的是,留意:

3) 在零線之上,出現「綠色」及「黑色」,這代表單邊升市出現的機會較高,可配合其他技術指標入市造好!

SINGLE TREND INDEX 2

4) 在零線之下,出現「紅色」及「黑色」,這代表單邊跌市出現的機會較高,也可配合其他技術指標入市造淡!

SINGLE TREND INDEX 3

如8月4日,今天可以簡單的劃分四個較大的升/跌浪

SINGLE TREND INDEX

 

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

 

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

電郵: paul.mark881@gmail.com

【如何在Amibroker編寫Acceleration Oscillator 這指標】

1)開啟formula editor

(按圖可放大)

AO 1

 

2)將以下copy到formula editor

 

AO 2

_SECTION_BEGIN(“ACCELERATION OSCILLATOR”);

MAAvg34 = MA(Avg, 34);
MAAvg5 = MA(Avg, 5);
MADiff = MAAvg5 – MAAvg34;
AO = MA(MADiff – MA(MADiff, 5), 5);
ACUpBar = AO > Ref(AO, -1);
ACDownBar = AO < Ref(AO, -1);

Plot(AO,”AO”,IIf(ACUpBar,colorGreen,colorRed),styleHistogram|styleThick);
Plot(0,””,15);

_SECTION_END();

 

 

3) 儲存在custom的file

AO 3

 

4) right click 指標按insert 便能將指標放在圖表上分析

AO 4

 

AO5

 

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

電郵: paul.mark881@gmail.com

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

自介紹了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點

0731

 

7月30日,獲利幅度約60點

0730

7月29日,獲利幅度約40點

0729

 

若只以此三日來衡量,指標好像真的很實用,不過大家再看看其他的例子:

0502

在backtest中便看到這個日子中的虧損是最大的(2014年5月2日),同樣的交易訊號在這日中不跌反大升! 但近數個交易日為什麼能賺錢? 是否因為整體市況偏淡才能做到?

 

其實這個指標的公式根本很簡單,只要有歷史數據,大家不難自行做BACKTEST,也可以加上其他的策略配合,看看是否可行!

 

比如,大家可以試試以下的策略作配合:

1)試試用更長時間間隔的圖表做分析,如將5分鐘、30分鐘或小時圖與剛才的1分鐘圖同時比較,或許在更長時間間隔的圖表中顯示向淡的情況下,1分鐘圖再發出訊號才能更準確!

2) 又或是否只造淡的策略比同時又造好又造淡的策略更好?

3)  剛才只是示範是開市首個交易訊號的例子,若然改為下午首個交易訊號,又或三時後(A股收市後)的交易訊號又是否會有不同?

 

至於個人的意見是,Acceleration Oscillator這個指標,若應用在期指即市交易上,並非綠色的便可買入,而是在綠色的部份出現時便考慮「不應造淡」,又或「停止造淡」。相反,出現紅色時也不代表應造淡,而是「不應造好」或「停止造好」,這個指標反過來當作止賺或止蝕的參考或許更好。明天再公布如何利用Amibroker編寫Acceleration Oscillator這個指標!

 

 

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

電郵: paul.mark881@gmail.com

 

 

【Dynamic Trader Oscillator與Alligator Indicator配合運用的例子】

團隊中的Chris ,特別喜愛用Bill William所創的指標,早前有學員問及Bill William的Dynamic Trader Oscillator,由於這並非Amibroker的內置指標,如何編寫也已經在我們的網頁中有示範。至於另一個同樣由Bill William所創的指標 – Alligator Indicator,若同時利用這兩個指標,並只集中做開市初段的交易,以今日的市況為例,10:30先由Alligator Indicator顯示應造淡,繼而在10:34由Dynamic Trader Oscillator進一步確認可入市造淡,期指由24794點,期間曾反彈至最高見24809點,然後便跌至最低見24665點!

0730 HSIF

 

當然,還是那一句,沒有無敵的指標,程式交易就是要多嘗試,總會能找到屬於自己而又能獲利的交易策略。Bill William的指標不少人用以交易外匯黃金,但近期好像較多人用以分析期指,是否實用,當然可以自行驗證,而入市的策略如何,可以說未必是原創者所指的便是最好,學懂利用程式大家也可以自行作出修改及進行backtest!

 

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

電郵: paul.mark881@gmail.com