Стратегия идеального выравнивания EMA, SMA, CCI, ATR, Moving Average и автоматическая торговая система Trend Magic Indicator

EMA SMA CCI ATR
Дата создания: 2024-09-26 15:52:31 Последнее изменение: 2024-09-26 15:52:31
Копировать: 0 Количество просмотров: 675
1
Подписаться
1617
Подписчики

Стратегия идеального выравнивания EMA, SMA, CCI, ATR, Moving Average и автоматическая торговая система Trend Magic Indicator

Обзор

Эта стратегия сочетает в себе идеальное сочетание равновесия и трендовый волшебный индикатор для захвата рыночных тенденций. Она использует три движущихся средних (EMA45, SMA90 и SMA180) и трендовый волшебный индикатор, основанный на расчетах CCI и ATR.

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

Основные элементы стратегии:

  1. Прекрасное расположение средней линии: три средних линии с использованием EMA45, SMA90 и SMA180, которые, когда они расположены в определенной последовательности ((многоголовый: EMA45 > SMA90 > SMA180; пустой: EMA45 < SMA90 < SMA180), считаются сильным сигналом установления тренда.

  2. Тренд-магический индикатор: это пользовательский индикатор, основанный на индексах CCI (товарный канал) и ATR (реальная волна). Он указывает на потенциальное изменение тренда путем изменения цвета.

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

  4. Управление рисками: стратегия использует цели по остановке убытков и прибыли, основанные на соотношении возврата к риску. Стоп-убытки устанавливаются на уровне SMA90 при входе, а цели по прибыли устанавливаются в 1,5 раза больше риска.

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

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

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

  3. Гибкость: Стратегия позволяет пользователям корректировать параметры, такие как циклы CCI, ATR и циклы движущихся средних, в соответствии с различными рыночными условиями и личными предпочтениями.

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

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

  1. Отставание: из-за использования движущихся средних и других отстающих показателей стратегия может пропустить некоторые возможности в начале тренда.

  2. Непостоянный рынок: в поперечном или непостоянном рынке, стратегия может часто создавать ложные сигналы, что приводит к чрезмерной торговле.

  3. Фиксированный стоп: использование фиксированного SMA90 в качестве стопа может быть слишком мягким в некоторых случаях, увеличивая потенциальные потери.

  4. Чувствительность к параметрам: производительность стратегии может быть чувствительна к параметрам, которые требуют тщательной оптимизации и обратной связи.

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

  1. Динамический стоп: рассмотрение возможности отслеживания стоп-убытков и корректировки уровня стоп-убытков по мере движения цены для лучшей защиты прибыли.

  2. Фильтрация состояния рынка: внедрение фильтра волатильности или интенсивности тренда для корректировки стратегического поведения в различных рыночных условиях.

  3. Анализ временных рамок: интеграция анализа нескольких временных рамок для повышения надежности сигналов и уменьшения ложных сигналов.

  4. Количественные показатели: добавление количественного анализа или других количественных показателей для усиления признания и обратного распознавания тенденций.

  5. Оптимизация машинного обучения: динамическая корректировка параметров с помощью алгоритмов машинного обучения для адаптации к изменяющимся рыночным условиям.

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

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

Исходный код стратегии
/*backtest
start: 2024-08-26 00:00:00
end: 2024-09-24 08:00:00
period: 5m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © PakunFX

//@version=5
strategy("Trend Magic with EMA, SMA, and Auto-Trading", shorttitle="TM_Trading", overlay=true, format=format.price, precision=2)

// Inputs
period = input.int(21, "CCI period")
coeff = input.float(1.0, "ATR Multiplier")
AP = input.int(7, "ATR Period")
riskRewardRatio = input.float(1.5, "Risk/Reward Ratio")  // Risk/Reward Ratio for take profit

// Calculations
ATR = ta.sma(ta.tr, AP)
src = input(close)
upT = low - ATR * coeff
downT = high + ATR * coeff
var MagicTrend = 0.0
MagicTrend := ta.cci(src, period) >= 0 ? (upT < nz(MagicTrend[1]) ? nz(MagicTrend[1]) : upT) : (downT > nz(MagicTrend[1]) ? nz(MagicTrend[1]) : downT)

// Define colors for Trend Magic
color1 = ta.cci(src, period) >= 0 ? color.rgb(0, 34, 252) : color.rgb(252, 4, 0)
isBlue = ta.cci(src, period) >= 0
isRed = ta.cci(src, period) < 0

// Convert bool to float (1 for true, 0 for false)
isBlueFloat = isBlue ? 1 : 0
isRedFloat = isRed ? 1 : 0

// Moving Averages
ema45 = ta.ema(close, 45)
sma90 = ta.sma(close, 90)
sma180 = ta.sma(close, 180)

// Plot Trend Magic
plot(MagicTrend, color=color1, linewidth=3)

// Alerts
alertcondition(ta.cross(close, MagicTrend), title="Cross Alert", message="Price - MagicTrend Crossing!")
alertcondition(ta.crossover(low, MagicTrend), title="CrossOver Alarm", message="BUY SIGNAL!")
alertcondition(ta.crossunder(high, MagicTrend), title="CrossUnder Alarm", message="SELL SIGNAL!")

// Perfect Order conditions
bullishPerfectOrder = ema45 > sma90 and sma90 > sma180  // Bullish Perfect Order
bearishPerfectOrder = ema45 < sma90 and sma90 < sma180  // Bearish Perfect Order

// Trend Magic color change detection
trendMagicTurnedBlue = ta.crossover(isBlueFloat, isRedFloat)  // Red to Blue crossover (For long entry)
trendMagicTurnedRed = ta.crossunder(isBlueFloat, isRedFloat)  // Blue to Red crossover (For short entry)

// Variables to store SMA90 at the entry
var float longSma90 = na
var float shortSma90 = na

// Trading logic based on Perfect Order and color change
longCondition = bullishPerfectOrder and trendMagicTurnedBlue  // Buy when Perfect Order is bullish and Trend Magic turns red to blue
shortCondition = bearishPerfectOrder and trendMagicTurnedRed  // Sell when Perfect Order is bearish and Trend Magic turns blue to red

// Strategy Entry
if (longCondition)
    strategy.entry("Buy", strategy.long)
    longSma90 := sma90  // Store SMA90 at entry for long position

if (shortCondition)
    strategy.entry("Sell", strategy.short)
    shortSma90 := sma90  // Store SMA90 at entry for short position

// Stop-Loss and Take-Profit calculations
// For Long Positions: stop at SMA90 (fixed at entry), take profit at 1.5x risk
if (longCondition and not na(longSma90))
    longStopLoss = longSma90  // Use SMA90 at the time of entry
    longRisk = close - longSma90  // Calculate risk
    longTakeProfit = close + longRisk * riskRewardRatio  // Calculate take profit
    strategy.exit("Take Profit/Stop Loss", "Buy", stop=longStopLoss, limit=longTakeProfit)

// For Short Positions: stop at SMA90 (fixed at entry), take profit at 1.5x risk
if (shortCondition and not na(shortSma90))
    shortStopLoss = shortSma90  // Use SMA90 at the time of entry
    shortRisk = shortSma90 - close  // Calculate risk
    shortTakeProfit = close - shortRisk * riskRewardRatio  // Calculate take profit
    strategy.exit("Take Profit/Stop Loss", "Sell", stop=shortStopLoss, limit=shortTakeProfit)

// Plot Moving Averages
plot(ema45, color=color.green, title="EMA 45")
plot(sma90, color=color.blue, title="SMA 90")
plot(sma180, color=color.red, title="SMA 180")