Стратегия системы двойной скользящей средней полосы Боллинджера - это типичная торговая стратегия, использующая индикатор волатильности полосы Боллинджера и двойные линии для открытия позиций, а также механизмы остановки прибыли и остановки убытков для управления средствами и получения прибыли.
Эта стратегия основана в основном на индикаторе Болинджерских полос. Болинджерские полосы состоят из скользящей средней линии и полосы пропускания. Стратегия сначала рассчитывает скользящую среднюю цены закрытия за n периодов как среднюю полосу, причем полоса пропускания равна m раз стандартному отклонению средней полосы. Верхняя полоса и нижняя полоса затем изображаются как m стандартных отклонений выше и ниже средней полосы. Когда цена касается верхней полосы, открывается короткая позиция. Когда цена касается нижней полосы, открывается длинная позиция.
В частности, стратегия предусматривает следующие шаги:
Входные параметры: установленная скользящая средняя длина n и множитель стандартного отклонения m
Вычислить средний диапазон: простые скользящие средние цены закрытия за n периодов
Расчет верхней полосы: средняя полоса + стандартное отклонение цены закрытия за m * n периодов
Расчет нижней полосы: средняя полоса - стандартное отклонение цены закрытия за m * n периодов
Нарисуйте средние, верхние и нижние полосы
Когда цена закрытия пересекает средний диапазон, делайте длинный
Когда цена закрытия пересекается ниже среднего диапазона, перейти на короткий
Установка точек остановки прибыли и остановки убытков для позиций выхода
Вступление в позиции на двойных линиях вместе с механизмами остановки прибыли и остановки убытков может эффективно контролировать риски и генерировать стабильную прибыль.
Преимущества этой стратегии включают:
Простые и понятные правила, легко применяемые.
На основе индикатора Болинджеровских полос с научным обоснованием.
Двухлинейные контакты фильтруют ложные прорывы на различных рынках.
Включает стоп-прибыль и стоп-затраты, управление рисками.
Достаточные данные обратного тестирования гарантируют надежность.
Большое пространство для настройки параметров для оптимизации.
Некоторые риски следует учитывать:
Болинджерские полосы чувствительны к параметрам, которые могут привести к различным результатам.
Двухлинейный вход может лишить торговых возможностей из-за низкой частоты.
Неправильные настройки стоп-прибыли и стоп-потери могут привести к преждевременному стоп-потере или недостаточной прибыли.
При изменении рыночной тенденции могут произойти большие потери.
Более короткие сроки обратного тестирования могут привести к рискам переподготовки.
Возможные решения:
Оптимизируйте параметры, чтобы найти лучшую комбинацию.
Ужните диапазоны для увеличения частоты.
Регулируйте остановки на основе различных рынков.
Добавить трендовый фильтр, чтобы избежать контра-тенденции.
Расширить временные рамки обратных испытаний, чтобы обеспечить надежность.
Некоторые способы улучшения стратегии:
Оптимизировать параметры для лучших записей. Более полная настройка параметров может найти оптимальные наборы параметров.
Добавьте обнаружение трендов.
Оптимизируйте выходы. Динамические или отстающие остановки могут улучшить управление прибылью.
Добавьте фильтры с другими индикаторами. MACD, KDJ и т. д. могут помочь фильтровать ложные прорывы.
Включить модели машинного обучения, такие как LSTM, для дальнейшей оптимизации.
Комбинировать с другими базовыми или продвинутыми стратегиями управления портфелем.
Система двойных скользящих средних полос Боллинджера демонстрирует в целом положительные результаты, с такими преимуществами, как научные показатели, четкие правила и гибкие параметры.
/*backtest start: 2023-09-17 00:00:00 end: 2023-10-17 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("BB돌파", overlay=true) length = input.int(20, minval=1) src = input(close, title="Source") mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev") basis = ta.sma(src, length) dev = mult * ta.stdev(src, length) upper = basis + dev lower = basis - dev offset = input.int(0, "Offset", minval = -500, maxval = 500) plot(basis, "Basis", color=#FF6D00, offset = offset) p1 = plot(upper, "Upper", color=#2962FF, offset = offset) p2 = plot(lower, "Lower", color=#2962FF, offset = offset) fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95)) long = ta.crossover(close,basis) short = ta.crossunder(close,basis) strategy.entry("long", strategy.long, when =long) strategy.entry("short", strategy.short, when =short)