如何利用凱利公式控制股票倉位
在我們去進行股票,期貨投資的時候,經常聽到有人說到金字塔加倉法,當虧損的時候,每次虧損都加大我們的倉位到原來的總倉位的兩倍,這樣,壹方面可以攤薄我們的平倉持倉成本,另壹方面,當行情反轉的時候,我們就更容易回本,甚至收回收益;而當盈利的時候,我們去增加倉位就需要小心,可以每次增加倉位為原來的 1/2,因為股價高的時候,它回落起來也更容易,因此,我們以比較小的倉位去進行加倉,可以避免我們的持倉成本太高。
乍壹聽,是這麽壹回事,而且不少我們投資者也會采用這樣的辦法去應對自己的投資策略。但是,這樣做是否合理,能不能從數學,從數據模擬上針對我們這樣的投資策略去進行壹個合理的分析呢?這裏,筆者試圖以擲硬幣為例,來介紹鞅與反鞅策略。對於擲硬幣,這裏做壹個假定,假如正面為贏,反面為輸,贏的話,可以得到多壹枚硬幣,輸的話,付出的硬幣就此輸去。
鞅策略
有壹種投註方法,當我們每次輸了的時候,那麽我們下次就加倍投註,譬如,第壹次如果投入壹枚硬幣,那麽下壹次我們就投入兩枚硬幣,贏了的話,我們不僅可以將輸了的壹枚硬幣成本覆蓋,還能多賺壹枚;如果還是輸的話,那麽下次我們投註 4 枚硬幣,贏了的話,不僅可以覆蓋我們付出的 3 枚硬幣,還能多賺壹枚硬幣;以這 樣的策略壹直往下,如果能贏,我們總是能多贏壹枚硬幣。
但是,這樣的策略隱含了壹個假設,那就是它默認我們的資金是無限的,當連續輸的情況出現的時候,是否還堅持這樣的策略,哪怕我們仍然想堅持,但是本金可能不足夠了。譬如,假設我們有100 枚初始硬幣,經過這樣的 擲硬幣**,如果出現連續7次皆負的情況,我們的本金就全部輸掉了。也許妳會認為,連續7次硬幣都出現反面概率不大,但是,當我們參與這樣的**次數足夠多的時候,連續7次 或更多次硬幣出現的概率會變得非常大,譬如,擲壹百次硬幣實驗中,連續7次或更多次出現反面的概率是:
當連續擲硬幣次數變得足夠多的時候,譬如 1000 次,這個概率就會變得非常大,簡單起見,這裏筆者直接利用計算機模擬,連續進行 100 次這樣的擲 1000 次硬幣實驗,看連續出現 7 次或以上硬幣為正面概率多大?
測試代碼
(圖寬客在線quant.la)
實際輸出為 990,也就是說,測試 1000 次,出現連續 7 次正面或以上的次數有990次,也就說說破產概率有 0.99,這樣的概率, 壹般人估計都承受不了。
反鞅策略
有壹種叫反鞅策略的投註方法,在贏的時候,適當加註,在輸的時候,則適當減註,譬如,無論盈虧,每次**都是目前總金額的 1%, 這樣,當盈利的時候,我們加註總金額的 1%,相應的加註比初始加註要更多,而當虧損的時候,我們加註的金額也相比初始金額要小,那麽,這樣去投註效果會如何呢?下面的代碼試著用 1% 的風險 度進行 1000 次擲硬幣**,初始資金為 100元。
(圖寬客在線quant.la)
(圖寬客在線quant.la)
實驗結束後,筆者這裏最後得到的資金是 702.9877 元, 感興趣的讀者可以自己去嘗試壹下。多次嘗試的結果不同,但是壹般而言,都是正收益。
不同風險度,鞅策略與反鞅策略的威力比較
為了更近壹步說明鞅與反鞅策略的威力,這裏做壹個實驗,假設有 11 個**者,他們對於風險偏好不同,第壹個投資者比較謹慎,他能容忍的風險度為 1%, 第二個為 2%, 第三個為 3%, 第四個為 4%, 第五個為 5%, 第六個為 10%, 第七個為 15%, 第八個為 20%, 第九個為 30%, 第十個為 40%, 第十壹個為 50%, 這樣的**者參與擲硬幣**, 如果說贏了,他們可以收獲 1.25 元,如果輸了,他們付出的硬幣就此失去,那麽,經過 100 次這樣的**,利用兩種不同的**策略,他們最終收益如何,對應的風險度如何變化,筆者這裏利用代碼進行了壹些實驗,代碼與結果如下:
針對鞅策略,不同風險度,經過 1000 次**,代碼與結果:
反鞅策略,風險倍率設為 1.0,不同風險度對應的情況
凱利公式
從上面關於鞅與反鞅策略的比較我們可以發現,控制好風險,對應每次投入倉位的控制,對於我們最終的收益影響非常巨大,但是,我們也發現,風險小的話,對應的收益卻往往不如風險比較大的投資策略。那麽,有沒有壹種在風險和收益之間平衡的投資策略呢?
其實是有的,壹個比較著名的理論上最佳投註比例公式,叫做凱利公式,可以作為我們投資**的壹個參考方式,筆者這裏再次贅言,對凱利公式進行簡要介紹。
假設有壹個賭局,每投入 1,有 p 的概率獲得額外正收益 W ,有 q=1-p的概率獲得額外負收益-L, 每次投入比例為 x, 收益為 f(x),目標是期望收益最大化。
因此,當我們知道了賠率,勝率,完全可以利用凱利公式對我們的投資進行指導,去獲得更多的收益。譬如,讀者可能已經發現了,在我們采用反鞅策略去進行**的時候,壹開始風險加大的時候,收益變多;但是超過某個閾值的時候,很容易就破產,這裏,我們采用凱利公式計算壹下,在我們之前舉例的情況下,投註最佳比例是多少?
在示例中,擲硬幣,每猜對壹次的概率都是 0.5, 猜對了贏得 1.25 元,輸了就投入全部沒有,因此,我們有 b=\frac{W}{L} = \frac{1.25}{1} = 1.25, p, q均為 0.5,L=1, 因此 x=(1.25*0.5 - 0.5)/1.25/1=0.1,從我們實驗的結果可以看到,確實,當風險度為 0.1 的時候,收入最多,與我們之前實驗結果相符。
討論
知道了凱利公式,也許會有讀者會想到,通過凱利公式,完全可以指導我們去做投資,譬如,股票市場,和**差異也不算很大,甚至有人說,股票市場就是壹個大賭場。但是,當讀者真的想套用凱利公式的時候,會發現有很大的困難,困難來自於投資的勝率和賠率的不確定性。當我們去投資某支股票的時候,是賺是虧,賺多少,虧多少,並沒有壹個確定的值,壹個耗時耗力的做法是去做仿真交易或者小資金去投資,根據壹段時間後統計投資成功率的結果來決定之後投資比例。但是,壹方面這樣的做法相當耗時,另壹方面,不同時期,股票市場風格差異,按照彼時投資結果去作為此時投資結果的參考,彼時投資結果是否能正確反應當前市場的風格,可能我們心裏要打壹個問號了。那這時候可能讀者就會問,那我們去了解凱利公式有什麽用呢?此時,程序化交易的優勢也就體現出來了。當我們的投資理念確定好之後,用代碼將其建模並回測,完全可以在歷史的不同時間段內進行回測,得到不同市場風格下,策略的勝率和賠率情況,之後,當確定回測結果沒有其他問題的時候,我們就可以按照最佳的投資比例去控制我們利用該策略去投資股票市場的倉位,以期得到最佳的回報。
即便如此,直接套用凱利公式,可能依然是不合適的,在任何時候,我們都需要將風險的意識放在最前面,風險占據的權重可能在我們投資決策中,占據的比例比收益更大,以比較小的風險作為投資決策,可能會更合適。凱利公式考慮的是理論上的勝率賠率,實際情況可能會更差,當考慮到手續費,滑點,回測與實盤其他差異後,實際情況後比回測差基本上是百分百的,因此,我們是不是應該用相比凱利公司更小的風險度作為我們投資的比例呢?
最後,強烈推薦《資金管理方法及其應用》-- 安德烈 昂格爾,如果讀者有時間,有興趣, 強烈推薦大家去仔細研讀參考書籍,對於風險控制,倉位管理,作者給了很好的介紹。另外,海龜交易法的倉位管理,讀者如果閱讀了本文再去看它的倉位管理方式,也許會有更大的收獲。