新年伊始,很榮幸筆者的《教你用 Python 進階量化交易》專欄在慕課專欄板塊上線了,歡迎你們訂閱!爲了可以提供給你們更輕鬆的學習過程,筆者在專欄內容以外會陸續推出一些手記來輔助同窗們學習本專欄內容,所以同窗們無需擔憂專欄內容在學習上的困難,更多的是明確本身學習的目的便可。固然筆者也歡迎同窗們踊躍留言,說出本身想擴展的知識點,筆者會根據同窗們的意願選擇性的推出一些內容。python
本次場外篇筆者在專欄《2二、股票交易策略開發:走勢線性迴歸選股策略》的基礎上對線性迴歸方法的策略應用作進一步的擴展介紹,同時會涉及到多個小節的知識內容,你們能夠參考專欄內容。微信
這裏咱們順帶介紹下搭建環境中可能會遇到的問題,若是有同窗是用mac系統開發的,在MAC中調試matplotlib時中文顯示框框解決方法:
一、下載simhei.ttf字體庫拷貝至matplotlib字體文件夾(Macintosh HD ▸ 用戶 ▸ SHQ ▸ anaconda3 ▸ lib ▸ python3.7 ▸ site-packages ▸ matplotlib ▸ mpl-data ▸ fonts▸ ttf)。
二、一樣在matplotlib/mpl-data/fonts目錄下面修改配置文件matplotlibrc
font.family : sans-serif
font.sans-serif : SimHei, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
axes.unicode_minus:False
三、在Python中運行以下代碼從新加載字體使配置生效:
from matplotlib.font_manager import _rebuild
_rebuild() #reload 學習
言歸正傳,在22小節中筆者選取了浙大網新、高鴻股份、開山股份、水晶光電四隻股票的收盤價以線性迴歸的方式擬合出走勢的角度,從而評估它們將來的趨勢。字體
因爲線性迴歸做用於股票收盤價的整個週期,所以選擇合適的時間段很是重要。好比以高鴻股份爲例,如下是它從2018年1月1日至今的走勢圖(參照股票《1六、股票交易數據可視化:技術分析經常使用指標繪製》實現)。ui
從圖中能夠看到2018年4月10月是單邊降低趨勢,而從10月份開始轉爲上升趨勢。那麼咱們分別對這兩段週期作線性迴歸後發現,單邊降低通道的擬合直線角度爲-0.97度,而上升通道擬合直線角度爲1.5度,股價的擬合直線角度從-0.97度至1.5度的轉變過程,其實也是由跌轉漲的過程。 spa
在制定量化交易策略時有一種方式是尋找現象中的特徵,根據特徵去生成交易條件。那麼這裏給你們一個衍生的策略思路,既然線性迴歸做用於股票收盤價的整個週期,先後兩段徹底相反的週期會彼此做用,最終影響擬合的角度值,咱們能夠設定窗口期用移動窗口的方式擬合股票的走勢。調試
在22小節的FactorPickStockAng類中增長一個方法,代碼以下:code
def fit_price(self, symbols, cycle=30, show=True): for index, stockName in enumerate(symbols.keys()): #kl_pd = getdata #參考fit_pick()方法,此處略 kl_pd.fillna(method='bfill', inplace=True) for kl_index in np.arange(0, kl_pd.shape[0]): if kl_index >= cycle: kl_pd.loc[kl_pd.index[kl_index], "ang"], x, reg_y_fit, y_arr = self.calc_regress_deg(kl_pd.Close[kl_index-cycle:kl_index]) print(kl_pd.index[kl_index],kl_pd.iloc[kl_index, kl_pd.columns.get_loc("ang")]) if show: kl_pd.fillna(method='bfill', inplace=True) plt.plot(np.arange(0, len(kl_pd.index)), kl_pd.ang) plt.title('compare ang') plt.legend(symbols.keys(), loc='best') plt.show()
執行該代碼examp_trade.fit_price(pick_stocks)可生成浙大網新、高鴻股份、開山股份、水晶光電四隻股票的收盤價移動線性迴歸曲線圖,能夠發現角度曲線的拐點預示開始反轉爲新一輪的走勢。blog
在《1六、股票交易數據可視化:技術分析經常使用指標繪製》小節的基礎上把移動線性迴歸擬合曲線增長到顯示界面中,箭頭所指示的位置做爲買賣點目前來看是有必定的盈利特徵的,不過此處只是爲了擴展你們的思路達到教學目的而設定的策略,你們能夠在這個基礎上展開更多股票和週期的回測以驗證策略的可靠性。更多的量化交易內容歡迎你們訂閱專欄閱讀!!圖片
更多python量化交易內容互動請加微信公衆號:PythonQT-YuanXiao