
Многоуровневая стратегия торговли с отслеживанием трендов и обратными поворотами в поясах Боллинджа - это комплексная система торговли, основанная на показателях поясов Боллинджа, которая хитро сочетает в себе особенности отслеживания трендов и обратных торгов, чтобы захватить рыночные возможности путем взаимодействия цены с поясом Боллинджа. Система разработана с использованием трехуровневых механизмов выхода, включающих в себя зоны, рассуждения о прохождении равной линии и движущихся остановках, что позволяет стратегии эффективно контролировать риск, максимально увеличивая прибыль.
В основе этой стратегии лежит использование буринской полосы в качестве динамического отсчета ценовых колебаний в сочетании с тщательно разработанными многоуровневыми правилами входа и выхода.
Логика игры состоит из двух частей:
Выходная логика предусматривает три уровня защиты:
Параметры Брин-полосы могут быть гибко изменены, включая средний цикл ((по умолчанию 20) и кратность стандартной разницы ((по умолчанию 2.0)). Настройки выхода на поле также могут быть изменены в зависимости от рыночных особенностей, включая X ((по умолчанию 3), Y ((по умолчанию 10) и процент отмены мобильных стоп Z ((по умолчанию 30%).
Поймать многочисленные рыночные возможности: стратегия включает одновременное отслеживание тенденций и логику обратной торговли, позволяя найти торговые возможности в различных рыночных условиях. Когда рынок находится в состоянии потрясения, можно использовать отскок / падение после того, как цена достигнет границы буринской полосы; когда рынок начинает движение по тренду, можно следовать тренду с помощью сигнала, который пробивает границу буринской полосы.
Многоуровневый контроль риска: стратегия позволяет защитить средства в различных ситуациях, разрабатывая три уровня различных механизмов выхода. Первый уровень регионального суждения позволяет быстро идентифицировать ошибку в направлении торговли; второй уровень проходит через равновесие, подходящее для изменения среднесрочной тенденции; третий уровень мобильного стопа защищает уже полученную прибыль после значительной прибыли.
Гибкость параметров: Стратегия предоставляет множество регулируемых параметров, позволяющих трейдерам оптимизировать систему в соответствии с различными рыночными и временными характеристиками. Длина и кратность буринских полос могут быть настроены в соответствии с волатильностью рынка, временные параметры в условиях выхода на рынок (X и Y) и соотношение мобильных стоп-отзывов (Z) могут быть настроены в соответствии с рисковыми предпочтениями трейдера.
Преимущества визуализации: Брин-полоса и новые средние ссылочные линии нанесены непосредственно на график, что позволяет трейдерам визуально анализировать ценовое положение и потенциальные зоны поддержки/сопротивления, повышая эффективность принятия решений.
Ясная структура кода: упорядоченная организация кода стратегии, спецификация наименования переменных, подробные комментарии, которые легко понять и поддерживать. Ясное разделение логики входа и выхода, что позволяет последующее расширение и оптимизацию.
Отсутствие четкого механизма остановки убытков: текущая стратегия не содержит ограничений на убытки в традиционном смысле, что может привести к большим потерям в экстремальных рыночных условиях. Рекомендуется, чтобы трейдеры вручную добавляли фиксированные убытки или динамические логики остановки убытков, основанные на ATR, в зависимости от их индивидуальной способности к риску.
Чрезмерная зависимость от бурин-полосы: в высоко волатильных или низко ликвидных рынках бурин-полоса может быть слишком широкой или слишком узкой, что приводит к снижению качества сигнала. Рекомендуется тестировать различные параметры настройки бурин-полосы в различных рыночных условиях.
Чувствительность к параметрам: показатели стратегии могут быть чувствительны к параметрам, таким как длина буринской полосы, кратность стандартной разницы и параметры времени выступления. Неправильный выбор параметров может привести к чрезмерной торговле или пропуску важных возможностей.
Условия запуска мобильного стоп фиксируются: в текущем коде, условия запуска мобильного стоп устанавливаются на фиксированную длину риска в 2 раза, что может не применяться во всех рыночных условиях. В слишком больших волатильности рынка, может привести к установке стоп слишком далеко, не эффективно защищать прибыль.
Риск симметричности условий многополюса: стратегия использует симметричную логику входа и выхода для многополюсного направления, но в реальном рынке поведение вверх и вниз часто несимметрично (например, фондовый рынок обычно падает быстрее, чем растет). Рекомендуется рассмотреть возможность установки различных параметров для многополюсного направления.
Добавление интеллектуальных механизмов остановки: можно ввести динамическую остановку на основе ATR (средняя реальная волнообразность) или настроить стоп-дистанцию на основе пропускной способности булина, чтобы остановка была более подходящей для реальных рыночных колебаний. Это можно реализовать путем добавления параметра stop в функции strategy.entry или использования параметра stop_loss функции strategy.exit.
Оптимизация условий фильтрации входа в рынок: можно рассмотреть возможность добавления признаков подтверждения тренда, таких как индикатор перемещения в направлении ((DMI) или относительно сильный индекс ((RSI), чтобы отфильтровать низкокачественные сигналы. Например, принимать сигнал отслеживания тренда только при ADX> 25, или принимать обратный сигнал только в зоне RSI перекупа / перепродажи.
Настройка адаптивных параметров: параметры пояса Бурин и параметры выездных условий разработаны в адаптивной форме, автоматически корректируются в зависимости от волатильности рынка. Например, можно рассчитать волатильность за последние N циклов и в соответствии с этим динамически корректировать стандартную погрешность пояса Бурин.
Улучшение механизма мобильной остановки: позволяет регулировать условия запуска и дальность отслеживания мобильной остановки, а не фиксировать ее в два раза больше рисковой дальности. Принимая во внимание волатильность в зависимости от различных временных периодов, можно регулировать процент отмены мобильной остановки.
Добавление фильтров времени: внедрение фильтров по времени торговли, избегание высоких волатильных периодов перед открытием и закрытием рынка или добавление фильтров наилучшего времени торговли для конкретного рынка.
Многоциклический анализ: интегрирование многоциклической аналитической структуры, требующей, чтобы направление тренда более высоких циклов соответствовало направлению текущей торговли, чтобы улучшить качество сигнала. Например, принимать многосигналы на 4-часовом графике только тогда, когда солнечная линия движется вверх.
Оптимизация управления капиталом: добавление логики расчета позиций, основанной на волатильности, увеличение позиций в условиях низкой волатильности и уменьшение позиций в условиях высокой волатильности, чтобы сбалансировать риски и доходы.
Многоуровневая стратегия торговли с отслеживанием трендов и обратным отклонением бурин-пояса - это комплексная торговая система, разработанная с использованием динамических характеристик индикатора бурин-пояса, в сочетании с многоуровневыми правилами выхода, для эффективного управления рисками при захвате рыночных возможностей. Наибольшим преимуществом этой стратегии является ее гибкость и адаптивность, возможность найти торговые возможности в различных рыночных условиях и параметрически адаптироваться к различным видам торговли и периодам времени.
Несмотря на то, что существуют некоторые риски стратегии, такие как отсутствие четкого механизма остановки убытков и чувствительность параметров, оптимизационные направления, предложенные в этой статье, такие как увеличение интеллектуального остановки убытков, оптимизация условий фильтрации входа в игру, самостоятельная настройка параметров и т. Д., Могут дополнительно повысить устойчивость и прибыльность стратегии.
Для трейдеров рекомендуется проводить полное ретроспективное тестирование и корректировать параметры в соответствии с конкретными рыночными характеристиками до их практического применения. В то же время, используйте эту стратегию в качестве части целостной торговой системы, в сочетании с другими технологиями и фундаментальным анализом для принятия всесторонних торговых решений.
/*backtest
start: 2024-04-01 00:00:00
end: 2025-03-31 00:00:00
period: 6d
basePeriod: 6d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy("Bollinger Bands Strategy", overlay=true)
// 輸入參數
length = input.int(20, "BB Length", minval=1, group="布林帶設定")
mult = input.float(2.0, "BB Multiplier", minval=0.001, maxval=50, group="布林帶設定")
X = input.int(3, "Exit Condition 1 Bars (X)", minval=1, group="出場設定")
Y = input.int(10, "Exit Condition 2 Bars (Y)", minval=1, group="出場設定")
Z = input.float(30.0, "Trail Profit Retreat Z%", minval=1.0, maxval=100.0, step=1.0, group="出場設定")
// 計算布林帶
source = close
basis = ta.sma(source, length) // 20 期均線
dev = mult * ta.stdev(source, length) // 標準差
upper = basis + dev // 上緣
lower = basis - dev // 下緣
mid1 = upper - (upper - basis)/3
mid2 = lower + (basis - lower)/3
// 繪製布林帶
plot(basis, "Basis", color=color.gray)
plot(upper, "Upper", color=color.blue)
plot(lower, "Lower", color=color.blue)
plot(mid1,"mid1",color = color.yellow)
plot(mid2,"mid2",color = color.yellow)
//fill(upper, lower, color=color.new(color.blue, 90), title="BB Fill")
// 進場條件
longEntry = ta.crossover(source, lower) or (low < lower and close > lower)
shortEntry = ta.crossunder(source, upper) or (high > upper and close < upper)
// 進場執行
if (longEntry)
strategy.entry("Long", strategy.long)
if (shortEntry)
strategy.entry("Short", strategy.short)
// 出場條件變數
var float longEntryPrice = na
var float shortEntryPrice = na
var int longBarsSinceEntry = 0
var int shortBarsSinceEntry = 0
// 更新持倉狀態
if (strategy.position_size > 0) // 做多持倉
if (na(longEntryPrice)) // 記錄進場價格和起始計數
longEntryPrice := strategy.position_avg_price
longBarsSinceEntry := 0
longBarsSinceEntry := longBarsSinceEntry + 1
if (strategy.position_size < 0) // 做空持倉
if (na(shortEntryPrice))
shortEntryPrice := strategy.position_avg_price
shortBarsSinceEntry := 0
shortBarsSinceEntry := shortBarsSinceEntry + 1
// 做多出場條件
if (strategy.position_size > 0)
// 條件 1:第 X 根 K 線後,收盤價 < lower + (basis - lower) / 3
longExitLevel1 = lower + (basis - lower) / 3
if (longBarsSinceEntry >= X and close < longExitLevel1)
strategy.close("Long", comment="Long Exit Condition 1")
// 條件 2:第 Y 根 K 線後,收盤價 < basis
if (longBarsSinceEntry >= Y and close < basis)
strategy.close("Long", comment="Long Exit Condition 2")
// 條件 3:移動停利(收盤價 > upper 觸發)
distanceLong = longEntryPrice - lower
trailPriceLong = longEntryPrice + (distanceLong * 2) // 假設 2 倍風險距離作為觸發點,可調整
trailOffsetLong = distanceLong * (1 - Z / 100)
strategy.exit("Long Trail", "Long", trail_price=trailPriceLong, trail_offset=trailOffsetLong)
// 做空出場條件
if (strategy.position_size < 0)
// 條件 1:第 X 根 K 線後,收盤價 > upper - (upper - basis) / 3
shortExitLevel1 = upper - (upper - basis) / 3
if (shortBarsSinceEntry >= X and close > shortExitLevel1)
strategy.close("Short", comment="Short Exit Condition 1")
// 條件 2:第 Y 根 K 線後,收盤價 > basis
if (shortBarsSinceEntry >= Y and close > basis)
strategy.close("Short", comment="Short Exit Condition 2")
// 條件 3:移動停利(收盤價 < lower 觸發)
distanceShort = upper - shortEntryPrice
trailPriceShort = shortEntryPrice - (distanceShort * 2) // 假設 2 倍風險距離作為觸發點,可調整
trailOffsetShort = distanceShort * (1 - Z / 100)
strategy.exit("Short Trail", "Short", trail_price=trailPriceShort, trail_offset=trailOffsetShort)
// 清除變數(當持倉結束時)
if (strategy.position_size == 0)
longEntryPrice := na
shortEntryPrice := na
longBarsSinceEntry := 0
shortBarsSinceEntry := 0