В процессе загрузки ресурсов... загрузка...

Динамическая тенденция после многопериодного скользящего среднего кроссовера

Автор:Чао Чжан, Дата: 2024-12-13 10:40:30
Тэги:SMAЕМАМ.А.

img

Обзор

Эта стратегия - это система торговли, основанная на многопериодных скользящих средних. Она использует 89-периодные и 21-периодные простые скользящие средние (SMA) для определения общего направления тренда рынка, включая 5-периодные экспоненциальные скользящие средние (EMA) максимумы и минимумы для выявления конкретных торговых сигналов. Стратегия использует двойной подход к управлению позициями в сочетании с фиксированными механизмами стоп-лосса и отслеживания прибыли.

Принципы стратегии

Основная логика включает следующие ключевые элементы:

  1. Определение тренда: использует относительную позицию 89-периодных и 21-периодных SMA вместе с ценовой позицией для выявления тенденций.
  2. Сигналы входа: при восходящем тренде вводить длинные позиции, когда цена возвращается к 5-периодному минимуму EMA; при нисходящем тренде вводить короткие позиции, когда цена поднимается до 5-периодного максимума EMA.
  3. Управление позициями: открывает две идентичные позиции контракта для каждого задействованного сигнала.
  4. Контроль рисков: применяет фиксированные цели стоп-лосса и прибыли для первой позиции, а для второй позиции - фиксированные цели стоп-лосса.

Преимущества стратегии

  1. Подтверждение многократных временных рамок: сочетание перемещающихся средних за разные периоды обеспечивает более полную оценку тенденции, уменьшая ложные сигналы.
  2. Гибкое получение прибыли: сочетает в себе методы фиксированного и отслеживающего получения прибыли для отслеживания как краткосрочных колебаний, так и длительных тенденций.
  3. Контролируемый риск: устанавливает четкие уровни стоп-лосса с фиксированным риском для каждого торгового сигнала.
  4. Систематическая операция: четкие правила торговли минимизируют субъективное суждение, что облегчает программирование.

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

  1. Риск консолидации: Частые перекрестки скользящих средних в период боковых рынков могут привести к чрезмерным ложным сигналам.
  2. Риск скольжения: значительные отклонения цен между теоретическими и фактическими ценами исполнения в периоды высокой волатильности.
  3. Риск управления денежными средствами: торговля фиксированными контрактными объемами может не соответствовать всем размерам счетов.
  4. Чувствительность параметров: эффективность стратегии сильно зависит от выбора скользящей средней продолжительности, что требует оптимизации для разных рынков.

Руководство по оптимизации

  1. Динамическое размещение позиций: рекомендуется корректировать объемы контрактов на основе собственного капитала счета и волатильности рынка.
  2. Фильтрация рыночной среды: добавление индикаторов силы тренда (например, ADX) для снижения частоты торгов на различных рынках.
  3. Улучшение режима стоп-лосса: следует рассмотреть возможность использования ATR для динамической корректировки режима стоп-лосса для повышения адаптивности к различным рыночным условиям.
  4. Подтверждение сигнала: включить индикаторы объема и импульса для повышения надежности сигнала.

Резюме

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


/*backtest
start: 2024-11-12 00:00:00
end: 2024-12-11 08:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tobiashartemink2

//@version=5
strategy("High 5 Trading Technique", overlay=true)

// --- Input parameters ---
sma89Length = input.int(title="SMA 89 Length", defval=89)
sma21Length = input.int(title="SMA 21 Length", defval=21)
ema5HighLength = input.int(title="EMA 5 High Length", defval=5)
ema5LowLength = input.int(title="EMA 5 Low Length", defval=5)
contracts = input.int(title="Aantal Contracten", defval=1)
stopLossPoints = input.int(title="Stop Loss Points per Contract", defval=25)
takeProfitPoints = input.int(title="Take Profit Points per Contract", defval=25)

// --- Calculate moving averages ---
sma89 = ta.sma(close, sma89Length)
sma21 = ta.sma(close, sma21Length)
ema5High = ta.ema(high, ema5HighLength)
ema5Low = ta.ema(low, ema5LowLength)

// --- Identify trend and order of moving averages ---
longSetup = close > sma89 and close > sma21 and ema5High > sma21 and sma21 > sma89
shortSetup = close < sma89 and close < sma21 and ema5Low < sma21 and sma21 < sma89

// --- Entry signals ---
longTrigger = longSetup and close <= ema5Low
shortTrigger = shortSetup and close >= ema5High

// --- Entry orders ---
if (longTrigger)
    strategy.entry("Long 1", strategy.long, qty=contracts)
    strategy.entry("Long 2", strategy.long, qty=contracts)

if (shortTrigger)
    strategy.entry("Short 1", strategy.short, qty=contracts)
    strategy.entry("Short 2", strategy.short, qty=contracts)

// --- Stop-loss and take-profit for long positions ---
if (strategy.position_size > 0)
    strategy.exit("Exit Long 1", "Long 1", stop=strategy.position_avg_price - stopLossPoints, limit=strategy.position_avg_price + takeProfitPoints)
    strategy.exit("Exit Long 2", "Long 2", stop=strategy.position_avg_price - stopLossPoints, trail_offset=takeProfitPoints, trail_points=takeProfitPoints)

// --- Stop-loss and take-profit for short positions ---
if (strategy.position_size < 0)
    strategy.exit("Exit Short 1", "Short 1", stop=strategy.position_avg_price + stopLossPoints, limit=strategy.position_avg_price - takeProfitPoints)
    strategy.exit("Exit Short 2", "Short 2", stop=strategy.position_avg_price + stopLossPoints, trail_offset=takeProfitPoints, trail_points=takeProfitPoints)

// --- Plot moving averages ---
plot(sma89, color=color.blue, linewidth=2)
plot(sma21, color=color.red, linewidth=2)
plot(ema5High, color=color.green, linewidth=2)
plot(ema5Low, color=color.orange, linewidth=2)


Связанные

Больше