對於一個趨勢型的策略,最怕就是盤整期了,通常會增加濾網或其它方式
減少這段時間被修理的次數,讓操作者在這段時間心理面好受一些,
不至於受不了去停掉策略.
但濾網是一体兩面的,雖然會減少被巴的機會,
但也可能會限制住趨勢型成時的獲利爆發性
有時加太多還有可能造成過度最佳化.

在這段盤整期間,除了在程式策略內加濾網改善外,
其實還可以從損益曲線來下手
對於一個趨勢跟隨策略來說,當操作商品盤整或波動變小時,
損益曲線就會產生回落的情況.
如以下是使用一個均線策略的損益曲線 (HMA 均線,交乂買賣)
圖片 2  
也可以說:
當策略本身運行模式,不符合大部份價格走勢時,損益曲線就會產生回落.
當策略本身運行模式,符合大部份價格走勢時,損益曲線就會創新高.

所以,可以利用這個特性在損益曲線回落,停止交易或縮小口數,來控制住風險
當損益曲線又拉起來時再進入市場或放大口數.
當然這種做法,可能會有一段獲利沒參於到.
但對於我這種資金量小的操作者來說,在策略運作上會比較舒服一些.

三部曲
1.策略完成,感覺不錯,實際投錢進去跑
圖片 3  
2. 運氣不好,一進去就遇到盤整,或是走勢不符合策略的情況.
    破了MDD,或心理受不了,資金準備不足..等等原因,停掉策略.
圖片 4  
3. 但停掉不久後盤勢轉好,獲利又創新高..>_<
圖片 5  
這種事,我常發生.....

那要如何增加這種風險控制呢?
我們可以把損益曲線當商品來順勢操作,
當突破N日高點時買入,突破N日低點賣出
轉成
當突破N筆損益曲線高點時,加碼或開啟策略進入市場,
當突破N筆損益曲線低點時,減碼或關掉策略暫時離開市場,

如用以上的均線策略做例子,
當跌破前50筆損益曲線低點時就停止做單,(用布林函數把程式關掉,或用 0 contract)
當又回到前50筆損益曲線高點時就開始做單,(用布林函數把程式打開,或用1 contract)
這裡的例子拉回時完全不做單,也可以改成拉回時口數減少.
變動後可以看到以下回測比較
X軸是時間
Y軸是獲利
原本:
圖片 8  

加入風險控制:
圖片 9  
在績效拉回創新低,賠錢的日子就直接不交易了
回測報表上當然MDD也會變少
原本:
圖片 11  
修改後:
圖片 10  
犧牲掉一些獲利來換取策略的穏定性.
這方式算是加個保險, 好或壞也是見人見智囉,
沒有一定是這樣做比較好.
要看個人的操作習慣或資金運用了.

那這在程式上要如何做呢?
其實就是利用ADE,同一個策略同商品開兩個圖
一個正常執行,並記錄目前的Netprofit值,並找出前n筆高低值傳給另一個
另一個(主要執行者)收到後,根據這個值來調整進場口數,或要不要做單.
主要問題會出現在ADE的使用上,可以先參考這篇
使用那兩個ADE.Get ADE.Put 函數做值的傳送
ADE搞定了,接下來就不難了

資料來源:程式交易
arrow
arrow
    全站熱搜

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