• 量化交易——布林带策略


    一、布林带策略介绍

      布林带/布林线/保利加通道(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

      执行显示效果:

      

  • 相关阅读:
    数据绑定表达式语法(Eval,Bind区别)
    使用博客园的第一件事 自定义主题
    sql2000 跨服务器复制表数据
    使用UpdatePanel 局部刷新出现中文乱码的解决方法!!
    MMC不能打开文件MSC文件
    sql 日期 、时间相关
    loaded AS2 swf call function in AS3 holder
    Rewrite the master page form action attribute in asp.net 2.0
    100万个不重复的8位的随机数
    flash 中实现斜切变型
  • 原文地址:https://www.cnblogs.com/xiugeng/p/12913238.html
Copyright © 2020-2023  润新知