学习笔记_如何搭建一个完整的策略框架:以均线策略为例

参考资料:
https://bbs.pinggu.org/thread-4745852-1-1.html
【量化小讲堂-Python、Pandas系列15】完整策略框架:以均线策略为例
这个是邢不行老师的量化系列课程,有源码分享,很赞!强烈推荐!

https://www.jianshu.com/p/363aa2dd3441
Python计算量化策略评估指标
微信公众号:Python金融量化(id:tkfy920),专注于分享python在金融领域的应用。推荐推荐!

下图是 JoinQuant 聚宽量化平台上的回测界面,这个学习笔记的内容就是如何做出这样一个图!

工具:Spyder
数据:tushare
在这里插入图片描述
在这里插入图片描述

一、产生买卖信号的策略

1、导入原始数据

from __future__ import division #导入精确除法
import pandas as pd
import warnings     # warning通常用于提示用户一些错误或者过时的用法。
warnings.filterwarnings("ignore")
import numpy as np
import tushare as ts
import matplotlib.pyplot as plt


pro = ts.pro_api()
api = ts.pro_api('29acf1ff24d0c5539a992821efac9b2037d42610f4cb0724ea93e084')

stock_data = ts.pro_bar(pro_api=api, ts_code='002916.SZ', adj='qfq', start_date='20171213', end_date='20190128')[['ts_code','trade_date','open','close','pct_chg']]
stock_data['pct_chg'] = stock_data['pct_chg'].div(100)
stock_data.axes
stock_data.index = pd.DatetimeIndex(stock_data.index)
stock_data.sort_values(by='trade_date', inplace=True)

在这里插入图片描述
2、写策略函数,得到买卖信号:
e.g. 均线策略

def simple_ma(stock_data, window_short=5, window_long=60):
    """
    :param stock_data: 股票数据集
    :param window_short: 较短的窗口期
    :param window_long: 较长的窗口期
    :return: 当天收盘时持有该股票的仓位数据
    
    最简单的均线策略逻辑:
    短期均线上穿长期均线,且第二天开盘没有涨停,则以第二天开盘价全仓买入;
    短期均线下穿长期均线,且第二天开盘没有跌停,则以第二天开盘价全仓卖出。
    """
    
    # 计算短期和长期的移动平均线
    stock_data['ma_short'] = pd.Series.rolling(stock_data['close'], window=window_short, min_periods=5).mean()
    stock_data['ma_long'] = pd.Series.rolling(stock_data['close'], window=window_long, min_periods=60).mean()
    
    # 出现买入信号而且第二天开盘没有涨停
    stock_data.ix[(stock_data['ma_short'].shift(1) > stock_data['ma_long'].shift(1)) & 
                  (stock_data['open'] < stock_data[&#
  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值