使用 SDK 2.0 優化策略參數(逐步說明)
簡介
本文將逐步指導您使用 Indicore SDK 2.0 對策略參數進行回溯測試和優化。
本文將以匯圖寶中標準的 MA_Advisor(移動平均線策略)為例,但任何其他的標準或自訂策略也可以按照同樣的方法進行回溯測試/優化。
關於回溯測試報告的特別說明
假設或模擬的表現結果存在某些局限性。與實際表現記錄不同,模擬的結果並不代表實際交易表現。並且,由於未執行交易,如果存在某些市場因素(如缺少流動性)的影響,測試結果可能會對這種影響進行過少或過多的補償。此外,模擬的交易程式一般是從事後分析的角度設計的,並不表示任何賬戶將來或目前可能發生與所示情況類似的盈虧。
準備測試環境
Indicore SDK
下載和安裝最新版的 Indicore SDK。使用預設安裝資料夾。
您可透過以下連結下載最新版本:
下載價格資料
您可以從 CodeBase 價格存檔下載價格檔案,或者使用來自報價管理器伺服器的資料。
價格存檔
為了使用 CodeBase 價格存檔中的資料,您需要先下載和安裝 7-Zip 壓縮軟體。該應用程式用於解壓縮從 http://fxcodebase.com 下載的價格資料。
您可透過以下連結下載最新版本:
然後下載和安裝價格資料:
- 開啟 CodeBase 價格存檔頁面,並將您需要優化策略的商品的資料儲存至電腦上的某個資料夾中。
- 開啟該資料夾,找到下載的檔案。對於 2010 年 EUR/USD 歷史資料,存檔檔案的名稱為 EURUSD-2010.7z。右鍵按一下該檔案,在快顯功能表中,指向7-zip,然後按一下 Extract Files(解壓縮檔案):
- 將會開啟 7zip 壓縮軟體。在壓縮軟體視窗,選擇
C:\Gehtsoft\IndicoreSDK\data
來解壓縮檔案並按一下OK(確定)。
報價管理器
您可以使用報價管理器伺服器下載選定商品在所選期間內的 1 分鐘報價資料。資料下載速度足夠快。載入某種商品的全年 1 分鐘資料(約 30 萬根蠟燭線)通常不到 30 秒。
要從報價管理器中下載資料:
- 執行 Lua Strategy Debugger 應用程式(位於開始功能表的 Indicore SDK 應用程式群組中)。
- 在 Tools(工具)功能表中,選擇 Load Quotes(載入報價):
- 將會出現 Load Quotes(載入報價)對話方塊。選擇您想要下載價格資料的商品及其年份,並按一下 OK(確定)。
- 載入資料時請稍候片刻:
相關介紹就是這些。現在,您可以使用這些下載的資料,為所選的商品和時期進行優化。
準備在偵錯器內執行策略
使用 Lua Strategy Debugger 來安裝策略
自 2011 年 4 月 26 日起,Indicore SDK 2.0(測試更新版 2)發佈了一個新的命令:引進了 File(檔案)->Install Custom Strategy(安裝自訂策略)。現在,您可以在任何資料夾中儲存策略,然後使用該命令將策略安裝至正確位置。
SDK 2.0 安裝完畢時,沒有任何既有策略。您必須在偵錯前建立或安裝一個策略:
按一下偵錯器的 File(檔案)功能表下的 Install Custom Strategy(安裝自訂策略):
將會出現開啟檔案對話方塊。選擇您想要進行偵錯/回溯測試/優化的 Lua 策略檔案,並按一下「開啟」:
相關介紹就是這些。現在,策略安裝完畢。選擇您想要執行的操作,可選擇所安裝的策略:
手動安裝策略
您也可以只將文件複制至適當位置。
將您想要優化的策略複製至下述資料夾:C:\Gehtsoft\IndicoreSDK\strategies
。我們將要優化標準的匯圖寶 MA_Advisor(移動平均線策略),因此:
- 在檔案總管中開啟以下任一資料夾:
C:\Gehtsoft\IndicoreSDK\strategies\standard
或者C:\Program Files\Candleworks\FXTS2.Dev\Strategies\Standard\
。 - 找到下列檔案:
ma_advisor.lua
和ma_advisor.lua.rc
。 - 複製這兩個檔案。
- 在檔案總管中開啟以下資料夾:
C:\Gehtsoft\IndicoreSDK\strategies
。 - 貼上這兩個文件。
複製 Fxcodebase 策略
如果想對來自 http://fxcodebase.com 的策略進行回溯測試/優化,請:
- 將策略儲存至
C:\Gehtsoft\IndicoreSDK\strategies
。 - 如果策略需要一個或多個自訂指標,將所有指標儲存至
C:\Gehtsoft\IndicoreSDK\indicators
。
執行偵錯器
現在執行 Lua Strategy Debugger 應用程式(位於開始功能表的 Indicore SDK 應用程式群組中)。
對策略進行回溯測試
為什麼要先進行回溯測試?
首先,您應該檢查策略執行速度是否足以讓您成功完成優化。它還將使您瞭解優化該特定策略的效果。
設定回溯測試
- 在偵錯器中,按一下 Tools(工具)->Check Performance/Backtest(檢查效能/回溯測試)。將會出現策略清單。
- 選擇您想進行回溯測試的策略(在我們的示例中即為 MA_ADVISOR),然後按一下 OK(確定)。將會出現回溯測試設定對話方塊。
- 首先,指定模擬參數。我們的策略僅針對一種商品,因此我們將僅設定 First Instrument Price Source(第一種商品的價格來源)參數。將游標放在參數值欄位中,並按一下省略號 (
...
) 按鈕。您將看到 Choose Price Source(選擇價格來源)對話方塊。您可以按一下 File(檔案)並選擇之前儲存的價格檔案,或者按一下 Quotes Manager(報價管理器)以使用之前從報價管理器下載的資料。然後按一下 OK(確定)。
- 其餘模擬參數保持預設值。預設參數設定與使用無避險設定的英國微型賬戶一致。
- 要模擬避險賬戶,請將 Are closing orders allowed?(是否允許平倉單?)和 Is hedging allowed?(是否允許避險?)均設為 Yes(是)。
- 要模擬 FIFO(先進先出)賬戶,請將 Are closing orders allowed?(是否允許平倉單?)和 Is hedging allowed?(是否允許避險?)均設為 No(否)。
- 要模擬微型賬戶,請將 MMR(維持保證金要求)設為 1,Lot Size(每手大小)設為 100。
設定策略參數
指定模擬參數後,還需要設定策略參數。為此,
- 在 Parameters(參數)對話方塊中,找到 Indicator Parameters(Price)(指標參數[價格])群組,並將 Timeframe(時間框架)設為H1(1 小時)。以移動平均線為基礎的策略在這樣的時間框架內效果更好。
- 然後找到 Indicator Parameters(Trading Parameters)(指標參數[交易參數])群組,並將 Allow trading(容許交易)設為 Yes(是)。否則,該策略將不會交易。
我是否可以對 1 分鐘時間框架進行回溯測試?
可以。但是,在這種情況下,您需要設定圖表視圖。預設情況下,顯示的是 1 小時報價。對 1 分鐘策略而言,由於每根棒線都有許多交易,這樣的圖表可能不太方便。要設定圖表視圖,在 Parameters(參數)對話方塊中,找到 Chart Parameters(圖表參數)群組,並將 Timeframe(時間框架)設為 m1(1 分鐘)。
開始回溯測試
要開始回溯測試,您應如上所述設定所有參數,並按一下 OK(確定)。
執行回溯測試
一旦開始回溯測試,可能會顯示更多下載歷史資料的提示。當策略需要交易歷史(在我們的示例中即為 1 小時歷史資料)時,即會出現這些提示。
如果您要對全年範圍的 H1 或更小時間框架的資料進行回溯測試,只需按一下 Empty History(清空歷史資料)。這種情況下,回溯測試器會使用模擬的價格點收集歷史資料。
如果使用更長的時間框架(日、週,等),按一下 Empty History(清空歷史資料)可能會導致策略啟動交易延遲,因為要等回溯測試器收集完足夠資料。這種情況下,您可以使用報價管理器服務器。在對話方塊中選擇 Quotes Manager(報價管理器),按一下 OK(確定),即可載入所需資料。
讀取回溯測試結果
輸出
首先,看一下偵錯器的 Output(輸出)標籤上的資訊。
- 自上一次啟動後必須沒有錯誤。
- 策略必須沒有偵錯輸出,因為這會嚴重減緩優化速度。
- 檢查效能報告。使用 3.0GHz 處理器,回溯測試的時間不應超過 10 秒鐘。否則優化的時間將會非常長。如果回溯測試時間超過了 10 秒鐘,應先優化策略效能。請聯絡策略開發人員,如果您是開發人員,請先閱讀以下文章:策略優化
總體統計
然後,您可以透過 Statistics(統計)標籤,檢查策略的總體表現。
成績並不是非常好。該策略在一年中盈利 576 美元,但這一年最大虧損額達到了 2082.60 美元(參見最大餘額跌幅)。
圖表
最後,您可以透過檢查 Chart(圖表)標籤,查看淨值和餘額曲線。
淨值曲線有漲有跌,因此策略盈利與否的機會均等。
結論
正如您所見,策略執行速度很快,足以在優化器中使用,而策略也確實需要優化。
優化策略參數
設定優化器
- 在偵錯器中,按一下 Tools(工具)->Optimize(優化)。將會出現策略清單。
- 選擇您想優化的策略(在我們的示例中即為 MA_ADVISOR),並按一下 OK(確定)。將會出現優化設定。
- 按照設定回溯測試參數的方法來設定這些模擬參數。
- 將 Profit Factor(盈利因素)設為預設優化參數。
注意:要瞭解什麼是 Method(方法)參數,請參閱優化策略參數。
注意:如果您的電腦上正在執行對時間要求很高的應用程式(例如,用真實賬戶操作交易平台),請在 Agents number(代理數量)參數中指定一個較小的值。這將對優化進程的速度有些影響,但可以為處理器留出處理其他應用程式需要的時間。
注意:我們強烈建議使用四核處理器(i5、i7)來優化策略。
設定策略參數
- 首先,要決定必須優化哪些參數。在我們的示例中,有兩個參數要優化:快速移動平均線的週期數和慢速移動平均線的週期數。從不同來源看,快速移動平均線的參數值範圍在 3 至 12,慢速移動平均線的參數值範圍在 13 至 30。讓我們看一下其中哪個參數可以讓 EUR/USD 在 2010 年獲得最優結果。
請注意,可以優化的參數左邊都有一個加號。按一下該符號可以設定最小和最大值來搜尋最優參數。
- 不要忘記將 Timeframe(時間框架)設為 H1(1 小時),並將 Allow Trading(容許交易)設為 Yes(是)。
執行優化器
與回溯測試一樣(#執行回溯測試),優化器同樣會要求您提供歷史資料。按一下 Empty History(清空歷史資料),或者按照回溯測試的操作選擇歷史資料。
優化的時間取決於:
- 策略執行的速度;
- 您選擇進行優化的參數數量;
- 需要優化的值的範圍。
若使用單顆 Intel Core i7 3GHz(8 核)處理器,對指定參數進行優化只需約 1 分鐘。
讀取優化結果
輸出
Output(輸出)顯示的是內部優化參數和顯示了最優結果的參數集的編號。
結果表
優化結果表顯示了所有經測試的參數集和每個參數集的統計資訊。最優集合以綠色高亮顯示,而那些完全沒有盈利的參數集則用紅色高亮顯示。
結果圖
結果圖顯示優化結果。經過優化的任意兩個參數均可作為軸。綠色的儲存格顯示了能夠盈利的結果,紅色儲存格則用來顯示無盈利的結果。您可以使用此圖為另一輪遺傳或窮舉優化尋找更小的模式。
右鍵按一下該圖可設定視圖。
按兩下儲存格可在結果表內查找參數集。
重測優化結果
使用最優參數對相同價格進行回溯測試
再次啟動回溯測試,但這次在參數欄內輸入 3 和 27(透過優化器找到的最優參數集)。
讓我們看一下 2010 年淨值曲線的結果。
是不是好多了呢?沒有下跌,淨值曲線穩步上揚。
無預約優化
無論如何,這些參數對 2010 年而言已經足夠好了,但對於優化中未使用的 2011 年會如何呢?對這樣的範圍測試這些參數就稱為無預約優化。讓我們使用同樣的參數進行測試並看一下 2011 年前三個月的回溯測試結果:
所以,至少對於 2011 年的前 3 個月而言,這些參數還是足夠好的。當然,您不應該假設這些參數在很久以後表現仍然這麼好。以我們的經驗看來,先前的優化結果最長的有效時期不應長於用來優化的時期的 1/4。也就是說,如果將 2010 年的資料用來優化,這些參數至多在 2011 年第一季度保持有用。
亦請參閱
其他語言版本
Language: | English • español • français • русский • 中文 • 中文(繁體) |
---|