Тройная скользящая средняя веерная булавочная модель Динамическая стратегия количественной торговли рисками

SMA EMA ATR PIN BAR Trailing Stop Dynamic Leverage
Дата создания: 2025-05-14 11:07:47 Последнее изменение: 2025-05-14 11:07:47
Копировать: 2 Количество просмотров: 266
2
Подписаться
319
Подписчики

Тройная скользящая средняя веерная булавочная модель Динамическая стратегия количественной торговли рисками Тройная скользящая средняя веерная булавочная модель Динамическая стратегия количественной торговли рисками

Обзор

Стратегия количественного анализа динамического риска в форме тройной движущейся средней вентиляционной кнопки - это комплексная торговая система, объединяющая технический анализ и управление рисками. В основе стратегии лежит система подтверждения тренда, сформированная на основе тройной движущейся средней ((быстрое EMA, среднее EMA и медленное SMA), в сочетании с классическим движущимся средним ((Pin Bar) в качестве входного сигнала и с интеграцией многоуровневого механизма контроля риска.

Стратегический принцип

Торговые принципы стратегии основаны на следующих ключевых компонентах:

  1. Трехкратная система подтверждения трендов: Стратегия использует три различных цикла для построения трендовой среды с использованием движущихся средних, требующих четкой последовательности трендов: быстрая EMA (задаточный 6 циклов), средняя EMA (задаточная 18 циклов) и медленная SMA (задаточная 50 циклов). Требования многоголовной тенденции: быстрая EMA > средняя EMA > медленная SMA; пустая тенденция требует: быстрая EMA < средняя EMA < медленная SMA.

  2. Распознавание сигналов формы пин-кодаСтратегия: после установления направления тренда, поиск конфигурации пин-бара, соответствующей направлению тренда, как конкретной точки входа. Конфигурация пин-бара требует, чтобы K-линия составляла более 66% от общей длины, чтобы обеспечить достаточно сильную обратную силу.

  3. Механизм подтверждения задержанного сигнала: Для предотвращения перепланировки, стратегия использует полностью сформированные данные K-линии (confirmedClose, confirmedOpen и т. д.) для генерации сигналов, а также задерживает сигнал подтверждения на 1 K-линию, чтобы гарантировать, что сделка основана на подтвержденной рыночной деятельности.

  4. Система управления рисками

    • Контроль риска капитала: сумма риска рассчитывается на основе процента риска, установленного пользователем (usr_risk) и множителя леверинга
    • Формула расчета позиции: сумма риска = общий капитал × процент риска × множитель леверинга
    • Единицы конкретной сделки, рассчитанные на основе динамики стоп-дистанции: единицы = сумма риска ÷ стоп-дистанция
  5. Двойная защита от ущерба

    • Фиксированный стоп: первоначальная защита на основе ATR-множества ((atr_mult)
    • Следить за остановками: защищать прибыль с помощью параметров slPoints и slOffset
  6. Контроль окна времени

    • Механизм просрочки сигнала: автоматическая отмена сигналов просрочки через параметр ent_canc
    • Функция автоматической ликвидации по пятницам, чтобы избежать риска дефицита в выходные дни

Стратегические преимущества

  1. Противореставрационный дизайн: Стратегия полностью основана на подтвержденных данных K-линии, избегая распространенных проблем с перерисованием показателей, повышает согласованность результатов обратной связи с показателями на реальном диске.

  2. Хорошая система управления рисками

    • Поддержка тонкой корректировки рычагов от 0,1 до 100x для различных предпочтений риска
    • Автоматическое расширение позиции при увеличении капитала и автоматическое сокращение позиции при выводе капитала с помощью контроля процента риска капитала
    • Двойные механизмы хранения убытков обеспечивают многоуровневую защиту средств
  3. Высококачественная фильтрация

    • Трехкратный механизм подтверждения трендов позволяет избежать торговли в неопределенном тренде.
    • Пинтовая форма требует 66% пропорции теней, фильтруя слабые сигналы.
    • Требования к сопоставлению сигналов с направлением тренда, снижающие риск обратной торговли
  4. Гибкое управление временем

    • Автоматическая отмена просроченного сигнала, чтобы избежать неудачного входа в зал
    • Автоматическая ликвидация в пятницу, чтобы избежать риска на выходные
    • Прорывная EMA с перекрестной функцией автоматического ликвидации, быстро реагирующая на изменения тренда
  5. Управление адаптивной позициейСистема автоматически корректирует размер позиции в зависимости от рыночной волатильности (ATR), уменьшая позиции при больших волатильностях и увеличивая позиции при волатильных часах, обеспечивая динамический баланс риска.

Стратегический риск

  1. Чрезмерная зависимость от трендовых условийЭта стратегия может привести к частому появлению ложных сигналов на рынках с горизонтальной систематизацией, что приводит к непрерывным остановкам. Решение: можно добавить фильтр силы тренда, такой как индикатор ADX, и торговать только тогда, когда силы тренда достаточно.

  2. Ограничения Pin Bar: Хотя Pin Bar является сильным обратным сигналом, он может часто появляться в высоко волатильных рынках и не иметь практического значения. Решение: можно увеличить количество подтверждений сделки или увеличить пропорциональные требования к теневой линии Pin Bar.

  3. Риск использованияРешение: используйте консервативное использование леверинга, рекомендуя начальную настройку не более чем в 5 раз, и корректируйте ее в зависимости от исторических результатов.

  4. Оптимизация параметров и риск соответствия кривой: содержит множество регулируемых параметров (циклы EMA, циклы ATR и т. д.) рискуют переоптимизировать стратегию. Решение: проверка стабильности параметров в течение нескольких временных периодов и на рынке, используя шаг за шагом (Walk Forward) анализ параметров для проверки.

  5. Остановка рискаСлишком маленький ATR-множитель может привести к частым остановкам, а слишком большой может привести к чрезмерным потерям. Решение: на основе особенностей рынка и торговых циклов, поиск точки равновесия для установки остановки, рекомендуется тестировать несколько настроек в сочетании с ограничением риска капитала.

Направление оптимизации стратегии

  1. Увеличение рыночных фильтров

    • Добавление условий фильтрации волатильности, например, определение рынка для торговли на основе ATR/price ratio
    • Внедрение функции распознавания моделей региональных рынков, разграничения тенденций и шокирующей среды
    • Такая оптимизация позволяет избежать торговли в неблагоприятных для стратегии рыночных условиях и повышает шансы на победу.
  2. Сигнальное улучшение

    • Увеличение требований к подтверждению объема транзакций, чтобы обеспечить достаточное участие в рынке сигналов Pin Bar
    • Добавление проверки сопротивления поддержки ключевых цен, приоритетное выбор сигналов вблизи ключевых цен
    • Таким образом, оптимизация позволяет значительно улучшить качество и надежность сигнала.
  3. Динамические параметры самостоятельно адаптируются

    • Реализация адаптивной корректировки циклов EMA, автоматическая корректировка параметров в соответствии с волатильностью рынка
    • Разработка интеллектуальной системы остановки, регулирующей остановку в соответствии с динамикой структуры рынка
    • Такая оптимизация позволяет стратегии лучше адаптироваться к различным этапам рынка и повысить долгосрочную стабильность.
  4. Многочасовая координация

    • Условия фильтрации тенденций на более высокие временные периоды
    • Реализация механизма синхронного подтверждения сигналов разных временных циклов
    • Синхронизация временных циклов позволяет снизить шум и повысить надежность сигнала
  5. Оптимизация управления капиталом

    • Разработка динамической позиционной системы, основанной на прибыли и убытках, с корректировкой доли риска в зависимости от ожидаемой прибыли и убытка
    • Реализация комплексных моделей риска с учетом волатильности рынка, интенсивности трендов и качества сигналов
    • Это позволяет более точно контролировать риски в различных рыночных условиях.

Подвести итог

Трехкратное движущееся среднее с помощью признания трендов с помощью тройной движущейся средней и распознавания формы с помощью пин-баров позволяет ловить высококачественные торговые возможности на рынках с сильными тенденциями. Основные преимущества заключаются в совершенной системе контроля риска, устойчивом дизайне и гибком механизме фильтрации сигналов.

Эта стратегия наиболее подходит для использования в условиях рынка с четкой тенденцией и особенно эффективна для финансовых продуктов с высокой волатильностью. Однако пользователям необходимо обратить внимание на ограничения стратегии по горизонтальному сортировке рынка и потенциальный риск использования леверинга и параметров. Существует большой простор для улучшения этой стратегии с помощью предлагаемых направлений оптимизации, таких как увеличение фильтрации рыночной среды, усиление качества сигналов и самостоятельная адаптация параметров.

В целом, это хорошо структурированная, управляемая риском и логически ясная количественная торговая стратегия, подходящая для использования в реальной торговле после тщательного тестирования опытными трейдерами. С разумной настройкой параметров и осторожным использованием леверинга эта стратегия имеет потенциал стать мощным инструментом в арсенале трейдера.

Исходный код стратегии
/*backtest
start: 2024-05-14 00:00:00
end: 2025-05-12 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"DOGE_USDT"}]
*/

//@version=5

strategy("Rich Harvester", overlay=true, 
  initial_capital=200, 
  commission_type=strategy.commission.percent, 
  commission_value=0.1,
  slippage=2,
  default_qty_type=strategy.cash)

// ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
// 抗重绘核心修改(使用已确认K线数据)
// ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
confirmedClose = close[1]
confirmedOpen = open[1]
confirmedHigh = high[1]
confirmedLow = low[1]

// User Input (新增参数)
leverage = input.float(title='杠杆倍数', minval=0.1, maxval=100.0, step=0.1, defval=1.0, group="★ 风险控制")

// User Input (原有参数完全保留)
usr_risk = input.int(title='Equity Risk (%)', minval=1, maxval=100, step=1, defval=3, confirm=false)
atr_mult = input.float(title='Stop Loss (x*ATR, Float)', minval=0.1, maxval=100, step=0.1, defval=0.5, confirm=false)
slPoints = input.int(title='Stop Loss Trail Points (Pips)', minval=1, maxval=1000, step=1, defval=1, confirm=false)
slOffset = input.int(title='Stop Loss Trail Offset (Pips)', minval=1, maxval=1000, step=1, defval=1, confirm=false)
sma_slow = input.int(title='Slow SMA (Period)', minval=1, maxval=500, step=1, defval=50, confirm=false)
ema_medm = input.int(title='Medm EMA (Period)', minval=1, maxval=500, step=1, defval=18, confirm=false)
ema_fast = input.int(title='Fast EMA (Period)', minval=1, maxval=500, step=1, defval=6, confirm=false)
atr_valu = input.int(title='ATR (Period)', minval=1, maxval=500, step=1, defval=14, confirm=false)
ent_canc = input.int(title='Cancel Entry After X Bars (Period)', minval=1, maxval=500, step=1, defval=3, confirm=false)

// Create Indicators (使用确认数据)
slowSMA = ta.sma(confirmedClose, sma_slow)
medmEMA = ta.ema(confirmedClose, ema_medm)
fastEMA = ta.ema(confirmedClose, ema_fast)
atr = ta.atr(atr_valu)[1]  // 使用前值

// ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
// 信号系统优化(延迟信号确认)
// ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
bullishPinBar = (confirmedClose > confirmedOpen and (confirmedOpen - confirmedLow) > 0.66 * (confirmedHigh - confirmedLow)) or
              (confirmedClose < confirmedOpen and (confirmedClose - confirmedLow) > 0.66 * (confirmedHigh - confirmedLow))

bearishPinBar = (confirmedClose > confirmedOpen and (confirmedHigh - confirmedClose) > 0.66 * (confirmedHigh - confirmedLow)) or
               (confirmedClose < confirmedOpen and (confirmedHigh - confirmedOpen) > 0.66 * (confirmedHigh - confirmedLow))

// 趋势过滤条件(使用确认数据)
fanUpTrend = fastEMA > medmEMA and medmEMA > slowSMA
fanDnTrend = fastEMA < medmEMA and medmEMA < slowSMA

// 延迟信号确认(等待K线闭合)
longCondition = fanUpTrend and bullishPinBar[1]  // 延迟1根K线
shortCondition = fanDnTrend and bearishPinBar[1]

// ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
// 交易执行系统(仅修改风险计算部分)
// ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
enterlong() =>
    risk = usr_risk * 0.01 * strategy.equity * leverage  // 添加杠杆影响
    stopLoss = confirmedLow - atr * atr_mult
    entryPrice = confirmedHigh
    units = risk / (entryPrice - stopLoss)
    strategy.entry('long', strategy.long, units, stop=entryPrice)
    strategy.exit('exit long', from_entry='long', trail_points=slPoints, trail_offset=slOffset)

entershort() =>
    risk = usr_risk * 0.01 * strategy.equity * leverage  // 添加杠杆影响
    stopLoss = confirmedHigh + atr * atr_mult
    entryPrice = confirmedLow
    units = risk / (stopLoss - entryPrice)
    strategy.entry('short', strategy.short, units, stop=entryPrice)
    strategy.exit('exit short', from_entry='short', trail_points=slPoints, trail_offset=slOffset)



// ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
// 交易执行系统
// ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
if longCondition 
    enterlong()

if shortCondition 
    entershort()
strategy.cancel('long', ta.barssince(longCondition) > ent_canc)
strategy.cancel('short', ta.barssince(shortCondition) > ent_canc)

strategy.close_all(when=hour == 16 and dayofweek == dayofweek.friday, comment='exit all, market-closed')
strategy.close_all(when=ta.crossunder(fastEMA, medmEMA), comment='exit long, re-cross')
strategy.close_all(when=ta.crossover(fastEMA, medmEMA), comment='exit short, re-cross')

plot(fastEMA, "快EMA", color.new(#FF6B00, 0), 2)
plot(medmEMA, "中EMA", color.new(#0096FF, 0), 2)
plot(slowSMA, "慢SMA", color.new(#00C800, 0), 2)

plotshape(longCondition, "多信号", shape.labelup, location.belowbar, color=#00FF00, text="▲", textcolor=#FFFFFF)
plotshape(shortCondition, "空信号", shape.labeldown, location.abovebar, color=#FF0000, text="▼", textcolor=#FFFFFF)