摘要:由于線性回歸作用于股票收盤價的整個周期,因此選擇合適的時間段非常重要。在制定量化交易策略時有一種方式是尋找現(xiàn)象中的特征,根據(jù)特征去生成交易條件。
新年伊始,很榮幸筆者的《教你用 Python 進(jìn)階量化交易》專欄在慕課專欄板塊上線了,歡迎大家訂閱!為了能夠提供給大家更輕松的學(xué)習(xí)過程,筆者在專欄內(nèi)容之外會陸續(xù)推出一些手記來輔助同學(xué)們學(xué)習(xí)本專欄內(nèi)容,因此同學(xué)們無需擔(dān)心專欄內(nèi)容在學(xué)習(xí)上的困難,更多的是明確自己學(xué)習(xí)的目的即可。當(dāng)然筆者也歡迎同學(xué)們踴躍留言,說出自己想擴(kuò)展的知識點,筆者會根據(jù)同學(xué)們的意愿選擇性的推出一些內(nèi)容。
本次場外篇筆者在專欄《22、股票交易策略開發(fā):走勢線性回歸選股策略》的基礎(chǔ)上對線性回歸方法的策略應(yīng)用做進(jìn)一步的擴(kuò)展介紹,同時會涉及到多個小節(jié)的知識內(nèi)容,大家可以參考專欄內(nèi)容。
這里我們順帶介紹下搭建環(huán)境中可能會遇到的問題,如果有同學(xué)是用mac系統(tǒng)開發(fā)的,在MAC中調(diào)試matplotlib時中文顯示框框解決方法:
1、下載simhei.ttf字體庫拷貝至matplotlib字體文件夾(Macintosh HD ? 用戶 ? SHQ ? anaconda3 ? lib ? python3.7 ? site-packages ? matplotlib ? mpl-data ? fonts? ttf)。
2、同樣在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
3、在Python中運行如下代碼重新加載字體使配置生效:
from matplotlib.font_manager import _rebuild
_rebuild() #reload
言歸正傳,在22小節(jié)中筆者選取了浙大網(wǎng)新、高鴻股份、開山股份、水晶光電四只股票的收盤價以線性回歸的方式擬合出走勢的角度,從而評估它們未來的趨勢。
由于線性回歸作用于股票收盤價的整個周期,因此選擇合適的時間段非常重要。比如以高鴻股份為例,以下是它從2018年1月1日至今的走勢圖(參照股票《16、股票交易數(shù)據(jù)可視化:技術(shù)分析常用指標(biāo)繪制》實現(xiàn))。
從圖中可以看到2018年4月10月是單邊下降趨勢,而從10月份開始轉(zhuǎn)為上升趨勢。那么我們分別對這兩段周期做線性回歸后發(fā)現(xiàn),單邊下降通道的擬合直線角度為-0.97度,而上升通道擬合直線角度為1.5度,股價的擬合直線角度從-0.97度至1.5度的轉(zhuǎn)變過程,其實也是由跌轉(zhuǎn)漲的過程。?
在制定量化交易策略時有一種方式是尋找現(xiàn)象中的特征,根據(jù)特征去生成交易條件。那么這里給大家一個衍生的策略思路,既然線性回歸作用于股票收盤價的整個周期,前后兩段完全相反的周期會彼此作用,最終影響擬合的角度值,我們可以設(shè)定窗口期用移動窗口的方式擬合股票的走勢。
在22小節(jié)的FactorPickStockAng類中增加一個方法,代碼如下:
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()
執(zhí)行該代碼examp_trade.fit_price(pick_stocks)可生成浙大網(wǎng)新、高鴻股份、開山股份、水晶光電四只股票的收盤價移動線性回歸曲線圖,可以發(fā)現(xiàn)角度曲線的拐點預(yù)示開始反轉(zhuǎn)為新一輪的走勢。
在《16、股票交易數(shù)據(jù)可視化:技術(shù)分析常用指標(biāo)繪制》小節(jié)的基礎(chǔ)上把移動線性回歸擬合曲線增加到顯示界面中,箭頭所指示的位置作為買賣點目前來看是有一定的盈利特征的,不過此處只是為了擴(kuò)展大家的思路達(dá)到教學(xué)目的而設(shè)定的策略,大家可以在這個基礎(chǔ)上展開更多股票和周期的回測以驗證策略的可靠性。更多的量化交易內(nèi)容歡迎大家訂閱專欄閱讀!!
更多python量化交易內(nèi)容互動請加微信公眾號:PythonQT-YuanXiao
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/43153.html
摘要:我們知道投資是有風(fēng)險的,那么如何去衡量這個風(fēng)險呢最大回撤率就是一種直觀的將風(fēng)險切實量化的指標(biāo)。最大回撤率計算公式當(dāng)日收盤價當(dāng)日之前最高價最高價最低價最高價。顯而易見,最大回撤率越小越好,因為回撤與風(fēng)險成正比,回撤越大,風(fēng)險也就越高。 新年伊始,很榮幸筆者的《教你用 Python 進(jìn)階量化交易》專欄在慕課專欄板塊上線了,歡迎大家訂閱!為了能夠提供給大家更輕松的學(xué)習(xí)過程,筆者在專欄內(nèi)容之外...
摘要:作者天瓊,數(shù)據(jù)游戲優(yōu)勝隊伍成員介紹本文整理記錄了參與的一次小型數(shù)據(jù)分析競賽數(shù)據(jù)游戲,競賽目標(biāo)是預(yù)測年月日股閉市時招商銀行的股價。日發(fā)現(xiàn)的數(shù)據(jù)有錯誤,需要手工矯正日該數(shù)據(jù)恢復(fù)正常。而函數(shù),是對樣本外的數(shù)據(jù)進(jìn)行預(yù)測。 作者:天瓊,「數(shù)據(jù)游戲」優(yōu)勝隊伍成員 介紹 本文整理記錄了參與的一次小型數(shù)據(jù)分析競賽「數(shù)據(jù)游戲」,競賽目標(biāo)是預(yù)測2019年5月15日A股閉市時招商銀行600036的股價。 主...
摘要:作者天瓊,數(shù)據(jù)游戲優(yōu)勝隊伍成員介紹本文整理記錄了參與的一次小型數(shù)據(jù)分析競賽數(shù)據(jù)游戲,競賽目標(biāo)是預(yù)測年月日股閉市時招商銀行的股價。日發(fā)現(xiàn)的數(shù)據(jù)有錯誤,需要手工矯正日該數(shù)據(jù)恢復(fù)正常。而函數(shù),是對樣本外的數(shù)據(jù)進(jìn)行預(yù)測。 作者:天瓊,「數(shù)據(jù)游戲」優(yōu)勝隊伍成員 介紹 本文整理記錄了參與的一次小型數(shù)據(jù)分析競賽「數(shù)據(jù)游戲」,競賽目標(biāo)是預(yù)測2019年5月15日A股閉市時招商銀行600036的股價。 主...
閱讀 1099·2021-11-25 09:43
閱讀 721·2021-11-22 14:45
閱讀 3853·2021-09-30 09:48
閱讀 1090·2021-08-31 09:41
閱讀 1992·2019-08-30 13:52
閱讀 2004·2019-08-30 11:24
閱讀 1368·2019-08-30 11:07
閱讀 976·2019-08-29 12:15