程式交易教學

誠邀您參加全球知名外匯經紀商OANDA的自營交易(Prop Trader)

報名OANDA自營交易(Prop Trader),並通過我們的考核,您就可以使用OANDA提供的資金進行交易,獲得高達75%的交易利潤分成。

限時優惠代碼
在購買挑戰時,輸入"LABS20",即可獲得20%的限時優惠(此優惠截止日期為2024年3月17日)。

500,000美元交易資金
您可以使用最高500,000美元的資金進行交易。

豐富的交易商品
您可以交易包括外匯、黃金、原油、股票指數等多種商品。



活用蒙地卡羅法並透過回測估算未來回落的方法


由於回測中的最大回落是基於過去數據的盈虧得出,因此難以作為估算未來回落幅度的依據。

透過單次的回測,並無法判斷最大回落將會因為偶然因素而出現較大或較小的結果。

從回測的傾向來估算往後發生的回落極為重要,而非只於事後再透過回測來說明已經明顯形成的回落。

回落進行說明

在本篇文章中,將說明採用蒙地卡羅法來考察「未來必須容忍多大幅度的回落」的方法。

只要得知必須容忍的回落幅度,即可在未來發生回落的時候,判斷應該持續進行或停止運用系統。

什麼是蒙地卡羅法

在系統損益中的蒙地卡羅法,是利用亂數假設一個出現各種盈虧的系統場景,再以此來進行系統評估以及風險管理的手法。

為了掌握整體的概念,首先將簡單說明蒙地卡羅法的步驟。

先準備好回測以及即時前瞻抽樣得出的盈虧資料。

從準備好的盈虧資料當中,隨機抽樣取出n次的交易盈虧。
在此必須注意,隨機抽樣並非隨機排序或是不重複抽樣,而是採用重複抽樣(允許重複抽出)。

可將此隨機抽樣得到的交易次數n製成新的損益資料。

藉由重複進行這樣的過程,此隨機抽樣得出的交易次數n,將會產生無數個盈虧資料。
以下將舉例說明。

下圖為100次交易的隨機抽樣。

100次交易的隨機抽樣

其次為重複1000次的100次交易隨機抽樣示意圖。

100次交易隨機抽樣示意圖

從已經實現的盈虧資料當中,可得出複數(在此範例中為1000)的評鑑指標 (獲利因子、最大回落等等)。

蒙地卡羅法的目的

已經實現的損益資料並非來自於回測或即時前瞻的路徑。

不同路徑的盈虧資料可能會偏於正面,亦可能偏於反面。
當實際運用於系統上時,有可能時運不佳而出現偏向反面的結果,為了避免因為這樣的狀況導致預料之外的損失,便可事先利用蒙地卡羅法來估算「時運不佳而偏向反面的結果」。

由於蒙地卡羅法是利用隨機採樣的結果加以評估,並獨立進行系統盈虧的假設,因此可能不適用於具有高度相依性的系統。

關於盈虧的相依性

以下將考察獨立測試的假設不適用於模擬回落的理由。

獨立測試可視為投擲硬幣。
無論投擲硬幣的結果已經連續出現了多少次的正面或反面,下一次的結果依然會是50%的機率。
獨立測試便是如此,下一次的結果不會受到過去的結果所影響,機率與期望值都會維持固定不變。

而相依測試與獨立測試有所不同,過去的結果將會影響下一次的機率與期望值。

以下為具有高度相依性的損益示意圖。

損益示意圖

與勝負隨機發生的損益傾向(獨立測試)相比,正向的高度相依性容易造成較大的最大回落,而反向的高度相依性則會帶來較小的最大回落。

也就是說,若使用獨立測試的蒙地卡羅法,在估算具有高度正向相依性的系統最大回落時,將會出現過小的評估結果。

同樣地,當估算具有高度反向相依性的系統時,將會出現過大的評估結果。

調查有無相依性的連檢定

驗證有無相依性的方法眾多,以下將針對連檢定加以說明。

連檢定可調查數列「有多接近獨立測試」,並以數值加以顯示。

連檢定常用來查詢大於中間值的數值將會連續抑或交互出現。

若將連檢定用於交易中的損益,將可得知結果會大於0還是小於0,意即能夠判斷交易的結果會成功還是失敗。

