2010年8月9日

依市場波動調整部位大小於 18:12

前文「停損-進場部位大小不一定」為的就是就是現在的這一篇做前引。

這一篇所要講的觀念其實是我最近讀了「交易.創造自己的聖盃(第二版)」這本書而從其中擷取來所做測試感想。我會說其中的概念與作法,也會附上部分的程式碼但僅取手邊一堆系統中加入這個方式後,不算特別誇張的做例子。

這是用來作為這個方式解說的原始測試報告。請你記住這張圖上的最大損失 51,000、最大評價損失幅度 117,600。這是一個類似通道突破型會追著價格跑的系統。
0

現在用這個系統,加入進場時先計算當時市場價格波動程度,去決定當訊號被觸發的時候要下多少口數,也就是說,進場的口數並不固定,但進場之後口數不會有變化(加減碼),直到下次訊號出現翻單,才有可能口數會變化。

而計算進場口數引用的原理來自於「養套殺就從慣性來」這一篇舊文。所宗的原理其實就是假設盤整盤與趨勢盤會交替出現。我希望讓系統在已經"看到"盤整出現的時候加大口數,以求也許訊號發出剛好就碰上趨勢盤的開始幸運的加大趨勢帶來的獲利;也希望在已經"看到"趨勢盤已經出現的時候,訊號發出時降低口數,因為可能就碰上了盤整的開始從而可能降低虧損金額的發生。

簡單說,這樣的作法並不去提高進場方向猜中的可能性,完全就是利用目前眼睛已經看的到的方式來與人的慣性對幹。盤整顯現在眼前了,有訊號卻不管可能繼續盤整而下大注,已經看到擺明了的趨勢,有訊號卻當做可能要盤整了而下小注。這不以交易策略本身過去的表現來決定下單的口數,而以市場的波動來決定下單的口數。

那麼,讓我們來看看這麼做的測試報告來跟沒有因為市場波動而調整口數的對照。首先可以看到手上最大持有口數從 1 口變成 4 口,這是因為即使是口數放大我也希望有個限制,我定了最大只能到 4 口,因為 1 口大台可以換成 4 口小台來做大約等值考量。
1

在上面這張有因為市場價格波動程度做下單口數的調整的測試報告中,我們可以明顯看到淨獲利倍增有餘,但是 MaxDrawDown 沒有隨之倍增,而僅增加 60% 多一些,這看到了 淨利/MaxDD 的比值滿大幅度的上升。再來,我們還看到單筆最大損失其實並沒有大幅度的上升,那是因為作為本篇的前引文,「停損 - 當口數不固定」的效應,我希望在口數放大的時候,不要多承受更多單次交易的停損風險程度。

這樣的調整下單口數的方式因為市場走勢可能會"盤整開始後繼續盤整",而這個系統設計原理是一種通道突破的方式,如果在因為看到盤整就加大口數時,走勢依然繼續盤整,那麼這個通道突破策略必然一樣是雙巴、三殺、連環殺,所以我要讓因為口數加大時,萬一被點停損的話所承受的損失跟只下 1 口的時候損失金額差異不大,而不要因為下 2 口就停損金額倍增。

接著我說明一下這個所謂依市場價格波動調整下單口數的程式碼部分,你不能完全照抄,這得因應你自己的程式去做修正。

原本的買賣指令像是這樣
if Buy_Condition then
Buy next bar at BuyPrice stop
end if

if Sell_Condition then
Sell next bar at SellPrice stop
end if

改成

N= 停損點數/波動數值

if Buy_Condition then
Buy N share next bar at BuyPrice stop
end if

if Sell_Condition then
Sell N share next bar at SellPrice stop
end if


N 就是要下單的口數,固定的停損當被除數,你自己適用的波動率指標的數值當除數。波動小的時候,下單口數越大,反之衡量波動程度的指標數值越大就下單口數越小...小到甚至變成 0 !還記得當 N 變成 0 的時候會有什麼效果嗎?就是只出場不進場~當走勢一個勁兒的往一邊跑後,交易策略發出往另外一邊的訊號時,行情開始陷入盤整好像也滿合理的嘛。

再來,我們考量到交易策略這樣做了下單口數的調整之後,最大下單口數從原本的 1 口 變成了 4 口,這對資金準備上的要求必然不同,所以還必須去對這樣會調整口數的交易明細做檢視了。在這個例子中,我做了平均持有口數的計算是 1.9 口,像這個樣子。
2

