用Python写一个简单的双均线策略
双均线策略
先罗列一下我知道的量化策略:
- 双均线:一句话来讲就是金叉买死叉卖。
- 布林带:突破压力线(上轨)清仓,跌破支撑线(下轨)持仓。
- PEG:根据PE/G调整仓位。
- 均值回归:跌下去的要涨,涨上来的要跌(废话。
- 羊驼:随机选股,定期调仓(意外地能赚?
由于每种策略的持仓清仓逻辑不一样,反映在代码中的表现也就各不相同,以后如果有时间,会把上述量化策略全部实现一遍,今天先来整个最经典的入门级别的活。
首先,啥叫双均线?
从名字上来看,就是两条均线的意思。没错,双均线策略的基本逻辑就是纯粹依靠两条均线进行调仓。
两条均线分别是短期均线和长期均线。我们对于某一支股票的变动,先取一个较小时间段内的股价移动平均画出一条线(短期均线),再取一个较长时间段内的股价移动平均画出一条线(长期均线),然后把它们画在一张图里,定眼…睛一看,我们一定会发现这样的规律:
- 短期均线的波动比长期均线剧烈。从图的角度来直观的说,就是短期均线更加陡峭,长期均线更加平缓。
- 大多数股价走势中,如果短期均线向上穿过了长期均线,那么股价在接下来的一段时间一定会上涨;反过来,如果短期均线向下穿过了长期均线,那么股价在接下来的一段时间一定会下跌。
在经验上,常用的短期均线有5、10、20日均线;常用的长期均线有60、90、120日均线。
我们来直观的感受一下:
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv("D:\pythonProject\DataAnalysis-master\Maotai.csv", index_col="date", parse_dates=['date'])
用茅台2019年10月到2020年1月的数据,观察一下短期均线(这里选用5日均线)、长期均线(这里选用60日均线)和股价走势自身的规律。
df_ma5 = df['close'].rolling(5).mean() #计算收盘价5日短期移动平均
df_ma60 = df['close'].rolling(60).mean() #计算收盘价60日长期移动平均
df_ma5o = df_ma5['2020-03':'2020-04'] #取2020年3月和2020年4月的数据
df_ma60o = df_ma60['2020-03':'2020-04']
df_org = df[