連續成功或失敗的交易可統稱為連,並如以下所示加以計算。

交易成敗

正向相依性越高則連的數量越少,反向相依性越高則連的數量越多。

當進行獨立測試時,可以透過以下公式得出連的平均數與變異數,再從計算出的分數Z來判斷「應該屬於獨立測試的範疇,還是當作相依測試」。

平均數與變異數

在此範例公式的數值中,分數Z若比±1.96更接近0便屬於獨立測試,高於+1.96則代表具有高度的反向相依性,反之低於-1.96就代表具有高度的正向相依性。
1.96這個數值是基於統計學的標準常態分布表所得出。

雖然可以透過連檢定來調查是否具有相依性,但仍難以藉此來精準判斷是相依測試或獨立測試。

此處相當重要的一點,即是模擬蒙地卡羅法中分數Z為0時的損益。

針對分數Z過低的系統,若使用蒙地卡羅法來估算最大回落,便會得到過小的評估結果,而針對分數Z過高的系統,若使用蒙地卡羅法來估算最大回落,則會得到過大的評估結果。

透過連檢定所得出的分數Z,將可用於判斷蒙地卡羅法估算出的最大回落「有多少參考價值」。

模擬最大回落

使用實際的資料來進行蒙地卡羅法,並將得出的複數最大回落以直方圖來表示。

此處將單次抽樣用於100次交易,並進行5000次的蒙地卡羅法測試。

也就是針對作為估算目標的系統,從回測與即時前瞻測試中隨機取出100次交易,並製成新的盈虧路徑,再將其重複5000次來產生5000條盈虧路徑。

左側圖表即為產生的5000條盈虧曲線。

右側則是分別計算5000條盈虧路徑的最大回落並製成直方圖。

直方圖

將盈虧各自獨立作為前提,產生的5000條盈虧路徑可視為「若盈虧資料的特徵不變,未來將可能出現的盈虧路徑」。
在原本就具有優勢的狀況下,可將蒙地卡羅法的結果歸納為「只要能持續保持該優勢,未來將可能形成這樣的局勢」。

若將得出的5000個最大回落合併分割成10個數據分組,將能目測判斷可能發生的最大回落幅度。

10個數據分組

以下來確認數據分組的資料內容。

數據分組資料

針對最可能發生的第2個合併項目,可以見到實際測出的機率數值為38.04%、最大回落的幅度則是16431〜27073。
當運用此系統進行100次交易時,就應該設想可能會發生此幅度的最大回落。

接下來,要考量最大回落達到容忍度上限的的局勢。

本次將95%作為必須容忍的發生機率。
以下來關注同表格的第5個項目。
由於第5個項目的累積(%)為96.46,因此可判斷絕大多數的最大回落都止步於第5個項目。

96.46%概率

因為第6個項目之後的最大回落發生機率低於5%,故若將其判斷為異常狀態,則第5個項目為止的最大回落幅度即為必須容忍的範圍。

也就是說,最大回落到58998為止皆可以接受,一旦大於此數值就可視為異常狀態。

總結

最後再回顧一次,判斷蒙地卡羅法時「前提為使用獨立測試,且驗證資料的優勢保持不變」,只要失去此前提便應視為異常狀態(當最大回落超過容忍範圍)。
如果是基於具有優勢的驗證資料來運用系統,那麼一旦失去此前提就應該停止使用。

將EA自動程式交易應用於外匯與差價合約交易中

EA

我們以圖文形式詳細介紹有關EA自動程式交易的基本知識,以及在MT4/MT5平台上的安裝、參數設定方法、編碼等等內容。另外,對持有OANDA帳戶的客戶,還可以免費使用我們的獨有EA與指標工具。

誠邀您參加全球知名外匯經紀商OANDA的自營交易(Prop Trader)

報名OANDA自營交易(Prop Trader),並通過我們的考核,您就可以使用OANDA提供的資金進行交易,獲得高達75%的交易利潤分成。

限時優惠代碼
在購買挑戰時,輸入"LABS20",即可獲得20%的限時優惠(此優惠截止日期為2024年3月17日)。

500,000美元交易資金
您可以使用最高500,000美元的資金進行交易。

豐富的交易商品
您可以交易包括外匯、黃金、原油、股票指數等多種商品。