Стратегия следования за трендом на основе пересечения скользящих средних в сочетании с механизмом стоп-лосса и повторного входа SMA

EMA SMA
Дата создания: 2025-02-21 13:49:09 Последнее изменение: 2025-02-27 16:59:13
Копировать: 1 Количество просмотров: 388
2
Подписаться
319
Подписчики

Стратегия следования за трендом на основе пересечения скользящих средних в сочетании с механизмом стоп-лосса и повторного входа SMA Стратегия следования за трендом на основе пересечения скользящих средних в сочетании с механизмом стоп-лосса и повторного входа SMA

Обзор

Стратегия представляет собой систему для отслеживания трендов, которая сочетает в себе индексные скользящие средние (EMA) и простые скользящие средние (SMA). Стратегия использует в основном EMA50 и EMA150, чтобы генерировать торговые сигналы, используя SMA150 в качестве линии остановки и включая механизм возобновления после остановки. Такая конструкция позволяет зафиксировать среднесрочные и долгосрочные тенденции, а также эффективно контролировать риск.

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

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

  1. Входный сигнал: когда EMA50 вверх проходит через EMA150, генерируется многосигнал; когда EMA50 вниз проходит через EMA150, генерируется пустота.
  2. Стоп-Лосс: вызывает стоп-Лосс, когда цена опускается ниже SMA 150
  3. Механизм реинтеграции: после запуска стоп-лосса, если цена вновь преодолеет EMA150, реинтеграция будет сделана; если EMA50 вновь преодолеет EMA150, вход будет пуст.
  4. Выполнение сделок: стратегия выполняет сделки в указанном временном промежутке с учетом комиссии в размере 0.1% и скольжения в 3 пункта.

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

  1. Сильная способность отслеживать тенденции: эффективно улавливает рыночные тенденции, используя комбинацию средних линий разных циклов.
  2. Улучшенный контроль риска: установлены четкие условия стоп-лосса, чтобы избежать чрезмерных потерь.
  3. Гибкость механизма реинвестирования: позволяет реинвестировать при улучшении рыночных условий, что повышает возможности получения прибыли.
  4. Параметры настроены разумно: выбор циклов EMA50 и EMA150 уравновешивает чувствительность и стабильность.
  5. Рассмотрите реальные расходы на транзакцию: включая комиссионные и сдвижные пункты, чтобы приблизиться к реальному состоянию транзакции.

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

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

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

  1. Введение индикатора волатильности: можно добавить ATR или Bollinger Bands для регулирования стоп-позиции, чтобы сделать стоп более адаптивным.
  2. Усовершенствование управления позициями: рекомендуется включить динамическую систему управления позициями, основанную на волатильности.
  3. Оптимизация условий возобновления: может использоваться в сочетании с колебательными индикаторами, такими как RSI, для повышения точности сигналов возобновления.
  4. Добавление фильтров на рыночную среду: добавление индикаторов интенсивности тренда, уменьшение частоты торгов на низко трендовых рынках.
  5. Разработка адаптивных параметров: можно динамически корректировать среднелинейный цикл в зависимости от рыночных колебаний.

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

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

Исходный код стратегии
/*backtest
start: 2024-02-22 00:00:00
end: 2025-02-19 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/

//@version=6
strategy("EMA 50 and EMA 150 with SMA150 Stop-loss and Re-Entry #ganges", overlay=true, commission_type=strategy.commission.percent, commission_value=0.1, slippage=3)



// EMA and SMA Calculations
ema50 = ta.ema(close, 50)
ema150 = ta.ema(close, 150)
sma150 = ta.sma(close, 150)

// Conditions for Buy, Sell, and Stop-Loss
ema50CrossAboveEMA150 = ta.crossover(ema50, ema150)  // Buy signal
ema50CrossBelowEMA150 = ta.crossunder(ema50, ema150) // Sell signal
priceCrossAboveEMA150 = ta.crossover(close, ema150) // Price crosses EMA 150 from below
priceCloseBelowSMA150 = close < sma150              // Stop-loss for long positions



// Track stop-loss hit state
var bool stopLossHit = false

// Strategy Logic
// Buy Logic: EMA 50 crosses EMA 150 from below
if ema50CrossAboveEMA150 
    strategy.entry("Buy Signal", strategy.long, qty=1)
    stopLossHit := false // Reset stop-loss state when a new buy position is opened

// Sell Logic: EMA 50 crosses EMA 150 from above
if ema50CrossBelowEMA150 
    strategy.entry("Sell Signal", strategy.short, qty=1)
    stopLossHit := false // Reset stop-loss state when a new sell position is opened

// Stop-Loss for Long Positions: Close if price falls below SMA 150
if strategy.position_size > 0 and priceCloseBelowSMA150
    strategy.close("Buy Signal")
    stopLossHit := true // Mark stop-loss hit

// Re-Entry Logic After Stop-Loss
if stopLossHit 
    if priceCrossAboveEMA150 // Re-buy logic: PRICE crosses EMA 150 from below
        strategy.entry("Re-Buy Signal", strategy.long, qty=1)
        stopLossHit := false // Reset stop-loss state after re-entry
    if ema50CrossBelowEMA150 // Re-sell logic: EMA 50 crosses EMA 150 from above
        strategy.entry("Re-Sell Signal", strategy.short, qty=1)
        stopLossHit := false // Reset stop-loss state after re-entry

// Plot EMA and SMA Lines
plot(ema50, color=color.blue, title="EMA 50")
plot(ema150, color=color.red, title="EMA 150")
plot(sma150, color=color.orange, title="SMA 150")


// // Calculate Recent All-Time High
// highestHigh = ta.highest(high, 500) // Lookback period of 500 bars
// percentageFall = ((highestHigh - close) / highestHigh) * 100

// // Display Percentage Fall on the Most Recent Candle Only
// isLastBar = bar_index == ta.max(bar_index)
// if isLastBar
//     labelText = str.tostring(percentageFall, "#.##") + "% Fall from ATH"
//     labelPosition = high + ta.atr(14) * 2 // Positioning label above the candle
//     label.new(bar_index, labelPosition, labelText, color=color.red, textcolor=color.white, size=size.small, style=label.style_label_down)