zoukankan      html  css  js  c++  java
  • 量化交易——布林带策略

    一、布林带策略介绍

      布林带/布林线/保利加通道(Bollinger Band):由三条轨道线组成,其中上下两条线分别可以看成是价格的压力线支撑线,在两条线之间是一条价格平均线

      一般来说,股价会运行在压力线和支撑线所形成的通道中。

      与MACD、RSI、KDJ等指标一样,布林线(BOLL)指标也是股票市场最实用的技术分析参考指标。

    1、计算公式

      中间线:20日均线

      up线(压力线):20日均线+N*SD(20日收盘价标准差)

      down线(支撑线):20日均线-N*SD(20日收盘价标准差)

      SD是标准差,N是倍数。

    2、布林带策略

      当股价突破阻力线时——清仓

      

      当股价跌破支撑线时——全仓买入

      

      布林带策略研究——N的取值问题、布林带宽度等

      

       上图中修改计算周期,即修改均线。修改股票特性参数,即修改N的取值。

    二、布林带策略实现

    # 初始化函数,设定基准等等
    def initialize(context):
        # 设定沪深300作为基准
        set_benchmark('000300.XSHG')
        # 开启动态复权模式(真实价格)
        set_option('use_real_price', True)
        # 股票类每笔交易时的手续费是:买入时佣金万分之三,卖出时佣金万分之三加千分之一印花税, 每笔交易佣金最低扣5块钱
        set_order_cost(OrderCost(close_tax=0.001, open_commission=0.0003, close_commission=0.0003, min_commission=5), type='stock')
    
        g.security = '002389.XSHE'   # 航天彩虹
        g.M = 20      # 计算周期
        g.k = 2       # 股票特性参数,即N的取值
    
    # 初始化此策略
    def handle_data(context, data):
        # 获取该股票20日收盘价
        sr = attribute_history(g.security, g.M)['close']
        # 取得过去20日的平均价格
        ma = sr.mean()
        # numpy和pandas的std()均可计算标准差
        # up线(压力线):20日均线+N*SD(20日收盘价标准差)
        up = ma + g.k * sr.std()
        # down线(支撑线):20日均线-N*SD(20日收盘价标准差)
        down = ma - g.k * sr.std()
        
        # 股票开盘价格
        p = get_current_data()[g.security].day_open
        # 取得当前的现金
        cash = context.portfolio.available_cash
        # portfolio.positions持仓标的信息
        if p < down and g.security not in context.portfolio.positions:
            # 跌破下限买入信号且没有持仓
            order_value(g.security, cash)
        elif p > up and g.security in context.portfolio.positions:
            # 涨破上限卖出信号且有持仓
            order_target(g.security, 0)     # 卖出所有股票,使这只股票的最终持有量为0

      执行显示效果:

      

  • 相关阅读:
    BZOJ4552 Tjoi2016&Heoi2016排序 【二分+线段树】*
    BZOJ4547 Hdu5171 小奇的集合 【矩阵快速幂优化递推】
    BZOJ1113 Poi2008 海报PLA【单调栈】【水】
    BZOJ1510 POI2006 Kra-The Disks 【模拟】
    BZOJ 2530 Poi2011 Party 【枚举】
    BZOJ4292 PA2015 Równanie 【暴力水题】
    BZOJ1801 Ahoi2009 chess 中国象棋 【DP+组合计数】*
    【干货】高精度模板【加,减,乘,快速幂】
    BZOJ1220 HNOI2002 跳蚤 【容斥原理+高精度】*
    BZOJ1412 ZJOI2009 狼和羊的故事 【网络流-最小割】
  • 原文地址:https://www.cnblogs.com/xiugeng/p/12913238.html
Copyright © 2011-2022 走看看