MT4與MT5軟體程式交易EA回測介面操作教學

MT4與MT5軟體程式交易EA回測介面操作教學

什麼是回測?

當我們寫完一隻自動交易程式(EA)後,或是你今天從某處得到一支EA時,
我們通常不會直接就放到實盤去使用,
而是會先去「回測」來看看這支EA策略的表現。

那回測就是使用商品過往的歷史價格
讓EA在你選定的某段歷史區間去模擬交易時的進場與出場,
回測由電腦全自動自己執行。

不管你想要測試過往2年、過往5年、或過往10年的交易表現,
都可以在短短幾分鐘,甚至幾秒鐘內得到結果報表,
是觀察一個交易策略非常有效率的方法。
當然,前提是你的交易策略要能夠程式化,寫成EA。

今天我們這篇文章會教大家如何在MT4與MT5的軟體中回測你的EA,
在回測之前,我們要先來把EA新增至你的MT4或MT5的軟體中。

 

如何新增EA到MT4/MT5軟體中

首先,我們來到MT4或MT5的介面,
從右上角找「文件」的下拉式選項,並在點選「打開數據文件夾」,
然後在點選「MQL4」 (MT5是點選MQL5) 這個資料夾進去。

MT4MT5回測 1

在這裡面最常用到的分別為:
1. Experts:放自動交易程式EA的資料夾
2. Indicators:放指標的資料夾
3. Scripts:放腳本的資料夾

這幾個資料夾分別對應著MT4/MT5介面中「導航」那欄裡面的幾個功能選項。

MT4MT5回測 2

那EA的檔案就要放進「Experts」這個資料夾裡面,
就可以在MT4或MT5前台的導航欄的EA交易中看到它了,
也才可以進行回測。

 

開始回測

在MT4/MT5開啟EA回測介面

MT4可在介面上方找到一個有放大鏡的圖案,名稱為「投資策略測試」,
點下去即可開啟回測功能。

MT4回測

而MT5的話,則是在介面上方「查看」的下拉式選單中,點選「策略測試」,
就可開啟回測功能。

MT5回測

MT4回測介面設定

中間由上至下為:
1. 選擇要回測的EA、
2. 回測什麼貨幣或商品、
3. 復盤模式,
為價格精確度的選擇,

MT4分價格精確度分為三種:開盤價、控制點、每個即時價格。
1)每個即時價格最準確,但回測跑得很慢,需要最久時間;
2)控制點精確度普通,回測需要時間也居中;
3)只用開盤價精確度超低,艾比本人完全不會去使用這個,回測需要時間超短,瞬間跑完。
控制點是使用K棒的開高低收價格,去模擬出12個分價點,
一般想要先看看策略大概的表現時,就會去選擇控制點,很快就可以得到結果,結果也不會太失真。
但如果是快進快出的交易策略,像是剝頭皮策略,就會失真很多。

4. 使用日期,回測的起始時間到終止時間、
5. 復盤顯示,
這邊如果打勾,則會在回測時開啟跑動的K棒圖表,像是真實在交易一樣,

艾比強烈建議打勾,因為我們要看EA是否有在正確的點位進場跟出場。

MT4回測介面

右邊的選項則是:
6. EA交易屬性,
點開裡面可以設定EA的「外部參數」,也在這邊設定回測的起始資金,
還有讓EA只下多單或只下空單的設定也在這裡面。

7. 圖表週期為K棒圖表的時區、
8. 價差就是「點差」,外匯保證金交易的主要成本,
在MT4的回測設定點差為固定點差,並可以直接在這一欄做設定;
那MT5的部分點差是包含在歷史資料當中的,無法在回測時再去修改。
9. 優化,不打勾就是單次回測EA;如果打勾會去針對你有選定的外部參數做優化。

圖中黃色框框部份為有安裝Tick data suite這個軟體才會顯示的,
如果沒有,你的介面不會出現。

延伸閱讀:回測MT4歷史價格資料下載教學與99.9%品質的Tick Data Suite

