用蒙地卡羅模擬法來看資金管理的一些模型[程序化老手]
有些人在開發出來一套系統之后,就會開始投入資金作實際的交易了。有關于資金管理的議題,大部分的人可能用固定資金模型(比如說三十萬臺幣作一口臺指期),或是用像我很久以前用的模型:每一口所需要的保證金加上系統的maximum drawdown來操作一口,比如說系統測試出來的maximum drawdown是15萬臺幣,那加上臺指期每口的保證金8萬,就用15+8=23萬臺幣來操作一口臺指期商品。然后就認為這樣的資金應該就足夠可以作長久的操作了。
但是這樣的資金管理方式其實還是有斷頭(破產)風險的。尤其是對于使用順勢系統的人而言,順勢系統的特性就是輸小贏大,在市場沒有出現趨勢的時候,系統可能會被巴來巴去。這時候會出現很多筆小額的虧損,然后等到趨勢發生的時候,再來狠狠的贏上一筆大金額的獲利。
這時候有一個問題會產生:如果我們的資金在很多筆小額虧損的時候就全部輸光光的話,怎麼辦?
答案其實也很簡單:就是斷頭(破產)而已。
如果準備的資金不夠充足的話(<=這句話是重點),很可能在趨勢還沒發生的時候,我們就已經沒錢可以繼續賭下去了。更讓人吐血的是,市場通常在我們斷頭破產以后就出現一個完美的大趨勢。這時候我們就只能看著市場噴出的K線圖在牆角哭泣而已。
接下來可能會有人問:那我到底應該準備多少資金來作交易才足夠?
這裡跟各位報告一個方法,可以用蒙地卡羅模擬的方法來看每種資金管理的方式,對于我們的最終財產和破產風險(risk of ruin)的影響會是如何。
蒙地卡羅模擬法的作法是:採用交易系統所測試出來的每一筆輸贏資料,經過亂數的挑選,去模擬未來實際交易時所可能會產生的資金曲線(equity curve)。然后搭配不同的資金管理模型,來看最終財產和破產風險的機率百分比。
這裡就以我實際交易的e-mini S&P 500系統來作例子說明(系統在這篇文章有說明:
http://tw.myblog.yahoo.com/Blue-Specula ... =1#yartcmt
這個系統過去11年的equity curve長的是像這樣的,看起來應該還可以。在貼出文章以后也賭贏了一些錢,:
這個系統一些基本的測試資料和假設如下:
歷史測試時間: 1997 – 2008年,約11 年的時間
Max drawdown(Intra-day) : 約USD $17,000
交易保證金:約USD$6,000(接下來我們假設交易過程中,如果資金輸到比一口的保證金還要少而無法開倉的話,就斷頭破產出場,不再交易)
交易成本:滑價和傭金,每次來回設USD$30。
作1000次的模擬,看系統在未來一年的交易狀況。
現在我們看幾種資金管理的模型,來看不同的資金管理模擬出來的結果會是如何:
1. Fix contract(每次都只交易一口),用保證金三倍的初始資金來作交易。
2. Fix contract(每次都只交易一口),用保證金 + maximum drawdown的初始資金來開始交易。
3. Fix amount(每固定USD $10,000元交易一口合約)
4. Conservative Fixed(下面會詳細說明公式)
1. Fix contract(每次都只交易一口),用保證金三倍的初始資金來作交易。
保證金是USD$6000,所以三倍的金額就是USD$18,000。那我們用USD18,000來開始交易。最終財產的分配圖長的會是像這樣。
可以看得出來,如果我們只用USD18,000來作交易的話,經過一年的交易以后,我們仍然有7%的機率會被斷頭出場。而最終財產的中位數會是落在USD$26,500左右。
而發生Maximum Drawdown的中位數約略是30%,也就是大約一半的人會發生30%的Maximum drawdown。
2. Fix contract(每次都只交易一口),用保證金 + maximum drawdown的初始資金來開始交易。
保證金是USD$6000,Maximum drawdown是USD$17,000。那我們用6,000+17,000=USD23,000來開始交易。最終財產的分配圖長的會是像這樣。
可以看得出來,如果我們只用USD23,000來作交易的話,經過一年的交易以后,我們被斷頭出場的機率會由7%降到變成只有2.5%。而最終財產的中位數會是落在USD$30,000左右。
而發生Maximum Drawdown的中位數會由30%降為26%,也就是大約一半的人會發生26%的Maximum drawdown。
3. Fix amount(每固定USD $10,000元交易一口合約)
接下來我們提高準備的初始資金,然后採用不同的資金管理模型。假設我們準備USD$30,000來開始交易的話。然后採用fix amount的資金管理模型,也就是每USD10,000交易一口合約,如果我們初始資金是三萬的話,就是交易三口合約。當資金增加到八萬的時候,就交易八口合約。依此類推。
這樣最終財產的分配圖長的會是像這樣。
可以看得出來,如果我們增加初始資金到USD$30,000來作交易的話,經過一年的交易以后,我們被斷頭出場的機率會增加到12%左右,因為現在等于是每一萬元就交易一口,風險會變的比較大。而最終財產約略會是落在USD$42,000左右。
發生Maximum Drawdown的中位數,則會因為我們隨著資金的增加,而增加我們交易的口數。會提高變成為65%,也就是大約一半的人會發生65%的Maximum drawdown。這種drawdown看來是有點難以讓人接受。
4.Conservative Fixed
這個模型有點類似fix amount模型,但是增加交易合約數量的速度比較慢一點。是屬于比較保守一點的資金管理模型。
計算的方式是:
第一口合約所需資金 = 保證金 + Maximum Drawdown
第二口合約所需資金 = 第一口合約所需資金 + 保證金 + Maximum Drawdown*2
第三口合約所需資金 = 第二口合約所需資金 + 保證金 + Maximum Drawdown * 3
第四口合約以下就是依此類推。
假設我們同樣也是準備USD$30,000來開始交易的話。然后採用conservative fixed的資金管理模型。這樣最終財產的分配圖長的會是像這樣。
可以看得出來,如果我們採用這個資金管理的模型后,我們被斷頭出場的機率也會大幅減少,變成不到1%。而最終財產的中位數會是落在USD$38,000左右。
而且發生Maximum Drawdown的中位數,也會因為我們採用比較保守的資金管理模型,降低變為只有20%,也就是大約一半的人會發生20%的Maximum drawdown。這種drawdown看來就比較容易讓人接受一點。
上面簡單介紹幾種資金管理的模型和蒙地卡羅的模擬方法。剛開始看的人可能會覺得很難,其實懂了原理以后就不會很困難。這個蒙地卡羅測試的軟體是免費的,有興趣人的可以來這裡download:
http://www.tickquest.com/product/equitymonaco.html
我個人是覺得很好用。而現在財務風險管理裡面所談的Value at Risk(VaR,風險值),也可以用這種蒙地卡羅模擬來做出來。VaR是風險管理當中的一個衡量值,有興趣的人可以到這些地方看看:
http://greenhornfinancefootnote.blogspot.com/2007/11/risk-metricsstandard-deviationrisk-of.html
http://tw.myblog.yahoo.com/601114-VAR/
http://web.ydu.edu.tw/~kkau/risk/VaR.ppt#1
蒙地卡羅模擬的限制:
其實蒙地卡羅模擬法也是有他的限制和缺點的。因為蒙地卡羅模擬法是採用系統”過去的測試資料”來作”未來的模擬”。所以有一個很大的限制,就是如果這個系統是經過over-fitting的話,那麼過去的歷史資料就會很漂亮,而我們用這種很漂亮的歷史資料去跑任何的模擬,也都是假的。所以先決條件就是系統不能有over-fitting的情形發生,要避免這種情形就要靠walk forward analysis,參數孤島(參數高原)等方法來避免。這一點在部落格之前的文章有做過說明了。
而如果過去的歷史資料沒有包含到類似像世貿大樓911事件,或是520兩顆子彈事件,則在未來的時間如果發生像這種重大事件的話,則需要靠情境分析(Scenario Analysis)和壓力測試(Stress testing)來作分析了。
有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友
可聯系技術人員 QQ: 511411198 進行 有償 編寫!(不貴!點擊查看價格!)
- 上一篇:日內交易:出場比進場重要得多!!
- 下一篇:沒有了!
相關文章
-
沒有相關內容