新網站連結:http://wenschair.blogspot.tw/2013/10/blog-post.html

 

 

 

四種必學的資金控管部位縮放法(含程式碼)

   

常見的策略模型多半以單口為基礎,當策略完成開發之後,專業的程式交易員最後會把資金的配置及部位的縮放的邏輯也寫進策略,目的只有一個就是希望策略表現很優秀的時候,可以依照一定的邏輯自動縮放部位,在這裡我提供我自己常用的四種資金控管及部位縮方程式碼,供進階的讀者下載使用。

 

    上面這個是某個程式策略的歷史回測資料,在中間紅色的虛線左邊,採用單口策略的執行,紅線的右邊則是將程式語法啟動部位縮放的邏輯,我要的表達的東西很簡單,就是當我賺到一定程度後,在固定的MDD%之下,我要策略依照邏輯自動幫我加碼,一方面可以省去我資金控管的時間,另一方面又能有效擴大績效。單口策略是用等差累計的方式進行績效累積,獲利曲線呈緩慢的線性成長(圖中左邊);而增加部位縮放邏輯之後,獲利曲線則會呈現指數成長(如圖中右邊)。

 

    下圖為加入部位縮放語法後的當沖範例策略,當連續幾次獲利達到策略中的邏輯,彈性增加部位。



    這種部位縮放(Position Sizing)邏輯屬於資金控管策略的一種,一般比較專業的程式交易人員都會在此有所著墨,我所見過的部位縮放邏輯大概有數十種,其中我篩選出四種我認為比較有價值的,建議讀者無論如何至少學會這四種部位縮放邏輯,可以把程式碼加入自己的策略,練習寫看看,相信可以幫你把對程式交易的知識再提升一個層次。

 

    為了要讓讀者更進一步深入了解,我提供一個當沖範例策略作為練習使用,這是一個開盤價區間突破的策略,區間大小的決定方式為參考網路上大陸白糖期貨策略的語法,只是我測試的不是白糖而是台指期的歷史資料而已。首先我們先測試這個策略最原始的版本(進出都是1),不設交易成本,測試數據為台指期30分鐘K線,回測摘要如下:

 

  • 策略名稱/商品:WhiteSugar @ 台指期30分鐘K線 (示範策略未設手續費)

  • 淨利(Net Profit):  4,948,200

  • 獲利因子(Profit Factor):1.67

  • 歷史最大平倉虧損(c-c Max Drawdown): 99,400(-16.86%)  →記住這個百分比

  • 最大持倉口數:1

  • 起始成本設定:100,000






(1) 固定收益部位縮放法(Fixed Profit position sizing)

 

完整邏輯: 每當賺取到一個定額利潤後,則增加1口。首先我們將上面的當沖範例策略加進固定收益部位縮放法來看看結果,不設交易成本,測試數據為台指期30分鐘K線,參數一樣不變,最大口數上限設定為20,開始執行部位縮放法統一時間為2009/1/5,每獲利取得10(一個原始保證金,就加入1)

 

參數設定:

 下圖為此次測試式示範設定,讀者可自己下載程式碼並修改內容或測試於自己的策略中。

 

測試摘要:

  • 策略名稱/商品:WhiteSugar + 固定收益部位縮放法@ 台指期30分鐘K線

  • 淨利(Net Profit):  11,180,000

  • 獲利因子(Profit Factor):1.32

  • 歷史最大平倉虧損(c-c Max Drawdown): ,1,452,000(-16.86%)

  • 最大持倉口數:20

  • 起始成本設定:100,000




(2) 固定總資金風險部位縮放法(Fixed risk% position sizing)

 

完整邏輯:  接著我們再將原始範例策略加進另一種部位縮放語法「固定總資金風險部位縮放法」來看看結果如何,這種方式的邏輯就是限定總資金的風險,在固定每日資金風險的情況下進行加減碼。

 

參數設定:

 我們一樣不設交易成本,測試數據為台指期30分鐘K線,參數同樣,最大口數上限設定為20,開始執行部位縮放法統一時間為2009/1/5,設定每日單口最大風險為6000元,期初投入資金為500,000(假設2009/1/5才投入此資金做第1),每日最大的風險不可以超過總資金之2%,舉例來說,假設目前的獲利加上成本已經到達200萬,當日最大的資金風險設定為不得超過200× 2% = 4萬元,因為每口有設固定停損點6000元,要控制總風險小於4萬元意思就是當本金達200萬時,最高只能做6下圖為此次測試式示範設定,讀者可自己下載程式碼並修改內容或測試於自己的策略中,這個策略最大的好處就是限定單日最大的風險值。


測試摘要:

  • 策略名稱/商品:WhiteSugar + 固定總資金風險部位縮放法@ 台指期30分鐘K線

  • 淨利(Net Profit):  8,723,800

  • 獲利因子(Profit Factor):1.36

  • 歷史最大平倉虧損(c-c Max Drawdown): ,1,128,600(-16.86%)

  • 最大持倉口數:20

  • 起始成本設定:100,000  (2001開始的回測預設值,不是很重要),在2009/1/5正式投入500,000進行部位縮放的起始金額。



(3) 保證金目標部位縮放法(Fixed Margin position sizing)

 

完整邏輯:  這個邏輯很符合一般人對固定桿槓的需求,假設某商品的原始保證金不用10萬元,但是為了保險起見,我用50萬只做1口單,其中只有20%真實被用在保證金上,其餘80%為預備緩衝金,這個保證金目標部位縮放法就是用這個邏輯發展出來的,首先先預設總資金可投入原始保證金的百分比,先把槓桿固定住,再去換算合理的部位縮放時機。

 

