2.2 经典策略之移动平均策略
在2.1节中,我们使用了一个简单的回测,验证了一下小瓦的“低买 高卖”策略。总体来看,这个策略虽然没有让小瓦损失太多资产,但是 也没有带来期待的回报。因此,小瓦迫不及待地想知道,有没有一个更 好的策略能提高交易的回报。
实话说,想设计一个百分之百达到预期收益的策略,目前看来是不 现实的。历史上确实有一些比较经典的策略,如本节介绍的单一移动平 均(Single Moving Average,SMA)策略。
移动平均策略的核心思想非常简单,且十分容易理解。当股价上升 且向上穿过N日的均线时,说明股价在向上突破,此时下单买入;当股 价下降且向下穿过N日的均线时,说明股价整体出现下跌的趋势,此时 下单卖出。或者当M日均价上升穿过N日的均线(M < N)时,说明股票 处于上升的趋势,应下单买入;反之,当M日均价下降且穿过N日均线 时,说明股票处于下降的趋势,应下单卖出。
在这个策略中,需要用到的指标便是均线。下面我们使用代码来演 示股价均线的绘制,还是使用2.1节中下载的股票数据,选取20个交易 日的股票均价作为均线,输入代码如下:
#导入必要的库
import tushare as ts
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
pd.set_option('expand_frame_repr', False) # True就是可以换行显示。设置成False的时候不允许换行
pd.set_option('display.max_columns', None) # 显示所有列
pd.set_option('display.max_rows', None) # 显示所有行
pd.set_option('colheader_justify', 'centre') # 显示居中
ts.set_token('你的token')
pro = ts.pro_api()
# 股票代码
ts_code="002624.SZ"
start = "20210101"
end = "20230310"
# # 日线行情
zgpa = pro.daily(ts_code=ts_code, start_date=start, end_date=end)
zgpa.sort_values('trade_date', inplace=True)
zgpa.set_index('trade_dat