量化交易 实战第三课 金融时间序列分析 Part 2_金融时间序列,交易的择时选择

65 阅读5分钟

Vue 编码基础

2.1.1. 组件规范

2.1.2. 模板中使用简单的表达式

2.1.3 指令都使用缩写形式

2.1.4 标签顺序保持一致

2.1.5 必须为 v-for 设置键值 key

2.1.6 v-show 与 v-if 选择

2.1.7 script 标签内部结构顺序

2.1.8 Vue Router 规范

Vue 项目目录规范

2.2.1 基础

2.2.2 使用 Vue-cli 脚手架

2.2.3 目录说明

2.2.4注释说明

2.2.5 其他

开源分享:docs.qq.com/doc/DSmRnRG…

DataFrame.resample(rule, how=None, axis=0, fill_method=None, closed=None, label=None, convention='start',kind=None, loffset=None, limit=None, base=0)

代码

# 频率为1周, 取最后的值
data.resample("1w").last().head() 

输出结果:
在这里插入图片描述

时间窗口

需求

  1. 以 20 为长度制作窗口序列
  2. 统计窗口各个常用指标结果

rolling 函数

格式:

DataFrame.rolling(window, min_periods=None, center=False, win_type=None, on=None, axis=0, closed=None)

参数内容
window表示时间窗的大小,注意有两种形式(int or offset)。如果使用int,则数值表示计算统计量的观测值的数量即向前几个数据。如果是 offset 类型,表示时间窗的大小。
min_periods每个窗口最少包含的观测值数量,小于这个值的窗口结果为 NA。值可以是int,默认None。offset情况下,默认为1。
center把窗口的标签设置为居中。布尔型,默认 False,居右。
win_type窗口的类型。截取窗的各种函数。字符串类型,默认为 None。
axisint、字符串,默认为0,即对列进行计算
closed定义区间的开闭,支持int类型的window。对于offset类型默认是左开右闭的即默认为right。可以根据情况指定为left both等。

代码

# 去除na
data_new = data.copy().dropna()

# 用第一只股票
stock =  stock_list[0]

# 窗口为20天
windows = 20

data_new['min'] = data_new[stock].rolling(window=windows).min()  # 最小值
data_new['max'] = data_new[stock].rolling(window=windows).max()  # 最大值
data_new['mean'] = data_new[stock].rolling(window=windows).mean()  # 平均值
data_new['std'] = data_new[stock].rolling(window=windows).std()  # 标准差

# 调试输出
print(data_new.tail())

输出结果:

            601766.XSHG  601155.XSHG  600482.XSHG  002456.XSHE  600763.XSHG  \
date                                                                          
2020-12-25         5.37        33.94        17.55        13.83       269.08   
2020-12-28         5.32        33.81        17.48        13.05       269.13   
2020-12-29         5.32        34.31        17.28        13.10       274.20   
2020-12-30         5.27        33.80        17.43        12.83       275.16   
2020-12-31         5.31        34.83        17.92        13.18       276.52   

            002460.XSHE  601877.XSHG  601988.XSHG  601390.XSHG  300408.XSHE  \
date                                                                          
2020-12-25       108.88        38.53         3.18         5.30        35.99   
2020-12-28       107.01        37.50         3.17         5.21        36.10   
2020-12-29        96.31        36.97         3.17         5.22        35.88   
2020-12-30       101.00        36.92         3.17         5.22        37.05   
2020-12-31       101.20        39.16         3.18         5.27        37.25   

             min   max    mean       std  
date                                      
2020-12-25  5.29  5.78  5.4880  0.142075  
2020-12-28  5.21  5.78  5.4660  0.149540  
2020-12-29  5.21  5.78  5.4425  0.149416  
2020-12-30  5.21  5.71  5.4145  0.134574  
2020-12-31  5.21  5.65  5.3925  0.118760  

股票序列分析策略