寫了這篇僅在進場時決定下單口數,但不在持有的過程中去改變手上持有口數的變化,讓我想起了過去寫下的這篇,也提供您參考「你的交易策略,真的需要加減碼的設計?」。至於用這樣的方式去做下單口數調整後,資金準備到底需要怎樣的變化,還有這樣做到底有沒有比用舊有的策略直接下 4 口更來得好?那是另外一個題目了。

用自己的程式下去實驗:http://www.yctseng.net/2010/11/blog-post_7060.html

5 意見:

lglbengo 提到...

這個問題我也想了一陣子
還不會用程式來解決
之前想說靠人為判斷
謝謝阿政大分享解決方法

lglbengo 提到...

阿政大您好:
有一問題想跟您請教
因應您此篇的內容,我請教別人之後,轉成TS的語法,並且拿來測試我原本固定一口單的策略,淨利的確增加,同時連續最大虧損也增加,所以如您所說,資金的控管也需要調整,這是必然的,先謝謝您啟發我這樣的想法. 另外,我在此篇文章(http://www.wretch.cc/blog/phigroup/16361064&page=1#comments)中又有另一個想法,我去抓過去20年的資料,計算大盤的20天年化價格波動率,跟大盤的走勢去做比對,的確如該篇文章內容所言,當波動率極度收斂(波動率位置在相對低點),則之後會出現一波行情(有時候往上,有時候往下),因此我就在想,當出現這樣的狀況(如近期),我便適度加大我的口數(當然仍要做好資金控管),或可擴大獲利,只是波動率多低的參數要設多少不好決定,因為我觀察過後,覺得波動率的變化往往跟當時的時空有關,比如今年的波動率一直在0.3以下,但是2008年整體卻往上提升到0.3以上,這一點可能要靠人為判斷,提出以上想法交流,不過我還在研究如何寫波動率的語法,如果阿政大有不錯的想法,還請您不吝指點,謝謝!! bengo 敬上

lglbengo 提到...

阿政大您好
因應您此篇的內容,我請教朋友之後,將之納入我的波動策略作回測,
淨利增加,不過最大連續虧損也增加,所以如您所言,資金的控管應該也要相對調整

而近期,我在思考法意團隊job大一篇文章的內容,或許可以應用到交易中
http://www.wretch.cc/blog/phigroup/16361064&page=1#comments
job大說到波動率跟大盤的連動關係
波動率收斂到相對低點時,出現大行情的機率提高
因此我去抓過去20年的收盤價,計算20天的年化波動率去比對大盤指數
的確如job所言,過去當波動率曲線降到相對低點(非絕動低點),之後即出現一波行情(可能上也可能下)
因此我便想,當出現這的現象(如近期),我應可適度加大口數(0.5~1口)擴大獲利(但仍要注意資金控管)
但目前只能用人工判斷,因為波動率要多低?才算低點,這個還不確定
就以前的數據來看,今年的波動率的低點在0.1附近以下,但是2008年的低點卻在0.25附近
每一個時空的大盤情況不同,影響到波動率的點位不同
目前還在研究是否有更好的判斷方法,以及如何能否寫到TS中
在此提出一點想法,若阿政大您有好的建議,還請不吝指點.

謝謝!! bengo 敬上

阿政 提到...

Lglbengo:

這一類的文章,說實在的的回響真的很少 XD

不過在寫這回應的時候卻看不到你的回文在Blog上,不確定是不是你將他刪除了?

當部位放大之後MaxDD跟隨增加是必然的,就像你如果都只下1口單時MaxDD是20萬,那麼下2口單MaxDD就應該會變成40萬,兩倍獲利也帶來兩倍虧損嘛。因此做這個口數自動調整,我希望看到的是當獲利放大後,虧損沒有等比例放大,換言之,我要看到淨利/MaxDD的提升,也就是說"資金報酬率"的增加。所以我才會先寫了「當口數不是固定的狀況下,固定停損金額」為的就是當訊號在獲利時,如果剛好口數是多的,那沒問題賺更大嘛~但如果口數多的時候是陪的,我卻不想要多賠錢~

至於波動率的計算如何做就各有機巧,在我的想法中:也許"如何"計算波動率可能不是那麼重要,因為那也像是在最佳化,差不多就好了,畢竟我不是利用這個東西在提高"勝率",勝率與方向有關,波動率與方向無關。

lglbengo 提到...

謝謝阿政大的回應
提醒我獲利與MaxDD的增加比例問題
回家再仔細研究一下跑出來的績效表
謝謝您!!

張貼意見

 
Blogger Template Layout Design by [ METAMUSE ] : Code Name BlackCat 2.0.0