Tick data suite提供MT4的回測使用者完整的歷史價格資料
而且不用下載檔案很大的價格檔案與自己灌入MT4中,使用上非常的方便。
它還有可以設定浮動點差、自訂槓桿、模擬滑價等功能,但是它要付費。

 

MT5回測介面設定

中間由上至下為:
1. 選擇要回測的EA、
2. 回測什麼貨幣或商品、
3. K棒的時區、
4. 選擇自定義週期,然後可以選擇回測期間、
5. 中文翻譯成「轉寄」,聽這個翻譯會完全不知道這個在幹嘛?
其實他是「向前測試」的功能 (英文叫做 Forward test)
會根據你這邊選定的日期把全部回測期間切開,後面的當作是假裝未來的測試,
主要是用在優化時,後面這段期間不會拿來擬合找參數(insample),而是當成outsample。
(所以其實就是艾比在課堂上跟大家講的樣本內外測試,in-out sample test)。

MT5回測介面

6. 延遲速度,可選擇他偵測到你伺服器的最後ping即可、

7. MT5的價格模式總共有5個等級:
1) 每次報價,就是每個tick都計算;
2) 每次報價基於真實報價,這個模式他會實際抓取你交易商伺服器報價的真實狀況,如果伺服器有滑點、斷線等狀況也會被放進去,所以他最接近真實交易狀況,
但交易商伺服器內的歷史價格只有在近期比較完整,早期價格跟伺服器狀況依然缺漏的問題;
3) 一分鐘HOLC,就是只使用1分K的開高低收價格;
(在MT5匯入歷史價格時有分bar跟tick兩種不同模式,這個就是bar)
4) 開盤價,只使用每根K棒的開盤價格,很快,但參考性極低;
5) 數學模式,這個模式下只會調用EA中的OnInit(),OnTester()和OnDeinit(),讓你做一些函數的計算。

8. 入金,起始金額設定、 
9. 槓桿設定(MT4回測只能依照券商槓桿,MT5則可以在這邊自行設定)、
10. 優化功能(MT5多了可以一次回測在報價欄中的全部商品)、
11. 視覺化模式,就是MT4的復盤顯示,可在回測時開啟跑動的K棒圖表、
12. 輸入頁籤,這邊是設定EA的外部參數。

另外,Tick data suite目前沒有支援MT5系統,
所以使用MT5回測的同學可以看一下券商本身的歷史價格資料是否完整,
如果不完整,那就要額外去自己匯入歷史價格資料。

延伸閱讀:回測MT5歷史價格資料Quant Data Manager免費下載與創建自訂交易品種匯入教學

 

回測在交易中的角色

回測不管是在手動的主觀交易或是自動程式交易當中,都是非常重要的,
可以說是一個交易策略,如果沒有經過回測,根本無從去判斷是否能使用。

而程式交易的好處就是可以透過軟體快速並自動的回測;
而一般的手動交易的交易者,通常是透過肉眼人工的方式,
將圖表從過往的某個時間點,開始去一筆一筆核對交易策略的進出場,
算是相當費工費時的過程。

我們來看一下,關於自動交易程式回測的優缺點:

回測的優點

1. 快速、省時
回測即使10年的過往歷史,使用速度較慢的精確價格模式,也頂多花費5~10分鐘左右的時間;
如果要大概看一下策略表現,使用像是MT4控制點模式,那只需要10~20秒的時間,即可得知結果。
快速省時絕對是程式交易中很大的優勢。

2. 自動統計報表
回測完成之後,軟體會給出一份統計報表,
讓你馬上可以知道策略能不能賺錢?風險有多大?下了幾張單?勝率是多少?等等…
可以依照報表來決定是否要使用該策略,
或是該從什麼方向去調整策略。

3. 驗證策略可行性
基本上一個交易策略在過往要會賺錢,我們才會願意在未來使用。
那當然會盡量排除是「過度最佳化」的可能性(報表會賺錢、但實際不會),
可以透過使用回測來做樣本內外測試(in-out sample test),
更有效的去檢測策略的可行性。

