美文网首页
十大量化经典策略——双均线策略

十大量化经典策略——双均线策略

作者: 南太湖小蚂蚁 | 来源:发表于2021-03-28 22:07 被阅读0次

    最近想把量化投资十大经典策略都重新复现一遍,作为回顾,也作为学习。就从最基础的双均线策略开始,为了程序编写的简便起见,直接采用了聚宽平台,不然的话,股票的基本面数据和历史数据需要我自己去爬取,需要自己写爬虫,或者使用tushare之类的第三方包,不过tushare现在很多功能都需要有一定的积分了才可以使用。

    策略原理:

    构建双均线交易策略。使用两根均线,一根长周期均线,一根短周期均线。当短期均线从下往上穿越长周期均线的时候,买入;当短期均线从上往下穿越长周期均线的时候,卖出。

    附加条件:

    加入止损和仓位管理,并计算买入的股票数量;测试时间最好从2010年开始跑过整轮牛熊;使用的均线周期为15日,60日均线。

    算法:

    1.根据设置的长短周期,计算均线值
    2.每日收盘后判断,若出现金叉,则把该股列入买入股票池,并计算5日平均波幅ATR,确定止损价为当然最低价-ATR,并根据风险比例和仓位,计算出可以买入的数量amount,保存在待买入列表中;若出现死叉,或股价跌破止损价,则将股票保存到待卖出股票列表中;
    3.第二天,开盘判断待买入股票是否在持仓列表中,如不在,则买入,加入到持仓列表中;对待卖出列表中的股票进行卖出。

    策略回测表现:

    采用宁波银行'002142.XSHE',今世缘'603369.XSHG',两个股票作为股票池进行回测
    2019-8-1至2021-2-1,策略收益32.57%,跑输沪深300指数

    回测1

    2010-8-1至2021-2-1,策略收益151.55%,跑赢沪深300指数

    回测2

    由于投资标的特定为宁波银行和今世缘,因此不能说选别的股票也是这个效果,于是我增加了选股策略:
    4.股票池中的列表从沪深300成分股中选择,选择净利润同比增长率为正,扣非净利润为正,roe为正,净资产回报率为正的股票,并取净利润增长率和eps倒序排序,选前三个股票,每天开盘前选股。

    ## 开盘更新股票池
        pool = get_index_stocks('000300.XSHG') # 沪深300股票池
        df = get_fundamentals(query(
            valuation.code, valuation.market_cap, indicator.eps, valuation.pe_ratio, indicator.inc_net_profit_year_on_year
        ).filter(
            indicator.inc_net_profit_year_on_year > 0,
            indicator.adjusted_profit > 0,
            indicator.roe > 0,
            indicator.inc_return > 0,
            valuation.code.in_(pool)
        ).order_by(
            # 按净利润率降序排列
            indicator.inc_net_profit_year_on_year.desc(),
            indicator.eps.desc()
        ).limit(
            3
        ), date=context.current_dt.strftime('%Y-%m-%d'))
        log.info("stockList-------------》",df['code'])
        g.stockList = df['code']
    

    选股之后,对股票池内的股票进行双均线择时,回测了2010-8-1至2021-2-1的结果如下:


    回测3

    可以看到,还是略为跑输沪深300指数的,可见单纯的依靠双均线策略,长期来看很难跑赢沪深300指数,这也就是说,对于普通投资者,坚持定投指数基金,的确可以打败大部分的主动型投资基金经理。

    相关文章

      网友评论

          本文标题:十大量化经典策略——双均线策略

          本文链接:https://www.haomeiwen.com/subject/mgpmhltx.html