2013年5月1日 星期三

交易策略評估-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時,勝率及盈虧比的對應數值

 KELLY17


 

注意到勝率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值是評估策略的重要因素,但不是唯一因素,除了勝率與盈虧比的比較之外,還應該考慮獲利和風險比,以及至少還有獲利期間與風險期間的比較。

 

3 則留言:

  1. Hi L
    關於文章中所提到b的值是平均獲利/平均損失
    平均獲利是所有獲利/獲利的次數 還是所有獲利/交易的次數
    Robin

    回覆刪除
  2. HI Robin
    平均獲利=總獲利/獲利交易次數

    回覆刪除