4. 優化找到策略適合參數
相同的策略使用在不同的商品、或不同的時區當中,
適用的交易參數會不同(例如:海龜突破的「20」日、月均線「20」與季均線「60」),
透過電腦自動的一次測試幾千種甚至幾萬種參數組合,
這是人工手動無法完成的事情。

回測的缺點

1. 略為失真
回測主要是透過「價格」來去做測試,但實際交易環境會更複雜,
包含滑價(滑點)、點差擴大、伺服器延遲或斷線、或券商不成交等等…
所以回測比較是屬於安穩的交易環境。
那以策略準確度來說,越是長線的策略(越不吃精確價格的策略),
回測出來的準確度、可信度越高。

2. 短進短出策略不適合
依照上面提到的原因,
極短線(例如:剝頭皮 scalper)的策略因為只要稍微偏差一點價格、或是進出場差個幾秒,
就會造成完全不同的表現,
所以容易造成回測表現超好、賺很多錢,但實際用了卻只會賠一屁股。

 

回測報表的判讀

回測完成之後的報表有著非常多的統計資訊,
最直觀的賺錢判斷法則是什麼?
哪些數據是程式交易者最在意的?
可以到艾比的這一篇文章來看喔:

延伸閱讀:
MDD是什麼?風報比是什麼?程式交易者在乎哪些回測分析數據?

 

 

👇投資自己的腦袋:

外匯保證金MT4/MT5新手村全修班(線上課程)

MT4/MT5程式交易(EA)語法撰寫實戰班(兩日實體+線上)

艾比曾經有一段時間對交易很迷茫
因為聽到了一個說法
說做投資交易的人是對社會「沒有貢獻」的

的確

因為靠投資交易賺來的錢
並不是靠勞動或是付出什麼而得到的
而是靠著在市場當中別人的輸錢而得來的

為什麼要做著對世界沒有幫助的事情
「我是不是應該轉行?」
「我是不是應該去找一份能對社會有貢獻的職業?」

在那段時間艾比一直在思考交易的意義
面對跟交易有關的一切事情
都快樂不起來
因為我覺得自己竟然成為了一個「沒用的人」

後來在一本書當中
學習到了金融的本質,也了解到了金融的意義

--------

人都會生老死,因此有了和其他人做跨期交換的需求
➡金融的本質就是「價值的跨期交換」

人活著的基本行為是在做👉「規避風險」

從東西方早期的文化可以看出規避風險的兩個極端

【東方-儒家文化】

使用「人」當作規避風險的手段
「養兒防老」是儒家文化的出發點

重男輕女
因為男生娶老婆進門,才會是自己家的人
為這個家能夠付出勞力,長輩老了之後照顧長輩

家族婚姻
兒女沒有自由選擇婚姻的權利
因為情感的自由遠不及家族的利益來得重要

傳統社會沒有個人自由 → 自由選擇和養兒防老是不相容的

一個社會越是以「人」為金融、避險工具
就越依戀血緣這種原始因素

【西方-資本主義】

金融市場發達、有豐富的金融工具
透過保險、投資等規劃
不需用養兒防老當作生老病死風險的唯一安排

👉人們可以更自由的安排想要的生活方式

(在中國受儒家文化影響越深的地區,買保險的人口比就越低)

相較於華人重視血緣、傳子不傳賢
歐美更多願意領養小孩
在政府與公司等也能夠讓真正有能力的人來做事

--------

艾比以前剛踏入交易市場時
跟大部分的人一樣
只想要多增加一些收入來讓自己的生活過得更好

但後來開始開設課程收學生
全部的生活都是跟交易相關的
專職從事這些工作

讓我開始思考在賺錢之外,做這些事情的意義

開始去了解為什麼世界會發展出金融?
金融市場帶給世界的幫助又是什麼?