參數設定:

 我們一樣不設交易成本,測試數據為台指期30分鐘K線,參數同樣,最大口數上限設定為20,開始執行部位縮放法統一時間為2009/1/5,設定每日單口最大風險為6000元,期初投入資金為500,000(假設2009/1/5才投入此資金做第1),只願意拿出總資金的30%作為原始保證金使用,剩下的70%為預備金,在固定只有30%總資金的情行下(固定槓桿)進行部位縮放,假設目前的獲利加上成本已經到達100萬,當日可用的最大的資金設定不得超過100× 30% = 30萬元,設定每口大台的原始保證金為8.3萬元,所以30萬元最高只能做3口單,以此類推

 

測試摘要:

  • 策略名稱/商品:WhiteSugar + 保證金目標部位縮放法@ 台指期30分鐘K線

  • 淨利(Net Profit):  8,898,600

  • 獲利因子(Profit Factor):1.34

  • 歷史最大平倉虧損(c-c Max Drawdown): ,1,241,200(-16.86%)

  • 最大持倉口數:20

  • 起始成本設定:100,000  (2001開始的回測預設值,不是很重要),在2009/1/5正式投入500,000進行部位縮放的起始金額。



(4) 最大連續虧損資金部位縮放法(MaxDD position sizing)

 

完整邏輯:  這個部位縮放法利用策略MDD及原始保證金換算出來每新增口數所需的資金,當獲利超過這筆資金時,就會順勢加碼,反整則減碼。

 

參數設定:

      最後我們再將原始範例策略加進上述所教大家的最大連續虧損資金部位縮放法來看看結果如何,一樣不設交易成本,測試數據為台指期30分鐘K線,參數同樣,最大口數上限設定為20,開始執行部位縮放法統一時間為2009/1/5,設定每日單口最大風險為6000元,期初投入資金為500,000(假設2009/1/5才投入此資金),單口MDD已知約10(設定在參數),總資金達2倍保證金+1口原始保證金時才開始第1口交易;資金金達4倍的保證金+2口的原始保證金才開始加碼,以此類推。(在這裡要注意,如果一開始輸入的期初投入資金就超過可作2口所需的資金,一開始就會用2口進場唷,除非你自己增加MDDRatio這個參數)

 

每口所需的資金的公式 = MDDRatio × MaxDD + 原始保證金



測試摘要:

  • 策略名稱/商品:WhiteSugar + 保證金目標部位縮放法@ 台指期30分鐘K線

  • 淨利(Net Profit):  8,521,600

  • 獲利因子(Profit Factor):1.35

  • 歷史最大平倉虧損(c-c Max Drawdown): ,1,160,600(-16.86%)

  • 最大持倉口數:20

  • 起始成本設定:100,000  (2001開始的回測預設值,不是很重要),在2009/1/5正式投入500,000進行部位縮放的起始金額。

 

    從上面這些測試的結果可以發現,如果是在有獲利到達一定程度的情況才開始加碼的話,MDD佔當時的總資金(包含淨損益+初始資金)的百分比一樣是16.86%,說穿了就是用類似這種部位縮放邏輯,可以在不擴加MDD的情況下,讓績效以等比的方式成長,如果你認為自己的策略非常長效,不妨自行撰寫並測試此種邏輯,以便讓你在很有紀律的情況下把利潤放大。以上的範例為日內當沖策略的資金控管程式語法教學,波段會有跳空風險,因此MDD不一定可以守得住,不過你可以試著寫寫看,在這裡提供開放程式碼目的為希望讀者可以學到進階的程式邏輯。

 

    為了讓使用者可以用最快的方式練習此程式語法及背後的邏輯,我這裡提供上述所有邏輯的開放程式碼,目的是希望讀者透過此一教材學習部位縮放的語法,使用者可以任意修改語法內容,或加入自己的想法及參數,但僅限個人學習使用,請勿用於商業用途或串接帳戶交易。

 

-------------------------------------------------------------------------------------

下載檔案:

 

「四種必學的部位縮放法---開放程式碼(完整版)」

 

內容包括:

 

(1) 1組範例當沖策略開放程式碼(開盤區間突破策略)。

(2) 四種必學的部位縮放法之開放程式碼。

    →固定收益部位縮放法(Fixed Profit position sizing)

    →固定總資金風險部位縮放法(Fixed risk% position sizing)

    →保證金目標部位縮放法(Fixed Margin position sizing)

    →最大連續虧損資金部位縮放法(MaxDD position sizing)

 

下載方式:

本文屬權限文章,僅供少數進階讀者付費閱讀。

https://docs.google.com/spreadsheet/viewform?formkey=dDhwWmxQUTBUQnh0bDhtQm1CZUhYLWc6MA#gid=0

 

下載連結:(需先付費取得權限)

https://docs.google.com/document/d/1AU4LriO0O0jkTLqMd2EjCuTncxPSUyC_fBL5kPUFsWQ/edit




[程式碼使用須知]

1. 所有程式碼及測試結果僅供個人撰寫程式碼學習使用,請勿轉作商業用途或串接交易帳戶。

2. 程式碼為開放式程式碼,使用者可任意修改語法、調整參數及搭配自己撰寫的策略進行多商品測試,使用者應以學習為目的。

 

 

 

 

 

 

 

 

======================================================================

 

●未來只要我找到市場上具有價值的學習教材,站長我都會統一收藏到下面的頁面中,有免費的基礎教材,也會有比較進階且專業的付費學習教材,供不同層次的讀者研究。另外最近我加入一些新的教材,包括GM Price全球商品的交易策略開放程式碼,提供給有單一策略應用於多商品的進階讀者學習語法。
 

 

創作者介紹

程式交易≠Holy Grail

wenschair 發表在 痞客邦 留言(0) 人氣()