
Стратегия представляет собой торговую систему, основанную на многоциклическом среднелинейном, трендовом и количественном анализе. Основная идея заключается в том, чтобы идентифицировать интенсивные зоны, образованные краткосрочными и среднесрочными среднелинейными линиями, в сочетании с долгосрочным среднелинейным подтверждением направления тенденции, войти в торговлю при возврате после того, как цена преодолела интенсивные зоны, и использовать ATR для управления рисками.
Основные принципы этой стратегии основаны на следующих ключевых компонентах:
Равнолинейная плотность распознаванияСтремительно используется 20-дневная (краткосрочная) и 60-дневная (среднесрочная) средняя линия, образующая плотное пространство, которое обычно представляет собой зону консенсусных ценностей для участников рынка, имея определенное поддерживающее или сопротивляющее действие.
Тенденция подтверждена: определение направления общего тренда путем сравнения относительной позиции 60-дневных (среднесрочных) и 120-дневных (долгосрочных) средних линий. Когда среднесрочные средние линии находятся над долгосрочными средними, они идентифицируются как восходящие; наоборот, как нисходящие.
Прорыв и возвращение в игруУникальность стратегии заключается в том, что вместо того, чтобы входить в точку прорыва, следует подождать, пока цена не вернется в плотное место после прорыва, что позволяет эффективно снизить риск ложного прорыва.
Подтверждение поставкиВступительный сигнал должен удовлетворять условию, что объем сделок превышает средний объем сделок за 20 дней в 1,5 раза, чтобы обеспечить достаточную активность рынка для поддержки ценового движения.
Управление рискамиСтратегия: использование динамических стоп- и мобильных стоп-механизмов на основе показателей ATR, позволяющих автоматически корректировать уровень стоп-стоп в зависимости от волатильности рынка и адаптироваться к различным рыночным условиям.
С точки зрения реализации кода, условия для многоголового входа следующие: цена в предыдущий день преодолела высокую плотность ((максимальные значения smaShort и smaMid), цена в тот же день вернулась, но все еще находится в плотной зоне ((не ниже нижней полосы), и среднесрочная тенденция вверх ((smaMid > smaLong), при этом выполняется условие объема торгов .
В результате глубокого анализа кодовых реализаций этой стратегии можно выделить следующие преимущества:
Многоуровневый механизм подтвержденияСтратегический комплекс учитывает среднелинейные показатели на короткие, средние и длинные трех временных периодов и, в сочетании с ценовым поведением и объемом сделок, образует многоуровневый механизм подтверждения сигналов, эффективно снижающий уровень ошибочного суждения.
Снижение риска попадания на полеВ отличие от традиционной стратегии прорыва, которая позволяет получить лучшую цену за вход и снизить стоимость сделки и риск, ожидая, пока не будет достигнуто прорывное положение.
Фильтрация тенденций повышает шансы на победу: определить направление тенденции с помощью среднесрочной и долгосрочной равномерной связи, торговать только тогда, когда направление тенденции ясно, избежать убытков, связанных с частыми сделками на волатильных рынках.
Динамическое управление рискамиATR-основанные механизмы остановки и подвижного остановки позволяют автоматически корректировать защитную позицию в зависимости от волатильности рынка, предоставляя цене достаточное пространство для дыхания при сохранении прибыли.
Подтверждение сдачи повышает надежностьСнижение ошибочного суждения в условиях низкой ликвидности путем обеспечения того, чтобы сделки происходили в периоды высокой активности рынка, требуя, чтобы объем транзакций был в 1,5 раза больше среднего.
Широкие возможности настройки параметровСтратегия предоставляет множество регулируемых параметров, таких как средний цикл, ATR-множитель, минимальная стоимость сделки, что позволяет трейдерам гибко адаптироваться к различным рыночным условиям и торговым предпочтениям.
Несмотря на то, что эта стратегия разработана в общих чертах, существуют следующие потенциальные риски:
Среднелинейная отсталостьСредняя линия по своей сути является отсталым индикатором, который может не вовремя отражать изменения цены в сильно волатильных рынках, что приводит к задержке входных или выходных сигналов. Решение заключается в рассмотрении надлежащего сокращения цикла средней линии в высоко волатильных рынках или в сочетании с другими ведущими индикаторами для оказания помощи в принятии решений.
Частые прорывы: В рыночных волатильность поперечного диапазона, цены могут часто пробивать плотной зоны, а затем вернуться обратно, что приводит к частым сделкам и совокупности убытков. Рекомендуется добавлять дополнительные условия фильтрации, такие как требование прорыва до определенного процента, или в сочетании с анализом резистентных точек поддержки.
Ограничение рискаATR-стоп с фиксированным коэффициентом может быть слишком мягким или слишком жестким в разных рыночных условиях. Параметры ATR-коэффициента следует корректировать в соответствии с волатильными характеристиками конкретного сорта и историческими результатами обратной связи.
Чрезмерная зависимость от объема сделокВ некоторых рынках данные по объему сделок могут быть недостаточно прозрачными или точными, и чрезмерная зависимость от условий объема сделок может привести к пропуску эффективных сигналов. Можно рассмотреть возможность настройки условий объема сделок на выбор или в сочетании с анализом поведения цен.
Оптимизация параметров сверхприспособления: Многопараметровая система подвержена ловушке чрезмерного соответствия, хорошо работает с историческими данными, но плохо работает в реальном времени. Рекомендуется использовать тестирование на ходу (Walk-Forward Analysis) для проверки стабильности стратегии в разные периоды времени.
На основе анализа кода эта стратегия может быть оптимизирована в следующих направлениях:
Добавить фильтр временных рамок: рассмотреть возможность добавления более крупных временных рамок для подтверждения тенденций, чтобы убедиться, что направление торговли соответствует более крупным циклическим тенденциям. Причина этого заключается в том, что крупные циклические тенденции обычно имеют большую продолжительность и надежность.
Введение механизма самостоятельной адаптации к колебаниям цен: можно автоматически корректировать цикл средней линии и ATR-множества в зависимости от недавних колебаний рынка, чтобы стратегия могла хорошо работать в разных рыночных условиях. в рынках с высокой волатильностью следует удлинять цикл средней линии, снижая частоту сигналов; в рынках с низкой волатильностью следует сокращать цикл средней линии, повышая чувствительность.
Добавить сезонную и временную фильтрациюВ некоторых рынках существуют явные сезонные особенности или внутридневные эффекты, поэтому можно добавить временные фильтры, чтобы избежать исторических периодов, когда рынок был плохим.
Оптимизация логики подтверждения: текущее подтверждение обратного шага основывается только на том, находится ли цена в плотной зоне, можно рассмотреть возможность добавления более детальных требований к глубине обратного шага, таких как требование обратного шага к конкретному пропорциональному положению плотной зоны (например, 38,2% и 50%), или подтверждение обратного шага в сочетании с окончанием K-линейной формы.
Добавление модуля управления деньгамиПри использовании фиксированного количества сделок в текущей стратегии можно улучшить управление динамическими позициями, основанными на размере счета и соотношении риска, например, фиксированное соотношение риска или формула Келли, для оптимизации кривой капитала и контроля максимального вывода.
Присоединение к идентификации рыночной средыУлучшение классификации рыночных условий (традиционные / волатильные рынки), использование различных параметров или даже различных стратегий торговли в различных рыночных условиях, чтобы избежать частого трейдинга в неподходящих рыночных условиях.
“Многолинейная торговая стратегия с динамическим остановкой ATR” - это количественная торговая стратегия, которая объединяет в себе несколько зрелых идей в техническом анализе. Она определяет ценные диапазоны с помощью линейных интенсивных зон, определяет направление тренда с использованием линейной системы, объединяет ценовое поведение с прорывом и подтверждением объема сделок, создает относительно совершенную торговую систему. Преимущество этой стратегии заключается в многоуровневом механизме подтверждения сигналов и гибкой системе управления рисками, подходящей для торговли, отслеживающей тенденции в среднесрочной и долгосрочной перспективе.
В практическом применении этой стратегии необходимо обратить внимание на проблемы задержки равнолинейной системы и риски чрезмерной адаптации параметров оптимизации. Существует большое пространство для улучшения этой стратегии путем добавления адаптивных механизмов, идентификации рыночной среды и более тонкой логики подтверждения обратной посадки. Кроме того, в сочетании с более совершенной системой управления капиталом будет дополнительно повышена стабильность стратегии и ее долгосрочная доходность.
В целом, это разумно и логично разработанная торговая система, которая отражает основные принципы торговли “следить за тенденциями + управлять динамическими рисками” и подходит для опытных трейдеров, работающих на рынках с определенными тенденциями.
/*backtest
start: 2024-03-05 00:00:00
end: 2025-03-03 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDT"}]
*/
//@version=5
strategy("均线密集区交易系统(优化版2)", shorttitle="MA_Zone_Opt2", overlay=true, initial_capital=10000, default_qty_type=strategy.fixed, default_qty_value=1000, commission_value=0.1)
// === 输入参数 ===
smaShortPeriod = input.int(20, title="短期SMA周期", minval=1)
smaMidPeriod = input.int(60, title="中期SMA周期", minval=1)
smaLongPeriod = input.int(120, title="长期SMA周期", minval=1)
atrPeriod = input.int(14, title="ATR周期", minval=1)
atrMultiplierStop = input.float(3.0, title="止损ATR倍数", minval=1.0)
atrMultiplierTrail = input.float(2.0, title="移动止盈ATR倍数", minval=1.0)
volPeriod = input.int(20, title="成交量周期", minval=1)
volThreshold = input.float(1.5, title="成交量倍数", minval=1.0)
// === 计算均线 ===
smaShort = ta.sma(close, smaShortPeriod) // MA20
smaMid = ta.sma(close, smaMidPeriod) // MA60
smaLong = ta.sma(close, smaLongPeriod) // MA120
// === 计算 ATR 和成交量 ===
atrValue = ta.atr(atrPeriod)
volAvg = ta.sma(volume, volPeriod)
volCondition = volume > volAvg * volThreshold // 成交量高于平均值 1.5 倍
// === 定义均线密集区(只用 SMA20 和 SMA60) ===
maMax = math.max(smaShort, smaMid)
maMin = math.min(smaShort, smaMid)
// === 趋势过滤:SMA60 和 SMA120 的相对位置 ===
trendUp = smaMid > smaLong // 60日均线上穿120日均线,上升趋势
trendDown = smaMid < smaLong // 60日均线下穿120日均线,下降趋势
// === 交易信号逻辑 ===
// 涨破密集区:K线收盘价突破 maMax
breakUp = ta.crossover(close, maMax)
// 跌破密集区:K线收盘价跌破 maMin
breakDown = ta.crossunder(close, maMin)
// 回踩条件:
// 买入 - 前一根K线跌至密集区内,当前K线仍在密集区内,且趋势向上
pullbackUp = close[1] <= maMax and close[1] >= maMin and close >= maMin and trendUp and volCondition
// 卖出 - 前一根K线涨至密集区内,当前K线仍在密集区内,且趋势向下
pullbackDown = close[1] >= maMin and close[1] <= maMax and close <= maMax and trendDown and volCondition
// === 买卖逻辑 ===
// 买入(多单):涨破后回踩,且趋势向上
if breakUp[1] and pullbackUp
strategy.entry("Long", strategy.long)
// 动态止损和移动止盈
stopLossPrice = strategy.position_avg_price * (1 - atrMultiplierStop * atrValue / close)
trailStopPrice = close * (1 - atrMultiplierTrail * atrValue / close)
strategy.exit("Long_Exit", "Long", stop=stopLossPrice, trail_points=trailStopPrice, trail_offset=0)
// 卖出(空单):跌破后回踩,且趋势向下
if breakDown[1] and pullbackDown
strategy.entry("Short", strategy.short)
// 动态止损和移动止盈
stopLossPriceShort = strategy.position_avg_price * (1 + atrMultiplierStop * atrValue / close)
trailStopPriceShort = close * (1 + atrMultiplierTrail * atrValue / close)
strategy.exit("Short_Exit", "Short", stop=stopLossPriceShort, trail_points=trailStopPriceShort, trail_offset=0)
// === 绘制信号点 ===
plotshape(breakUp[1] and pullbackUp, title="买入信号", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(breakDown[1] and pullbackDown, title="卖出信号", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)