需求

  1. 短期平均计算
  2. 长期平均计算
  3. 黄金交叉与死亡交叉绘图展示

代码

# 这里我们以洋河股份和伊利股份为例
data = get_price(["600887.XSHG"], start_date=start_date, end_date=end_date,fields="close", expect_df=True)
print(data.head())

# 短期平均 (7天)
data["7_day_moving_average"] = data["close"].rolling(window=7).mean()

# 长期平均 (50天)
data["50_day_moving_average"] = data["close"].rolling(window=50).mean()

# 调试输出
print(data.tail().round(2))

# 画图
data[60:].plot(figsize=(16,12))

# 标记黄金交叉和死亡交叉位置
data["positions"] = np.where(data["7_day_moving_average"] > data["50_day_moving_average"], 1, -1)

# 画图
data[60:].plot(figsize=(16,12), secondary_y="positions")

输出结果:

                            close
order_book_id date               
600887.XSHG   2019-01-02  21.3696
              2019-01-03  21.1985
              2019-01-04  21.4076
              2019-01-07  21.6453
              2019-01-08  21.4837
                          close  7_day_moving_average  50_day_moving_average
order_book_id date                                                          
600887.XSHG   2020-12-25  40.00                 40.94                  39.83
              2020-12-28  41.89                 41.02                  39.86
              2020-12-29  41.87                 41.19                  39.87
              2020-12-30  43.96                 41.54                  39.91
              2020-12-31  44.37                 42.02                  39.96

在这里插入图片描述
在这里插入图片描述

回归分析

需求

  1. 洋河和伊利之间的关系
  2. 绘图展示他们之间的变化情况
  3. 回归与相关系数计算
  4. 随着年份的变化,计算相关系数的变化情况,并展示

代码

# 取出数据
data = get_price(["600887.XSHG","600597.XSHG"], start_date=start_date, end_date=end_date,fields="close")
print(data.head())


# 画图 (子图)
data.plot(subplots=True)

# 画图 (合并)
data.plot(secondary_y="002304.XSHE")

# 获得连续增长率
rets = np.log(data/data.shift(1))

# 调试输出
rets.head()

pd.plotting.scatter_matrix(rets,
                           alpha = 0.2,
                           diagonal='hist',
                           hist_kwds={'bins':50},
                           figsize=(10,6)
)

pd.plotting.scatter_matrix(rets,
                           alpha = 0.2,
                           diagonal='kde',
                           figsize=(10,6)
)

输出结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

构建回归方程

需求

  1. 去除空置
  2. 构建回归 (seaborn)

代码

import seaborn as sns

# 去除空值


### 最后

javascript是前端必要掌握的真正算得上是编程语言的语言,学会灵活运用javascript,将对以后学习工作有非常大的帮助。掌握它最重要的首先是学习好基础知识,而后通过不断的实战来提升我们的编程技巧和逻辑思维。这一块学习是持续的,直到我们真正掌握它并且能够灵活运用它。如果最开始学习一两遍之后,发现暂时没有提升的空间,我们可以暂时放一放。继续下面的学习,javascript贯穿我们前端工作中,在之后的学习实现里也会遇到和锻炼到。真正学习起来并不难理解,关键是灵活运用。

**[开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】](https://docs.qq.com/doc/DSmRnRGxvUkxTREhO)**

![css源码pdf](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/b707f0073fb2442d8d898650f5d3b649~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzM5MTQ5MjgwNjA=:q75.awebp?rk3s=f64ab15b&x-expires=1771931106&x-signature=Igx6wyPNb9VxSVaOaZM%2BVWnoR2c%3D)

![JavaScript知识点](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/c1657cea749a4c5fa9c4d4f1c7a6e478~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzM5MTQ5MjgwNjA=:q75.awebp?rk3s=f64ab15b&x-expires=1771931106&x-signature=ZyMWbGVu1Mjc0BI1%2Bu1ZgDkPkWg%3D)