Python量化交易学习笔记(18)——放量突破布林线中轨买入策略
本文将探索新的策略回测程序,主要是为了尝试不同的技术指标在backtrader平台上的应用,为后续复杂策略的实现做准备。 本文将实现的策略是,当股票放量突破布林线中轨时进行买入,当股票收盘价低于短期均线时卖出。 买入条件中,放量突破布林线中轨具体指的是,当日股票开盘价在布林线中轨下方,收盘价在布林线中轨上方,当日成交量为10日以来的最高量。卖出条件中,短期均线选取为5日线。回测初始资金100000元,单笔操作单位1000股,佣金千分之一,回测时间自2018年1月1日至2020年3月20日。 策略核心代码还是位于策略类的init方法中: def __init__(self): 在Python量化交易中,布林线(Bollinger Bands)是一种常用的技术分析工具,它由三条线组成:中轨(通常为20日简单移动平均线SMA)、上轨(中轨加两个标准差)和下轨(中轨减两个标准差)。布林线能够反映出价格的波动范围,中轨则被视为趋势的参考线。本文介绍的策略是基于布林线中轨和成交量的突破策略,具体步骤如下: 1. **买入条件**:当股票的开盘价在布林线中轨下方,而收盘价在中轨上方,且当日成交量为近10日内的最高量时,视为放量突破,触发买入信号。这种情况下,投资者认为市场有强烈的上涨动力,因为价格突破了中轨的阻力,并且伴随着大量交易,意味着市场参与者的活跃。 2. **卖出条件**:当股票的收盘价低于5日简单移动平均线(SMA)时,触发卖出信号。5日均线被认为是短期趋势的指示器,如果收盘价跌破此线,可能预示着短期趋势转弱。 3. **回测设置**:策略在backtrader平台上进行回测,初始资金为100000元,每次交易1000股,交易佣金为千分之一,回测时间范围从2018年1月1日至2020年3月20日。策略的核心代码在策略类`__init__`方法中,通过backtrader库的indicators计算布林线中轨和最高成交量,以及5日SMA。 4. **操作逻辑**:在backtrader中,技术指标是以lines对象的形式存在,不是直接的数值,所以比较和逻辑操作需要使用backtrader提供的`And`和`Or`函数。例如,使用`bt.And()`来组合买入条件。 5. **回测结果分析**:通过回测不同股票,如000001、000002、000004和603999,发现策略的表现因股票而异。在某些情况下,策略能取得正收益,但在其他股票上可能会亏损。这表明策略可能更适用于大盘股,对小盘股可能不够稳定。调整放量突破的标准(例如,改为20日最高量)可以略微改善结果,但仍然可能出现亏损交易。 6. **风险提示**:此类学习笔记仅供数据分析和学习用途,不应直接作为交易决策的依据。在实际交易中,务必结合其他市场信息和风险管理策略。 这个策略体现了技术分析中的“趋势跟随”理念,即利用技术指标捕捉市场的转折点。然而,任何单一策略都无法适应所有市场环境,因此在实际应用中,可能需要结合多种策略或者进行策略优化以提高整体的交易效果。此外,对于资金管理和风险控制也是量化交易中至关重要的环节,需要综合考虑。
- 粉丝: 6
- 资源: 942
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助