Эта стратегия - это система торговли, основанная на многопериодных скользящих средних. Она использует 89-периодные и 21-периодные простые скользящие средние (SMA) для определения общего направления тренда рынка, включая 5-периодные экспоненциальные скользящие средние (EMA) максимумы и минимумы для выявления конкретных торговых сигналов. Стратегия использует двойной подход к управлению позициями в сочетании с фиксированными механизмами стоп-лосса и отслеживания прибыли.
Основная логика включает следующие ключевые элементы: 1. Определение тренда: использует относительную позицию 89-периодных и 21-периодных SMA вместе с ценовой позицией для выявления тенденций. Увеличительный тренд подтверждается, когда цена и 5-периодная EMA выше 21-периодной SMA, которая выше 89-периодной SMA; обратное подтверждает понижающий тренд. 2. Сигналы входа: при восходящем тренде вводить длинные позиции, когда цена восстанавливается до 5-периодного минимума EMA; при понижающем тренде вводить короткие позиции, когда цена восстанавливается до 5-периодного максимума EMA. Управление позицией: открывает две идентичные позиции контракта для каждого задействованного сигнала. Контроль рисков: применяет фиксированные цели стоп-лосса и прибыли для первой позиции и отслеживания стоп-лосса для второй позиции.
Эта стратегия представляет собой всеобъемлющую систему отслеживания трендов, которая фиксирует рыночные тенденции с помощью скользящих средних за несколько периодов при одновременном применении гибких методов управления позициями и контроля рисков. Хотя есть возможность оптимизации, основная структура демонстрирует хорошую практичность и масштабируемость. Стабильность стратегии может быть повышена путем корректировки параметров и добавления условий фильтрации для различных торговых инструментов и рыночных условий.
/*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)