写在前面: 本文不是在量化平台上做策略回测的coding,仅以2016-04-15~2019-04-15期间阿里巴巴(BABA)的收盘价模拟均线策略,从而基于数据得出某些观点。平台:python3
1、单均线策略
单均线策略:上个交易日股价超出10日均线,则今日买入,跌破则卖出
1. 获取股票收盘价
加载数据,把date这一列设置为索引,简单起见,只用收盘价进行分析。
「Tips」
a. 参数index_col
可以在读取数据时指定index
b. pd.Series.str.strip()
可以去除series数据的指定符号,具体查看文档
c. pd.DatetimeIndex()
可设置某列为时间戳的index
d. sort_index()
按照index排序
import numpy as np
import pandas as pd
df = pd.read_csv('./BABA_stock.csv', index_col = 'date', usecols = [0,1])
# 先查看数据
df.head()
# 将索引转换成datetime格式,并去除引号。时间戳的索引可以保证,数据运算时,是对应当天的值计算
df.index = pd.DatetimeIndex(df.index.str.strip("'"))
# 按照日期,升序排列
df.sort_index(inplace = True)
print(df.head())
df.describe()
「数据」
「描述性统计」
从数据的描述性统计来看,在这段期间,BABA每股收盘价的最低价是$74.23,最高价是$219.86,平均价为$143.37。这就是买一股的成本。
2. 计算10日均线数据
「Tips」
df.rolling(10)
滚动窗口取10条数据
ma10 = df.rolling(10).mean()
ma10_model = df['close'] - ma10['close']