屈長杰
基于R語言的均線量化策略分析
——以上海醫(yī)藥為例
屈長杰
隨著IT技術的不斷進步,基于新型電子化交易的量化投資也得到了飛速發(fā)展,計算機科學和股票技術分析的大力發(fā)展和融合,使開源的R語言集成了多種數(shù)據(jù)分析與可視化算法,具備良好的可擴展性,適用于策略分析及數(shù)量化分析。本文根據(jù)上海醫(yī)藥歷史數(shù)據(jù),研究了買賣信號突破日期及買賣執(zhí)行期,測算了10日簡單移動平均線下交易策略的累計收益率及買賣點獲勝率,并通過比較得出,以R語言為工具的移動平均線策略具有較高的收益率,得到了可供實際股票操作的R語言控制模型,為股票分析提供了技術參考。
R語言 移動平均線 收益率 量化分析
技術分析在股票市場的投資中被廣泛應用,其中,均線系統(tǒng)分析是實踐中最常采用的也是準確率最高的技術評價體系。R語言具有靈活性、開放性,而它最具魅力的地方在于其自帶了多種統(tǒng)計學及數(shù)字分析功能。移動平均線具有滯后性。對于短期投資者來說,能否提前預測到平均線的走勢,進而判斷股價的買賣點,意義就顯得尤為重要。因此,本文在尋找上海醫(yī)藥的買賣點時,借助R語言強大的預測統(tǒng)計功能,將均線策略與其結(jié)合,從而達到提前預測及穩(wěn)定獲利的目標。
R語言是由新西蘭奧克蘭大學的Ross Ihaka與Robert Gentlemen一起開發(fā)的面向?qū)ο蟮木幊陶Z言。R語具有一套完整的數(shù)據(jù)處理、計算和制圖軟件系統(tǒng),同時它是一個開源軟件,它的主程序小巧,有著豐富的數(shù)據(jù)包。正是因為擁有這些特征,使得R語言在金融量化投資領域應用廣泛,并且具有良好的預測功能。本文以R語言為工具,對上海醫(yī)藥股價進行以均線系統(tǒng)為策略的量化投資分析。
R語言要實現(xiàn)均線策略,首先需要提取數(shù)據(jù),再將其轉(zhuǎn)換為時間序列,接著進行平穩(wěn)性檢驗、白噪聲檢驗,當序列滿足平穩(wěn)性且自相關條件時,方可進行策略建模,直到策略實現(xiàn)。
第一,本文主要利用簡單移動平均線對上海醫(yī)藥的股價進行預測分析,在此之前,對相關概念做一個簡要的介紹。算術平均數(shù)的算法,是先對一組數(shù)據(jù)的值求和,再用這個總和除這組數(shù)據(jù)的個數(shù)來得到算術平均數(shù)。簡單移動平均用數(shù)學公式表達為:
將這些簡單移動平均數(shù)繪制成時間序列圖,就可以得到股價的簡單移動平均線。
第二,一是買入(做多)信號的確定分析。其一,當移動平均線下將趨于平緩或者像上翹時候,價格從左下方上穿移動平均線,表明價格將持續(xù)上漲;其二,當移動平均線繼續(xù)保持向上移動勢頭,然而價格小幅下躥,這時可持股待漲或伺機買入。二是賣出(做空)信號的確定分析。其一,當移動均線上升過程中逐漸轉(zhuǎn)平或向下時,而價格趨勢線也從均線上方向下穿過均線且一去不返,這時價格將開始下跌;其二,當移動均線在下跌的過程中,而價格趨勢線卻由均線下面向上升至均線時又轉(zhuǎn)向下方,此時價格依然處于下降趨勢。
第三,對時間序列進行分析的前提是該序列是平穩(wěn)的,即序列的基本性質(zhì)不發(fā)生較大的變化。若時間序列是特殊的平穩(wěn)序列,即白噪聲過程(純隨機過程),也就是無自相關性,那么預測也無法進行。因此我們首先要對上海醫(yī)藥收盤價的平穩(wěn)性與非隨機序列進行檢測。
一是我們可以根據(jù)時間序列平穩(wěn)性的特點,從時序圖的形態(tài)大致判斷其平穩(wěn)性。一般對于平穩(wěn)時間序列來說,其自相關系數(shù)快速減小至0或者在某一階段后變?yōu)?。由上海醫(yī)藥收盤價ACF圖可以看出,其自相關系數(shù)迅速降至0附近,表明上海醫(yī)藥收盤價時間序列具有穩(wěn)定性。二是本文中的白噪聲檢驗采用的是Ljung-Box檢驗方法,LB檢驗的原假設為所檢驗序列的純隨機序列,當P值大于所設定的顯著水平5%時,接受原假設,認為所檢驗序列為白噪聲序列。反之則拒絕原假設,認為序列是非白噪聲序列。由結(jié)果所知,對上海醫(yī)藥進行LB檢驗時,Q統(tǒng)計量的p-value=2.2e-16<5%,從而拒絕原假設,即該序列存在自相關性,因此可以進行下一步建模預測。
第四,根據(jù)上海醫(yī)藥的收盤價與上海醫(yī)藥10日簡單移動平均線找出上海醫(yī)藥的買賣點。首先,打開R語言界面,獲取上海醫(yī)藥收盤價數(shù)據(jù);其次,計算出10日sma;然后,畫出收盤價和sma10的時序圖。
為了使上海醫(yī)藥的收盤價與上海醫(yī)藥10日簡單移動平均線的期數(shù)一致,則需要剔除上海醫(yī)藥收盤價前9期的數(shù)據(jù)。此時構(gòu)造穿越(cross)信號函數(shù),捕捉價格線突破均線的日期,對交易信號滯后2期,提取出了73個買入點,提取出了10個賣點。由上得出上海醫(yī)藥績效圖1表示,最后與實際作對比,得出買賣點預測準確率為71%。
圖1 上海醫(yī)藥簡單均線交易績效表現(xiàn)圖
通過圖1可以看出,截止到9月30日,上海醫(yī)藥的累計收益率為23%,但截止到9月30日,銀行存款、固收類基金、保本基金、股票型基金、上海醫(yī)藥的平均累計收益率分別為1.5%、2.68%、5.09%、21.37%、23%。上海醫(yī)藥的累計收益率明顯高于上述品種的累計收益率,所以該模型具有良好的預測功能,即以R語言為工具的均線量化投資策略,能為投資者提供有效的投資決策依據(jù)。
(作者單位為云南大學)
[1] 蔡立耑.量化投資以R語言為工具[M].電子工業(yè)出版社.
[2] 楊霞,吳東偉. R語言在大數(shù)據(jù)處理中的運用[J].科技資訊,2013(23).
[3] 田偉,田益祥.基于均線預測的股票市場投資策略構(gòu)建及其實證[D].成都:電子科技大學碩士學位論文.