2011年12月6日 星期二

評估系統方法 - 淨利、完全利潤比

    完全利潤概念出自Robert Pardo《交易策略評估與最佳化》,裡面有介紹到一個相當複雜的公式,但小弟一向不喜歡複雜的東西,所以在這邊那個公式就不多提,大家有興趣可看原著。
    完全利潤的意思是:理想中可以獲得的最大利益,也就是假設你的程式每次都買在最低點、賣在最高點,例如某五天收盤價={11.10.15.14.18},那完全利潤就是1+5+1+4=11點,假設這個波段你買在11點,賣在18點,等於賺了7點,也就是完全利潤的63%(非常厲害)。當然完全利潤的算法除了用收盤價外還可以選用開盤價、中位數、平均數,週期也可以選擇分鐘、日、週、月,主要看你的程式的類型決定。
    至於為什麼當初Robert Pardo會提出完全利潤?主要是為了提供大家評估程式好壞的方法,在書中他稱之為「目標函數」。現在大家都流行用「淨利」當成目標函數,也有很多大大說明為什麼這樣不好,小弟今天用完全利潤的概念說明。
    假設今天你的程式週期分析如下表,請問大家覺得2005年是不是比2006年表現不好?



那請看下表



    這就是完全利潤的概念,當您計算完以後可能會發現自己的程式有許多問題,包括口數的調整、波動的適應等等,當然最後最重要的問題還是:要追求平穩的比率,還是追求絕對比率,這就給大家自己決定囉。

2011年12月4日 星期日

R倍數分配-檔案+應用

    接上篇:http://futures-michael.blogspot.com/2011/12/r.html
    大家可能跟小弟一開始一樣不知道R倍數分配做出來到底要幹麻,感覺好像看看就算了,今天把一些用法做個補充。

應用一:檢視交易
    屬於最基本的應用,檢視您的虧損部分超出-1R的交易,因為-1R就是您的停損,超出部分代表您的停損沒有有效發揮作用,可能是商品波動劇烈,或是停損觀念有錯,或是程式沒寫好,如果懶得每筆檢視至少超出-3R的部分一定要看一下。

應用二:看R倍數分配的期望值跟交易頻率
    期望值示您的程式每次投入金額預計拿回少,如果您的期望值=0.5R,這次停損設定1000元,代表期望應該可賺500元,當然這是統計大數法則,也就是交易越多會越接近期望值。
    如果您的系統是當沖系統,虧損部分應會出現集中的0R~-1R,獲利部分的R大概也都不會超過3R,期望值低,但是每年交易次數多,造成一年的期望值合乎預期。例如:期望值0.1R、每年交易300筆,每年期望值=30R
    如果您的系統是長線系統,虧損部分會比當沖系統稍微分散,但最好還是有大部分控制在0R~-1R3R以上出現的多,期望值高,但是每年交易次數低。例如期望值6R,每年交易5次,每年期望值=30R
    波段系統則是位於兩者之間。大家可以試著計算自己系統的每年期望R,看看合不合乎預期。

應用三:計算期望值跟標準差的關係,這在之後會再做主題說明

-----------------------以下是關於檔案的使用------------------------

我在檔案裡面加了一個東西,屬於上面應用二的範圍,也就是看R倍數0~-1,超出-10~1,超出1的關係。



    計算方法是虧損部分總和100%,獲利部分總合100%,也就是虧損的兩根長條圖最好是集中在右邊(0~-1)那條,例子中佔了81%,符合預期,而獲利的兩根當然也是右邊那根越多越好。

-----------------------以下是檔案------------------------

2011年12月3日 星期六

R倍數分佈-實做

部落格新開張,這裡希望能將程式交易的資料做整理呈獻給大家,因為自己本身也是程式交易愛好者,所以當自己遇到問題但是在網路或書上找不到解答時,希望找到答案後能在這裡跟大家分享。
今天先簡單跟大家分享R倍數分配如何實做,R倍數分配出於Van K. Tharp教授的《交易創造自己的聖盃》,凡沙普教授認為只要知道一個系統的R倍數分配,即可簡單了解該系統的好壞,他把停損點當成1R,例如台指期8000點買進,預計10點停損,我們則可以說這個系統的1R10點或是2000元,當個系統確實在7790點觸發停損,則這筆交易獲利等於 -1R,如果幸運賣在8100點,則這筆交易獲利獲利等於10R。沙普教授在書中有提到一個如果您懶得做R倍數分配紀錄可以直接回測完後把「平均毛損」當成1R來計算每筆的R倍數分配,但經過小弟實證,這個方法是不好的,原因就留給大家思考。

R倍數分配到底怎麼做才正確?其實只需要TS配合EXCEL就行了,小弟做了一個EXCEL檔有需要可以給大家使用
以下為示範

步驟一:把以下程式碼加入訊號中
print(date+19000000,"   ",停損點數*bigpointvalue);
其中停損點數可以是固定金額、比率或是浮動金額、比率,就看你程式原本的停損如何設計。

步驟二:開啟EasyLanguage Output Bar 把剛剛print出來的資料複製到任何一個記事本




步驟三:開啟回測報表,把「交易明細」部分存成EXCEL


步驟四:用EXCEL開啟剛剛的記事本,設定空格分欄,並把他貼進「停損貼上區」


步驟五:開啟剛剛的交易明細表,貼進「報表貼上區」



這樣就完成了,以下是小弟某個程式的R倍數分配,可分成次數及%數,以順勢交易程式來說,這樣的虧損分配是可以的,也就是雖然虧損比獲利的筆數多,但是集中在0~-1R之間,而3R-3R明顯多出許多都是順勢交易的特徵,(以這個例子來說還不夠多)

*檔案在另一篇