这里只要给你们介绍下搭建环境中可能会遇到的问题,若是有同窗是用mac系统开发的,在MAC中调试matplotlib时中文显示框框解决方法:python
一、下载simhei.ttf字体库拷贝至matplotlib字体文件夹(Macintosh HD 用户 SHQ anaconda3 lib python3.7 site-packages matplotlib mpl-data fonts ttf)。bash
二、一样在matplotlib/mpl-data/fonts目录下面修改配置文件matplotlibrc字体
font.family : sans-serifui
font.sans-serif : SimHei, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serifspa
axes.unicode_minus:False调试
三、在Python中运行以下代码从新加载字体使配置生效:code
from matplotlib.font_manager import _rebuildcdn
_rebuild() #reloadblog
言归正传,在22小节中笔者选取了浙大网新、高鸿股份、开山股份、水晶光电四只股票的收盘价以线性回归的方式拟合出走势的角度,从而评估它们将来的趋势。ci
因为线性回归做用于股票收盘价的整个周期,所以选择合适的时间段很是重要。好比以高鸿股份为例,如下是它从2018年1月1日至今的走势图(参照股票《1六、股票交易数据可视化:技术分析经常使用指标绘制》实现)。
从图中能够看到2018年4月10月是单边降低趋势,而从10月份开始转为上升趋势。那么咱们分别对这两段周期作线性回归后发现,单边降低通道的拟合直线角度为-0.97度,而上升通道拟合直线角度为1.5度,股价的拟合直线角度从-0.97度至1.5度的转变过程,其实也是由跌转涨的过程。
在制定量化交易策略时有一种方式是寻找现象中的特征,根据特征去生成交易条件。那么这里给你们一个衍生的策略思路,既然线性回归做用于股票收盘价的整个周期,先后两段彻底相反的周期会彼此做用,最终影响拟合的角度值,咱们能够设定窗口期用移动窗口的方式拟合股票的走势。
在22小节的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])
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)可生成浙大网新、高鸿股份、开山股份、水晶光电四只股票的收盘价移动线性回归曲线图,能够发现角度曲线的拐点预示开始反转为新一轮的走势。
在《1六、股票交易数据可视化:技术分析经常使用指标绘制》小节的基础上把移动线性回归拟合曲线增长到显示界面中,箭头所指示的位置做为买卖点目前来看是有必定的盈利特征的,不过此处只是为了扩展你们的思路达到教学目的而设定的策略,你们能够在这个基础上展开更多股票和周期的回测以验证策略的可靠性。更多的量化交易内容欢迎你们订阅专栏阅读!!