很多講炒股的書或者文章,為了證明某些指標的效果,會精心挑選幾個案例,以此表明這個指標多麼多麼有效。
比如關於KDJ指標,炒股書籍中一般會介紹它的常見用法:當KDJ中的K線,從下往上穿過D線時,形成"黃金交叉",俗稱金叉,這個時候就預示著股價會上漲,應該買入股票。
然後會舉下圖的例下圖中,某股票在7月21日的金叉之後,股價果真一路上漲:
當K線,從上往下穿過D線時,形成"死亡交叉",俗稱死叉,預示著股價會下跌,這個時候就應該賣出股票。
例如在下圖中,特銳德這個股票,在03月9日的“死叉”過後,股票確實一直下跌:
看到這裡有的朋友可能會覺得,這是炒股秘籍啊!買了就漲、賣了就跌,趕緊投錢,從此走上人生巔峰!
但是千萬不要簡單的看到股評書上面的幾個例子,就信以為真。
你想完整的驗證kdj指標,不能只看幾個例子,要看就要將股票歷史上所有的金叉、死叉都找出來,然後統計之後的漲跌情況。看看KDJ指標金叉、死叉的買賣點是否真的有效!
聽起來這麼做有點瘋狂?其實也不難,下面我們用股票資料和python來驗證一下。
用資料說話,這才是我們量化投資的做法!
我們先選擇萬科這個股票,找到它從1990年上市到最近的股價資料,如下圖所示:
然後用以下的Python程式碼計算出萬科股票每天的KDJ指標:
就是這麼簡單,複雜的指標只需要6行程式碼,Python大法好!
接下來找出萬科歷史上所有金叉和死叉的交易日期,如下圖所示:
根據圖中資料,截止到最近萬科股票歷史上總共出現過1444次金叉或死叉,其中金叉、死叉各572次。
我們先統計在這572次金叉後,股票的漲跌情況:
總共出現過572次金叉,在這572次金叉之後的1天后,股票上漲的比例是49%;3天后,上漲比例是51%;5天后上漲的是51%;10天后,上漲比例是50%。上漲的比例居然普遍是50%??? ! ! !
不是說好了金叉之後股票就會上漲的嗎?怎麼還有一半的情況是下跌的?
這樣的話,和拋硬幣買賣股票又有什麼區別?那既然金叉不行,我們再來看下死叉。死叉之後股票下跌的機率是否會顯著大於50%呢?
下面是資料:
......這是在搞笑嗎?
死叉後下跌的比例居然還經常不到50%??難道死叉還成看漲訊號了?
金叉、死叉買入法失效,會不會是萬科這個股票不行呢?換個其它股票是不是就行了?或者是因為資料量太少?為了消除以上的顧慮,那我們索性就把所有3500多隻股票的金叉、死叉的都找出來看看。
反正對於Python來說就是寫個迴圈遍歷下所有股票而已,小事一樁。很快的跑完程式後發現,歷史上所有股票總共出現過170萬次金叉和死叉。
下圖顯示出現金叉和死叉之後股價漲跌圖:
在85萬次金叉後,股票上漲的機率是50%左右......
在85萬次死叉後,股票下漲的機率是50%左右......
怎麼還是50%啊!!!
某些有一定經驗的炒股朋友會說,不能簡單的看見金叉就買進、看見死叉就賣出,還有更高階的用法。
比如只有當KDJ三條線處於底部低位的時候,此時金叉買入的成功率更高;或者當KDJ三條線處於頂部高位時,死叉賣出也會更有可能盈利。
那我們就修改下Python程式,根據以下條件進行篩選:
根據程式結果,金叉死叉次數由原來的170萬降低為24萬。
以下是低位金叉和高位死叉之後股價漲跌比例:
結果是,所謂低位、高位,並沒有什麼用...
稍微有所安慰但又有點諷刺的是:意外發現高位死叉,這個理論上的賣出指標,反而是個很好的買入指標,大約有55%的勝率。
以上的資料表明,KDJ這個看上去高大上的指標,其實真的和拋硬幣來買賣股票沒啥區別。
並且,我們剛剛使用Python和資料來驗證指標的有效性,並且嘗試去最佳化,整個過程其實就是量化投資當中的回測。
任何客觀的投資方法都可以使用Python程式碼實現,然後利用歷史股票資料驗證其有效性。在驗證賺錢之後再投入實戰,而不是盲目的嘗試,這就是量化投資最大的優勢。
具體的驗證過程以及使用的程式碼,請參見這篇文章:
很多講炒股的書或者文章,為了證明某些指標的效果,會精心挑選幾個案例,以此表明這個指標多麼多麼有效。
比如關於KDJ指標,炒股書籍中一般會介紹它的常見用法:當KDJ中的K線,從下往上穿過D線時,形成"黃金交叉",俗稱金叉,這個時候就預示著股價會上漲,應該買入股票。
然後會舉下圖的例下圖中,某股票在7月21日的金叉之後,股價果真一路上漲:
當K線,從上往下穿過D線時,形成"死亡交叉",俗稱死叉,預示著股價會下跌,這個時候就應該賣出股票。
例如在下圖中,特銳德這個股票,在03月9日的“死叉”過後,股票確實一直下跌:
看到這裡有的朋友可能會覺得,這是炒股秘籍啊!買了就漲、賣了就跌,趕緊投錢,從此走上人生巔峰!
但是千萬不要簡單的看到股評書上面的幾個例子,就信以為真。
你想完整的驗證kdj指標,不能只看幾個例子,要看就要將股票歷史上所有的金叉、死叉都找出來,然後統計之後的漲跌情況。看看KDJ指標金叉、死叉的買賣點是否真的有效!
聽起來這麼做有點瘋狂?其實也不難,下面我們用股票資料和python來驗證一下。
用資料說話,這才是我們量化投資的做法!
我們先選擇萬科這個股票,找到它從1990年上市到最近的股價資料,如下圖所示:
然後用以下的Python程式碼計算出萬科股票每天的KDJ指標:
就是這麼簡單,複雜的指標只需要6行程式碼,Python大法好!
接下來找出萬科歷史上所有金叉和死叉的交易日期,如下圖所示:
根據圖中資料,截止到最近萬科股票歷史上總共出現過1444次金叉或死叉,其中金叉、死叉各572次。
我們先統計在這572次金叉後,股票的漲跌情況:
總共出現過572次金叉,在這572次金叉之後的1天后,股票上漲的比例是49%;3天后,上漲比例是51%;5天后上漲的是51%;10天后,上漲比例是50%。上漲的比例居然普遍是50%??? ! ! !
不是說好了金叉之後股票就會上漲的嗎?怎麼還有一半的情況是下跌的?
這樣的話,和拋硬幣買賣股票又有什麼區別?那既然金叉不行,我們再來看下死叉。死叉之後股票下跌的機率是否會顯著大於50%呢?
下面是資料:
......這是在搞笑嗎?
死叉後下跌的比例居然還經常不到50%??難道死叉還成看漲訊號了?
金叉、死叉買入法失效,會不會是萬科這個股票不行呢?換個其它股票是不是就行了?或者是因為資料量太少?為了消除以上的顧慮,那我們索性就把所有3500多隻股票的金叉、死叉的都找出來看看。
反正對於Python來說就是寫個迴圈遍歷下所有股票而已,小事一樁。很快的跑完程式後發現,歷史上所有股票總共出現過170萬次金叉和死叉。
下圖顯示出現金叉和死叉之後股價漲跌圖:
在85萬次金叉後,股票上漲的機率是50%左右......
在85萬次死叉後,股票下漲的機率是50%左右......
怎麼還是50%啊!!!
某些有一定經驗的炒股朋友會說,不能簡單的看見金叉就買進、看見死叉就賣出,還有更高階的用法。
比如只有當KDJ三條線處於底部低位的時候,此時金叉買入的成功率更高;或者當KDJ三條線處於頂部高位時,死叉賣出也會更有可能盈利。
那我們就修改下Python程式,根據以下條件進行篩選:
1 低位金叉:D值小於20且形成金叉 2 高位死叉:D值大於80且形成死叉根據程式結果,金叉死叉次數由原來的170萬降低為24萬。
以下是低位金叉和高位死叉之後股價漲跌比例:
結果是,所謂低位、高位,並沒有什麼用...
稍微有所安慰但又有點諷刺的是:意外發現高位死叉,這個理論上的賣出指標,反而是個很好的買入指標,大約有55%的勝率。
以上的資料表明,KDJ這個看上去高大上的指標,其實真的和拋硬幣來買賣股票沒啥區別。
並且,我們剛剛使用Python和資料來驗證指標的有效性,並且嘗試去最佳化,整個過程其實就是量化投資當中的回測。
任何客觀的投資方法都可以使用Python程式碼實現,然後利用歷史股票資料驗證其有效性。在驗證賺錢之後再投入實戰,而不是盲目的嘗試,這就是量化投資最大的優勢。
具體的驗證過程以及使用的程式碼,請參見這篇文章: