思路:
1.导入需要的包
2.设置变量回测开始时间,股票代码名称
3.定义load_ohlc_from_local读取本地文件600519.csv,设置日期为索引,以DataFrame的格式返还
4.设置变量长期均线,短期均线并计算它们各自的平均值
5.计算做多信号,判断如果短期均线上穿长期均线则产生买入信号1,若短期均线下穿长期均线,则产生卖出信号-1,其他时候为无信号0
6.创建用于标记做多位置的标记,根据信号得到买入和不买入的位置索引
7.绘制入场和出场点,红色三角形为买入点,绿色星号为不买入点,并绘制短期和长期移动平均线
8.计算昨日的持仓状态和当日的收益计算
9.根据买入和卖出信号计算交易成本包含了印花税,滑点,佣金
10.计算年化收益,波动率和夏普比率,用于评估策略表现
11.计算最大回撤找到资产净值曲线最高最低点之间的最大回撤
12.绘制累计收益和最大回撤曲线图
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
bt_start_date = '2018-05-01'
stk_code, stk_name ='sh600519', u'贵州茅台'
def load_ohlc_from_local():
df = pd.read_csv('600519.csv')
df['datetime']=pd.to_datetime(df['da