從早期發展出的證券市場
到期貨、選擇權這些衍伸性金融商品
股市、房市、匯市等等
不只是投資者在其中可以獲取財富
而都是有其存在的價值與意義的

理解了之後
艾比對於交易是對社會「沒有貢獻」的這個觀念
就徹底改觀了

這本書是「**耶魯最受歡迎的金融通識課**」
作者陳志武是耶魯大學管理學院金融學教授
雖然是中國湖南人
但對於東西方金融市場分析的非常精闢在理

是一本艾比非常推薦、值得一讀的好書

💬IG留言「金融」
艾比就私訊送給你超過萬字的讀書心得整理
看完覺得收穫滿滿

讓你即使沒有時間看完整本
也可以快速吸收到精華喔

🔔關注@mt4mt5 學習更多交易知識
艾比曾經有一段時間對交易很迷茫 因為聽到了一個說法 說做投資交易的人是對社會「沒有貢獻」的 的確 因為靠投資交易賺來的錢 並不是靠勞動或是付出什麼而得到的 而是靠著在市場當中別人的輸錢而得來的 為什麼要做著對世界沒有幫助的事情 「我是不是應該轉行?」 「我是不是應該去找一份能對社會有貢獻的職業?」 在那段時間艾比一直在思考交易的意義 面對跟交易有關的一切事情 都快樂不起來 因為我覺得自己竟然成為了一個「沒用的人」 後來在一本書當中 學習到了金融的本質,也了解到了金融的意義 -------- 人都會生老死,因此有了和其他人做跨期交換的需求 ➡金融的本質就是「價值的跨期交換」 人活著的基本行為是在做👉「規避風險」 從東西方早期的文化可以看出規避風險的兩個極端 【東方-儒家文化】 使用「人」當作規避風險的手段 「養兒防老」是儒家文化的出發點 重男輕女 因為男生娶老婆進門,才會是自己家的人 為這個家能夠付出勞力,長輩老了之後照顧長輩 家族婚姻 兒女沒有自由選擇婚姻的權利 因為情感的自由遠不及家族的利益來得重要 傳統社會沒有個人自由 → 自由選擇和養兒防老是不相容的 一個社會越是以「人」為金融、避險工具 就越依戀血緣這種原始因素 【西方-資本主義】 金融市場發達、有豐富的金融工具 透過保險、投資等規劃 不需用養兒防老當作生老病死風險的唯一安排 👉人們可以更自由的安排想要的生活方式 (在中國受儒家文化影響越深的地區,買保險的人口比就越低) 相較於華人重視血緣、傳子不傳賢 歐美更多願意領養小孩 在政府與公司等也能夠讓真正有能力的人來做事 -------- 艾比以前剛踏入交易市場時 跟大部分的人一樣 只想要多增加一些收入來讓自己的生活過得更好 但後來開始開設課程收學生 全部的生活都是跟交易相關的 專職從事這些工作 讓我開始思考在賺錢之外,做這些事情的意義 開始去了解為什麼世界會發展出金融? 金融市場帶給世界的幫助又是什麼? 從早期發展出的證券市場 到期貨、選擇權這些衍伸性金融商品 股市、房市、匯市等等 不只是投資者在其中可以獲取財富 而都是有其存在的價值與意義的 理解了之後 艾比對於交易是對社會「沒有貢獻」的這個觀念 就徹底改觀了 這本書是「**耶魯最受歡迎的金融通識課**」 作者陳志武是耶魯大學管理學院金融學教授 雖然是中國湖南人 但對於東西方金融市場分析的非常精闢在理 是一本艾比非常推薦、值得一讀的好書 💬IG留言「金融」 艾比就私訊送給你超過萬字的讀書心得整理 看完覺得收穫滿滿 讓你即使沒有時間看完整本 也可以快速吸收到精華喔 🔔關注@mt4mt5 學習更多交易知識

2 thoughts on “MT4與MT5軟體程式交易EA回測介面操作教學

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *