評估Kelly formula—程序化交易策略
在程序化交易策略的分類之下,首先要紀錄的不是某個策略直接開始分析,而是一個往後對全部策略評估的標準,要用什麼判斷策略的品質?我們的目標是設計出好的程序化交易策略,而什麼算是好?
程序化交易策略要能獲利,或要提昇獲利,有兩種方法,一是贏的次數更多,二是每次贏都比輸的時候多很多;前者就是勝率,後者我們就用盈虧比來計算。
KELLY公式正是這兩個因素的計算組合,參考維基百科的解釋,
這原先是用來計算適合的投注比例,同樣也適合在不同策略間作KELLY值的比較,
公式為: f* = ( bp – q ) / b
其中 p = 勝率 q = 敗率 = 1 – p b = 平均獲利 / 平均損失
這個定義的公式經過移項後可以換成比較容易記憶的: 勝率 – (敗率 / 盈虧比)
KELLY = p – ( q / b )
對於原先定義來說,KELLY值越高的策略表示應投注的比例越大,對我們來說,則是用來判斷多個策略的KELLY值,較高的值比較好,或者是同一策略裡多個參數的表現,KELLY較高的那一組參數比較好。
以 wiki 的例子來計算,一個交易策略有40%的勝率及2倍的盈虧比,則KELLY值為40% – (60% / 2) = 10%,當我們策略提昇勝率到50%,盈虧比不動時,我們可以得出KELLY值為 50% – (50% / 2) = 25%,或是勝率不動,盈虧比提昇到4倍時,KELLY值為 40% – ( 60% / 4) = 25%。也就是說,我們可以藉由提昇勝率或盈虧比,都可以使KELLY值更高。
如果有種邏輯加入策略後可以同時提昇勝率和盈虧比,那是非常好的改進,但一般來說,勝率和盈虧比是反相關的。要提升勝率,那麼盈虧比會下降,反之亦然。所以KELLY值的數字大小可以衡量這兩個因素的取捨,例如勝率提高5%,但盈虧比下降0.5倍是否值得?
下圖是KELLY值為17時,勝率及盈虧比的對應數值
注意到勝率35以下的區塊和勝率接近60以上的區塊,在左邊的區塊裡同樣是KELLY值17的點位,犧牲掉一點點勝率就需要提昇很多盈虧比,右邊的區塊則是相反的狀況。所以從這個曲線來看策略提昇的方向,當策略的勝率低於35%時,提昇它的勝率比較有效果,而勝率高於60%時,提昇盈虧比較有效果。
另外,近期讀到一篇文章,Avoiding trading paralysis by analysis
內容提到也是以勝率及盈虧比評估策略,也有一些例子。它的公式和KELLY公式不同,而是: 勝率*盈虧比 – 敗率。盈虧比搬到前項去乘了,但本質上是相同的,勝率或盈虧比越高,則代表策略品質較好。
L 計算過這兩個公式在不同策略上的比較會有相違背的結果,例如:
A策略勝率51,賠率1.3,KELLY值13.31,新公式值17.3
B策略勝率40,賠率2,KELLY值10,新公式值20
以KELLY值來看,A策略是較好的選擇,但對新公式來看,B策略則是較好的選擇。
L並不確定哪個公式較好,或許這也不是唯一選擇的問題,若您看到這邊想作個選擇應該是先看A策略和B策略哪個對您來說就是較好,那就可以選擇的出適合您的公式。L自己則還是慣用KELLY值的方式,往後提到策略的評估時也會以KELLY值為主。
此篇筆記介紹的KELLY值是評估策略的重要因素,但不是唯一因素,除了勝率與盈虧比的比較之外,還應該考慮獲利和風險比,以及至少還有獲利期間與風險期間的比較。
文章來源: 程序化交易者-最專業的量化投資,高頻交易,程序化交易,系統交易網站
推薦閱讀:
※手工交易和程序化交易比起來優勢在哪裡?
※股票如何實現程序化交易和自動交易?
TAG:程序化交易 |