量化双均线策略:(二)判断买入卖出信号

本文介绍了一个基于ma5和ma10的双均线量化交易策略。策略核心是金叉买入、死叉卖出,即当短期均线ma5上穿长期均线ma10时买入,下穿时卖出。在Strategy类中实现该策略,输入参数包括股票代码、初始资金、起始及结束日期等。策略结果存储在res_df中,包含每日市值、涨跌幅和基准指数对比。
摘要由CSDN通过智能技术生成

上篇已经介绍了data的获取,此篇介绍ma5与ma10的双均线策略具体实现。双均线策略是一个趋势策略,基本思路是金叉买入,死叉卖出,也就是当ma5向上穿过ma10时,则买入,向下穿过ma10时,则卖出。

主要实现在Strategy类中,输入的变量格式如下:code_list = ['002415', '002416', '000333'],init_cash = 100000,starttime = '2014-01-01',endtime = '2017-11-30',其他几个重要成员变量如下:cash为还剩余的现金;capital_market_value为持仓的市值,按每天的收盘价计算;limit_cash为每只股票分得的仓位,双均线策略中,codelist中的股票平分持仓;position_list为持仓的情况,类型为dict,股票的code为key,持仓的数量为value;data_range为一个回测的日期list,pd.period_range的freq参数选择为B,即工作日;benchmark赋值为sh,即上证指数,以便比对策略结果。

#coding=utf-8
from trade import Trade
from data_repository import DataRepository
import tushare as ts
import pandas as pd
import numpy as np
import math

class Strategy(object):
    def __init__(self, code_list, init_cash, start_time, end_time):
        self.start_time = start_time
        self.end_time = end_time
        self.data_repository = DataRepository.get_instance(code_list, self.start_time, self.end_time)
        self.code_list = code_list
        self.benchmark_code = 'sh'

        self.init_cash = init_cash
        self.cash = init_cash
        self.limited_cash = init_cash/len(code_list)
        self.position_list = {}
        for code in self.code_list:
            self.position_list[code] = 0

        #存储trade对象
        self.trade = Trade()

        d = list(pd.period_range(start=start_time, end=end_time, freq='B'))
        
  • 7
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值