MetaTrader 4 客戶端內(nèi)的智能交易測(cè)試: 內(nèi)部模式 [MT4]
- 如果您還沒有開啟測(cè)試,在執(zhí)行測(cè)試前打開 "測(cè)試"窗口。執(zhí)行測(cè)試有以下幾種方法: 進(jìn)入"查看-策略測(cè)試" 主菜單,按 Ctrl+R鍵,在工具欄中點(diǎn)擊 "策略測(cè)試",使用圖表的上下菜單將智能交易添加到圖表中("智能交易-策略測(cè)試")或按 F6。
開始測(cè)試之前,需要選擇智能交易。可以從彈出的窗口中選擇或使用鼠標(biāo)從“導(dǎo)航”窗口拖至“測(cè)試”窗口。測(cè)試的貨幣對(duì)同樣可以通過這種方法選定:在彈出的窗口中選定或從“市場(chǎng)觀察”窗口拖出。按鍵 F6 可以同時(shí)選擇智能交易、貨幣對(duì)和激活圖表周期,但是智能交易必須添加到激活的圖表中。
我們必須選擇一種歷史數(shù)據(jù)模式 方法。一些交易策略與柱狀的價(jià)格變動(dòng)是處于獨(dú)立的狀態(tài),它們是在已成型的柱狀圖上交易。一個(gè)新柱的測(cè)試文件顯現(xiàn)說明當(dāng)前柱已經(jīng)完成模式。一些智能交易也會(huì)通過 "僅用開盤價(jià)"的模式模式化。值得說明的是,如果當(dāng)前柱的數(shù)據(jù)使用到智能交易的交易的決定上,那么這些智能交易測(cè)試使用“僅用開盤價(jià)”將是遠(yuǎn)遠(yuǎn)不夠的!通常,智能交易運(yùn)行完成的柱含有以下代碼去檢驗(yàn)下一個(gè)柱:
static datetime prevtime=0;...if(prevtime == Time[0]) return(0);prevtime = Time[0];[/pre]所有其他的情況下必須使用“每個(gè)替克”模式。通常不建議使用“控制點(diǎn)”模式。這種模式是對(duì)于在優(yōu)化模式中智能交易運(yùn)行的天然估測(cè)。在 優(yōu)化的基因演算 添加到策略測(cè)試以后,需要使用“控制點(diǎn)”模式。使用每個(gè)替克模式測(cè)試僅有歷史數(shù)據(jù)是遠(yuǎn)遠(yuǎn)不夠的,還需要一分鐘可用數(shù)據(jù)。數(shù)據(jù)的數(shù)量是越多越好。如果沒有一分鐘的可用數(shù)據(jù),五分鐘的可用數(shù)據(jù)也可以使用到模式化中。如果同樣沒有五分鐘數(shù)據(jù),十五分鐘數(shù)據(jù)同樣可以使用等等。 當(dāng)然,這樣質(zhì)量會(huì)有所降低。
當(dāng)點(diǎn)擊“開始”后, 首先將會(huì)生成改變價(jià)格的測(cè)試次序,這些將存儲(chǔ)到 FXT 延伸文件中。 全部 FXT 文件存放在<client_terminal_dir>\tester\history 目錄和類型名稱SSSSSSPP_M.fxt 如下:- SSSSSS - 測(cè)試的貨幣對(duì);
- PP - 一分鐘內(nèi)測(cè)試貨幣對(duì)時(shí)間周期值;
- M - 測(cè)試模式(0 - "每個(gè)替克", 1 - "控制點(diǎn)", 2 - "僅用開盤價(jià)")。
那么,為什么要重新計(jì)算已經(jīng)存在的數(shù)據(jù)呢?- 首先,經(jīng)常性的需要在最后的歷史數(shù)據(jù)上測(cè)試。
- 其次,經(jīng)常出現(xiàn)每個(gè)替克的初始形成數(shù)據(jù)在較短的時(shí)間期限內(nèi)不能夠從服務(wù)器下載生成測(cè)試順序。問題在于數(shù)據(jù)的抽取是異步的。因?yàn)榉?wù)器不會(huì)通知客戶所請(qǐng)求的數(shù)據(jù)已經(jīng)傳送。但我們可以確定的是所有請(qǐng)求的數(shù)據(jù)會(huì)在一分鐘到兩分鐘內(nèi)接收到。
- 第三是最重要的一點(diǎn)。用戶的賬戶擁有不同的經(jīng)紀(jì)商。不同的經(jīng)紀(jì)商提供的不僅僅是不同的交易狀態(tài)(請(qǐng)保留含有同時(shí)交易服務(wù)器運(yùn)行重要信息的 FXT-文件標(biāo)題), 在歷史數(shù)據(jù)成交量和質(zhì)量上也存在差別。這種情況下,在切換賬戶測(cè)試時(shí),建議重新計(jì)算數(shù)據(jù)。
- 第四, 在客戶端內(nèi)經(jīng)常沒有來自不同可用源代碼的不同時(shí)間期限數(shù)據(jù)。在客戶端為基本貨幣對(duì)提供大量歷史下載數(shù)據(jù)以后,問題變得更加嚴(yán)重。很多交易者使用真實(shí)的經(jīng)紀(jì)商交易,從MetaQuotes服務(wù)器上下載數(shù)據(jù)。 這點(diǎn)對(duì)于模式化的質(zhì)量起著決定性的作用。需要注意的是測(cè)試考慮對(duì)于不同時(shí)間期限數(shù)據(jù)不一致的錯(cuò)誤。那么這是些什么樣的錯(cuò)誤呢?
當(dāng)?shù)竭_(dá)“截至”日期時(shí),模式化結(jié)束。從截至日起的 0:00 點(diǎn)開始價(jià)格數(shù)據(jù)退出測(cè)試和生成順序。如果指定數(shù)據(jù)超出歷史范圍或無效“使用日期”, 全部歷史 (前 100 個(gè)柱除外)將介入生成。圖表中柱的最多數(shù)額設(shè)定并不意味著全部模式化 - 使用存儲(chǔ)在硬盤上的全部歷史。
如果在測(cè)試順序生成期間歷史數(shù)據(jù)少于100 個(gè)柱,在測(cè)試日志中將會(huì)顯示 "TestGenerator: deficient data"并且不會(huì)開啟測(cè)試。如果日期范圍指定錯(cuò)誤,可能沒有任何數(shù)據(jù)顯現(xiàn)。在測(cè)試日志中也將會(huì)顯示"TestGenerator: no history data"信息。這種情況下,必須確定提供的歷史數(shù)據(jù)總數(shù)。確保這些數(shù)據(jù)能夠打開相應(yīng)圖表并且使用PageUp鍵手動(dòng)抽取數(shù)據(jù),隨后“重新計(jì)算”并重新開始測(cè)試。
在開始測(cè)試之前,必須指定智能交易測(cè)試的進(jìn)入?yún)⒘俊L貏e要注意貨幣存款額。例如,如果不指出RUB,一個(gè) micex類型的賬戶打開,在GAZP上的智能交易測(cè)試將沒有任何結(jié)果 (這個(gè)貨幣可以手動(dòng)指出):
如果在智能交易中 外部變量 顯示,“輸入數(shù)據(jù)”將會(huì)隱藏。輸入數(shù)據(jù)值得不通社之被保存在不同名稱的設(shè)置文件中 ("保存"鍵)和備用("加載"鍵).
點(diǎn)擊 "修改智能交易"鍵將會(huì)調(diào)用 MetaEditor,智能交易測(cè)試可以打開編輯。在測(cè)試開始時(shí)該鍵被鎖定。不過, MetaEditor 仍然可以進(jìn)行編譯智能交易,甚至是測(cè)試在運(yùn)行中。在下次開始測(cè)試時(shí),重新編譯的智能交易將自動(dòng)重新加載測(cè)試。
智能交易測(cè)試期間有很好的記錄功能,無需重新加載。 建議在測(cè)試期間改變智能交易的源代碼可以節(jié)省您的時(shí)間。測(cè)試完成之后,您可以點(diǎn)擊“開始”鍵再次測(cè)試已經(jīng)修改的智能交易。但不是先前加載的執(zhí)行文件將被測(cè)試。重新加載新版本的智能交易,您需要奠基“停止”鍵或者等待測(cè)試的完成。只有在這之后,在MetaEditor中開始重新編譯你的智能交易。
在測(cè)試完成之后,您可以打開帶有交易業(yè)務(wù)箭頭的圖表和測(cè)試期間的指標(biāo)。不過,測(cè)試期間使用的指標(biāo)將以默認(rèn)顏色顯示。例如,如果使用不同時(shí)間周期平均數(shù)的移動(dòng)平均數(shù),它們?nèi)恳约t色顯示。當(dāng)然這樣很不方便。這個(gè)顏色可以進(jìn)行手動(dòng)改變,不過還有其他的解決方法。如果可以提前命名帶有附加指標(biāo)的模板為 <expert_name>.tpl (for example, Moving Average.tpl) ,當(dāng)圖表打開測(cè)試時(shí)會(huì)使用該模板。如果沒有可用模板,將接受tester.tpl 模板。
這里還需要注意一處細(xì)節(jié)。如果以上面的方法打開測(cè)試圖表,當(dāng)前歷史數(shù)據(jù)將被加載進(jìn)入。如果已經(jīng)包含測(cè)試順序,沒有任何問題。如果使用的數(shù)據(jù)是其他數(shù)據(jù)提供呢? 很遺憾,測(cè)試策略會(huì)支持所謂的策略測(cè)試直觀化。
如果檢測(cè)“直觀化”,使用 <expert_name>.tpl 或 tester.tpl模板“調(diào)試”圖表將自動(dòng)從服務(wù)器中打開。圖表會(huì)顯示當(dāng)前測(cè)試順序的狀態(tài)。通過滑動(dòng)的方法可以改變直觀化的比率。如果向左移動(dòng),比率降低。如果向右移動(dòng),比率加快。使其停頓,可以按 "||" 按鈕或者鍵盤上的 Pause鍵。停頓之后繼續(xù)測(cè)試,需要按 ">>"按鈕或再次按 Pause鍵。測(cè)試停頓時(shí),可以通過 F12 一步一步地手動(dòng)直觀化。 加速使用 "+" 按鈕,減速使用"-"按鈕。指定日期可以點(diǎn)擊"跳至"。這種情況下,直至測(cè)試到達(dá)指定日期都無需重新繪制圖表,本質(zhì)上加快了進(jìn)程。 測(cè)試結(jié)束后(或是通過點(diǎn)擊“停止”),歷史數(shù)據(jù)將會(huì)顯示在圖表上。
查看測(cè)試圖表,可以通過鼠標(biāo)雙擊相應(yīng)的部分得到對(duì)應(yīng)結(jié)果。如果測(cè)試圖表已經(jīng)打開 (檢測(cè)"直觀化"或點(diǎn)擊 "打開圖表"),在“結(jié)果”欄中雙擊將移動(dòng)至相應(yīng)的日期。
優(yōu)化交易策略, 至少需要兩步完成。在“設(shè)置”欄中檢測(cè)“優(yōu)化”并設(shè)定初始值和最終值。在智能交易屬性窗口“輸入數(shù)據(jù)”欄改變優(yōu)化參量的增加值。
如果智能交易沒有任何輸入數(shù)據(jù),則不能夠進(jìn)行優(yōu)化。優(yōu)化的過程可以提高優(yōu)化限定設(shè)置。
當(dāng)達(dá)到相應(yīng)的限定后,測(cè)試停止通過參量。測(cè)試開始新(下一個(gè))輸入數(shù)據(jù)的設(shè)定。另外,如果因?yàn)橄薅ǘK止參量通過,優(yōu)化視為失敗并且不會(huì)列出結(jié)果。負(fù)值贏利同樣視為失敗。為了使沒有通過的參量不在優(yōu)化結(jié)果的列表中出現(xiàn),需要在“優(yōu)化結(jié)果”欄的上下菜單中選擇“忽略無效結(jié)果”。
經(jīng)常性由于類似“策略優(yōu)化沒有運(yùn)行”的原因,以默認(rèn)的方式列出失敗結(jié)果。這種情況下,在日志內(nèi)將會(huì)顯示 "NNN results have been discarded as insignificant" 信息。
要加快優(yōu)化的進(jìn)程,需要實(shí)現(xiàn)結(jié)果存儲(chǔ)。如果重復(fù)優(yōu)化通過參量,測(cè)試在當(dāng)前輸入數(shù)據(jù)設(shè)定的存儲(chǔ)結(jié)果中找到,找到結(jié)果會(huì)被使用。這樣,優(yōu)化可以停止運(yùn)行,因?yàn)樵谙乱粋€(gè)智能交易的相同數(shù)據(jù)優(yōu)化開啟時(shí)將允許從先前計(jì)算結(jié)果和繼續(xù)計(jì)算結(jié)果中獲得。如果測(cè)試數(shù)據(jù)已經(jīng)改變、智能交易重新編譯或者智能交易使用的數(shù)據(jù)庫被替換,優(yōu)化結(jié)果將被重新設(shè)置并且在此進(jìn)行計(jì)算。
測(cè)試不能夠控制水平2或更高數(shù)據(jù)庫的改變 (即,數(shù)據(jù)庫調(diào)用其他數(shù)據(jù)庫)! 這就是在一些情況下需要手動(dòng)重設(shè)存儲(chǔ)的原因。例如,智能交易的重新編譯。包含存儲(chǔ)數(shù)據(jù)的文件被保存在 tester\caches 目錄中。
當(dāng) 基因演算 開啟后,對(duì)于優(yōu)化結(jié)果存儲(chǔ)會(huì)起到幫助作用。在智能交易的屬性窗口的“測(cè)試”欄中可以開啟優(yōu)化基因演算。
基因演算的參量被自動(dòng)指定- 總體的數(shù)量取決于全部可結(jié)合參量的總數(shù),并且其值在64 到256之間。
- 最少生成總數(shù)取決于總體大小,并且其值在15到31之間。
- 因此,最少基因優(yōu)化通過總數(shù)在 960到7936的范圍之內(nèi)。
- 交叉的可能性為100%。基因隨意偶然交叉,不排除自身交叉。
- 變化的可能性為10%。
- 反方向的可能性為10%。
- 如果基因庫在10代之后沒有改進(jìn),基因優(yōu)化將會(huì)停止。需要具備最少基因代形成數(shù)量。
測(cè)試期間日志內(nèi)大量數(shù)據(jù)輸出在“日志”欄內(nèi)可能不會(huì)得到完整的信息,但是可以確定它們進(jìn)入 log 文件。優(yōu)化過程中日志內(nèi)沒有輸出數(shù)據(jù)提供。
測(cè)試完成后,可以刪除不再繼續(xù)使用測(cè)試業(yè)務(wù)的數(shù)據(jù)。騰空數(shù)據(jù),可以在主菜單中關(guān)閉“測(cè)試”窗口或 Ctrl-R 再者在工具欄中點(diǎn)擊“策略測(cè)試”。
- 上一篇:MT4新手入門-如何刪除持倉單中的止盈或止損
- 下一篇:沒有了!
相關(guān)文章
-
沒有相關(guān)內(nèi)容