【美股最權威投資國外期貨/程式交易/最佳外匯交易平台指南】【GoForTrading/GO交易】's Archiver

gogogo 發表於 2014-8-7 16:38

Multichart 利用損益曲線做加減碼

[size=3]【國外外匯期貨開戶交易/IB盈透、DDT、AMP】/【史上最便宜手續費.最低保證金】【利用損益曲線做加減碼】

對於一個趨勢型的策略,最怕就是盤整期了,通常會增加濾網或其它方式

減少這段時間被修理的次數,讓操作者在這段時間心理面好受一些,

不至於受不了去停掉策略.

但濾網是一体兩面的,雖然會減少被巴的機會,

但也可能會限制住趨勢型成時的獲利爆發性

有時加太多還有可能造成過度最佳化.



在這段盤整期間,除了在程式策略內加濾網改善外,

其實還可以從損益曲線來下手

對於一個趨勢跟隨策略來說,當操作商品盤整或波動變小時,

損益曲線就會產生回落的情況.

如以下是使用一個均線策略的損益曲線 (HMA 均線,交乂買賣)

[img]http://pic.pimg.tw/rane1220/1391423386-2285795933_n.png[/img]  

也可以說:

當策略本身運行模式,不符合大部份價格走勢時,損益曲線就會產生回落.

當策略本身運行模式,符合大部份價格走勢時,損益曲線就會創新高.



所以,可以利用這個特性在損益曲線回落,停止交易或縮小口數,來控制住風險

當損益曲線又拉起來時再進入市場或放大口數.

當然這種做法,可能會有一段獲利沒參於到.

但對於我這種資金量小的操作者來說,在策略運作上會比較舒服一些.



[b]三部曲[/b]

[b]1.[/b]策略完成,感覺不錯,實際投錢進去跑

[img]http://pic.pimg.tw/rane1220/1391424087-2893989196.png?v=1391424089[/img]  

[b]2.[/b] 運氣不好,一進去就遇到盤整,或是走勢不符合策略的情況.

    破了MDD,或心理受不了,資金準備不足..等等原因,停掉策略.

[img]http://pic.pimg.tw/rane1220/1391424158-1329360330_n.png?v=1391424160[/img]  

[b]3. [/b]但停掉不久後盤勢轉好,獲利又創新高..>_<

[img]http://pic.pimg.tw/rane1220/1391424347-3182287095_n.png?v=1391424349[/img]  

這種事,我常發生.....



那要如何增加這種風險控制呢?

我們可以把損益曲線當商品來順勢操作,

當突破N日高點時買入,突破N日低點賣出

轉成

當突破N筆損益曲線高點時,加碼或開啟策略進入市場,

當突破N筆損益曲線低點時,減碼或關掉策略暫時離開市場,



如用以上的均線策略做例子,

當跌破前50筆損益曲線低點時就停止做單,(用布林函數把程式關掉,或用 0 contract)

當又回到前50筆損益曲線高點時就開始做單,(用布林函數把程式打開,或用1 contract)

這裡的例子拉回時完全不做單,也可以改成拉回時口數減少.

變動後可以看到以下回測比較

X軸是時間

Y軸是獲利

原本:

[img]http://pic.pimg.tw/rane1220/1391425982-4281680518_n.png?v=1391425986[/img]  



加入風險控制:

[img]http://pic.pimg.tw/rane1220/1391426007-3122214920_n.png?v=1391426010[/img]  

在績效拉回創新低,賠錢的日子就直接不交易了

回測報表上當然MDD也會變少

原本:

[img]http://pic.pimg.tw/rane1220/1391426509-1899527544.png[/img]  

修改後:

[img]http://pic.pimg.tw/rane1220/1391426537-4189146477.png?v=1391426539[/img]  

犧牲掉一些獲利來換取策略的穏定性.

這方式算是加個保險, 好或壞也是見人見智囉,

沒有一定是這樣做比較好.

要看個人的操作習慣或資金運用了.



那這在程式上要如何做呢?

其實就是利用ADE,同一個策略同商品開兩個圖

一個正常執行,並記錄目前的Netprofit值,並找出前n筆高低值傳給另一個

另一個(主要執行者)收到後,根據這個值來調整進場口數,或要不要做單.

主要問題會出現在ADE的使用上,可以先參考[url=http://rane1220.pixnet.net/blog/post/102459838]這篇[/url]

使用那兩個ADE.Get ADE.Put 函數做值的傳送

ADE搞定了,接下來就不難了

資料來源:[url=http://rane1220.pixnet.net/blog/post/103186027]程式交易[/url][/size]

頁: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.