量化百科|使用Bollinger Bands进行突破交易策略|附策略回测代码

文摘   2024-08-29 19:28   英国  

使用Bollinger Bands进行突破交易策略

在本篇文章中,我们将介绍一种基于布林带(Bollinger Bands)的加密货币交易策略。这个策略的核心思想是,当价格突破布林带的上轨时,我们认为这是一个买入信号,并在价格回落到布林带的中轨时卖出,以实现盈利。本文将详细解析该策略的实现,并解释其背后的逻辑。

什么是Bollinger Bands?

布林带(Bollinger Bands)是由金融分析师John Bollinger在1980年代初开发的一种技术分析工具,用于衡量市场的波动性。布林带由三条线组成:中轨(一般为20日简单移动平均线SMA)、上轨和下轨。上轨和下轨的计算基于中轨,并通过在平均值上加减标准差来确定。这使得布林带能够动态适应市场的波动性。

具体来说,布林带的计算方法如下:

  1. 1. 中轨(Moving Average,MA)

  • • 中轨通常是20日的简单移动平均线(SMA)。

  • • 中轨 = SMA(20)

  • 2. 上轨(Upper Band)

    • • 上轨等于中轨加上两倍的标准差。

    • • 上轨 = MA + 2 × 标准差

  • 3. 下轨(Lower Band)

    • • 下轨等于中轨减去两倍的标准差。

    • • 下轨 = MA - 2 × 标准差

    布林带示意图

    布林带的市场应用

    布林带主要用于识别资产价格的高低相对水平。当价格接近上轨时,市场可能被认为是超买的,意味着价格可能下跌。当价格接近下轨时,市场可能被认为是超卖的,意味着价格可能上涨。虽然布林带是一个有价值的工具,但它通常作为次要指标,最好与其他分析方法结合使用。

    趋势分析

    中轨的方向可以指示趋势的强度:当中轨向上时,表明上升趋势,反之则表明下降趋势。此外,布林带的宽度反映了市场的波动性。窄幅布林带表示波动性较小,通常是重大价格变动的前兆,这被称为“挤压”(Squeeze)。相反,宽幅布林带表示波动性较大。

    超买与超卖

    当价格触及或超过上轨时,可能表示超买,表明可能是卖出或做空的机会。同样,当价格触及或跌破下轨时,可能表示超卖,表明可能是买入的机会。

    价格目标的设置

    布林带还可以帮助确定价格目标。例如,当价格从下轨反弹时,上轨可能成为一个潜在的退出点。如果价格趋势逆转,下轨则成为潜在目标。

    布林带的有效性

    使用布林带的有效性取决于所涉及的资产、使用的参数设置以及其他因素:

    • • 资产类型:每种证券的波动性特征不同,这会影响布林带的预测效果。通常经历突然波动的资产可能不会在布林带内表现出预期的行为。

    • • 参数设置:布林带的默认设置是20期SMA和上下两条标准差。然而,这可能并不是所有交易场景或时间框架的最佳选择。调整这些设置可能会提高其有效性,但需要对市场和资产有深入了解。

    • • 结合其他指标:布林带在与其他工具和指标结合使用时最为有效。例如,交易量指标和动量振荡器(如相对强弱指数RSI或MACD)可以为布林带提供必要的背景信息,或帮助确认信号。

    使用布林带的局限性

    尽管布林带是一个有用的技术指标,但它也有一些局限性:

    1. 1. 滞后性:布林带是一个滞后指标,这意味着它响应价格变化而不是预测价格变化,因此可能在变化已经发生后才提供信号。

    2. 2. 扩展期间的假信号:在高波动性市场期间,布林带扩展时可能会生成假信号。

    3. 3. 参数设置的适用性:布林带的标准设置(20日简单移动平均线和两个标准差)可能并不适用于所有交易场景。

    4. 4. 依赖其他指标:布林带通常在与其他指标(如交易量或动量振荡器)结合使用时更为有效。仅依赖布林带而不进行进一步确认可能会导致不佳的交易决策。

    如何避免布林带的假信号?

    为避免假信号,建议将布林带与其他技术分析工具结合使用,以确认趋势和信号。例如,使用动量振荡器(如RSI或MACD)可以帮助识别价格达到或突破布林带时的市场超买或超卖状态。此外,交易量指标可以显示价格变动背后的力量,因为交易量增加时的重大价格变化可能会确认布林带发出的信号。

    策略概述

    该策略的主要目标是利用布林带来识别价格的波动范围,并在价格突破这个范围时进行交易。具体步骤如下:

    1. 1. 设置回测参数
      我们选择从2016年6月1日到2017年7月1日的时间段来进行回测,并将初始现金设置为10,000美元。

    2. 2. 选择交易标的
      在这个策略中,我们选择了加密货币ETHUSD作为交易对象。你也可以选择其他加密货币如LTCUSD或BTCUSD。

    3. 3. 布林带的创建
      我们使用20日的简单移动平均线(Simple Moving Average)和2倍标准差来创建布林带。布林带由三个部分组成:上轨、中轨和下轨,分别表示价格的波动范围。

    4. 4. 动量指标的使用
      此外,我们还创建了一个5日的动量指标(Momentum Indicator),用于进一步辅助判断价格的走势。

    5. 5. 交易逻辑

    • • 买入条件:当价格突破布林带的上轨时,我们认为价格有可能继续上涨,因此选择买入(持有)。

    • • 卖出条件:当价格回落到布林带的中轨以下时,我们认为上涨趋势可能结束,因此选择卖出(清仓)。

  • 6. 数据温度设置
    为了确保指标的有效性,我们在策略中设置了20个周期的热身期(WarmUp Period),以便在开始交易前先计算出足够的历史数据。

  • 结论

    这个基于布林带的突破交易策略利用了价格波动的规律性,尝试在价格突破上轨时入场,并在价格回落时离场。虽然这个策略较为简单,但在一定的市场条件下,它可以捕捉到有效的价格波动趋势。

    通过不断优化参数和结合其他技术指标,可以进一步提升这个策略的有效性。当然,在实际应用中,建议先通过模拟盘或者小额资金进行测试,以降低交易风险。

    布林带作为一种经典的技术分析工具,其独特的波动性捕捉能力使得它在各类金融市场中都能有效应用。无论是初学者还是有经验的交易员,都可以通过合理利用布林带,开发出适合自己的交易策略。


    通过这篇文章,希望大家能够更深入地理解布林带及其在量化交易中的应用。如果你对量化交易感兴趣,不妨从这种简单而经典的策略入手,逐步建立自己的交易体系。



    策略实现代码基于QuantConnect平台,详细完整代码和策略原文请见知识星球

    from QuantConnect.Indicators import *import decimal as d
    ### <summary>### In this example we are looking for price to breakout above the bollinger bands### and look to buy when we see that. We hold our position until price touches the ### middle band of the bollinger bands.###
    class BollingerBreakoutAlgorithm(QCAlgorithm):
    def Initialize(self):
    self.SetStartDate(2016, 6, 1) #Set Start Date self.SetEndDate(2017, 7, 1) #Set End Date self.SetCash(10000) #Set Strategy Cash # define crypto we want to trade on # ETHUSD, LTCUSD or BTCUSD self.target_crypto = "ETHUSD" self.AddCrypto(self.target_crypto, Resolution.Daily) # create a bollinger band self.Bolband = self.BB(self.target_crypto, 20, 2, MovingAverageType.Simple, Resolution.Daily)
    # Plot Bollinger band self.PlotIndicator( "Indicators", self.Bolband.LowerBand, self.Bolband.MiddleBand, self.Bolband.UpperBand, ) # create a momentum indicator over 3 days # Plot Momentum
    # set warmup period
    def OnData(self, data): # buy if price closes above upper bollinger band # sell if price closes below middle bollinger band

    关于LLMQuant

    🌟🌟 起源于剑桥大学的知识分享社区,每日更新大语言模型与量化金融的最新资讯 🌍📊 www.llmquant.com 🌟🌟

    加入知识星球,你将获得:

    • 📰 每日最新资讯:人工智能与量化金融的前沿动态,附中英文原文,助你紧跟行业发展。

    • 💻 量化策略详解:获取量化策略的完整代码,支持多平台回测,提升你的实战能力。

    • ❓ 免费答疑:每日解答社区成员问题,高效提升你的知识水平。

    • 🌐 线上交流活动:与国内外量化从业者互动,参与深度知识分享,拓展你的专业网络。


    欢迎加入我们的知识星球,和全球精英一起探索人工智能与量化金融的无限可能!🚀✨





    搜索 LLMQuant

    关注我们



    LLMQuant
    起源于剑桥大学的量化社区,每日分享人工智能与量化金融前沿: www.llmquant.com