Стратегия перекрестного использования двойной скользящей средней

Автор:Чао Чжан, Дата: 2024-01-04 15:03:14
Тэги:

img

Обзор

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

Логика стратегии

  1. Расчет 50-дневной простой скользящей средней SMA1 и 100-дневной простой скользящей средней SMA2
  2. Когда SMA1 пересекает SMA2, генерируется сигнал покупки. Когда SMA1 пересекает SMA2, генерируется сигнал продажи.
  3. Расчет 14-дневного ATR
  4. ATR, умноженное на установленный коэффициент, используется в качестве точки остановки потери
  5. При запуске сигнала покупки цена закрытия минус точка остановки является точкой продажи.

Можно видеть, что эта стратегия в основном опирается на способность движущихся средних оценивать тренд и способность ATR контролировать риск.

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

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

Риски

  1. Многие ложные сигналы могут быть задействованы во время рынков с диапазоном, отсутствующие точки переворота
  2. ATR может не реагировать достаточно чувствительно на быстро меняющиеся рынки, что приводит к большим потерям, чем ожидалось
  3. Настройки параметров и мультипликатора ATR зависят от опыта.
  4. Двойные скользящие средние сами по себе имеют отстающий эффект, могут пропустить поворотные точки

Управление рисками:

  1. Сокращение периодов скользящей средней для повышения чувствительности показателя
  2. Динамическая настройка мультипликатора ATR для более гибкой остановки потерь
  3. Добавить другие индикаторы для фильтрации ложных сигналов
  4. Работать на основе более широких суждений о структуре временных рамок

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

  1. Попробуйте другие типы скользящих средних, как EMA, которые лучше фильтруют
  2. Подумайте о динамическом стоп-потере с Keltner Channels и т. д. для замены ATR
  3. Добавьте поддерживающие показатели, такие как громкость, для фильтрации сигналов
  4. Определите ключевые точки тренда с помощью таких понятий, как волны Эллиота, поддержка сопротивления и т. Д.

Резюме

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


/*backtest
start: 2023-12-27 00:00:00
end: 2024-01-03 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("SMA and ATR Strategy", overlay=true)

// Step 1. Define strategy settings
lengthSMA1 = input.int(50, title="50 SMA Length")
lengthSMA2 = input.int(100, title="100 SMA Length")
atrLength = input.int(14, title="ATR Length")
atrMultiplier = input.int(4, title="ATR Multiplier")

// Step 2. Calculate strategy values
sma1 = ta.sma(close, lengthSMA1)
sma2 = ta.sma(close, lengthSMA2)
atr = ta.atr(atrLength)

// Step 3. Output strategy data
plot(sma1, color=color.blue, title="50 SMA")
plot(sma2, color=color.red, title="100 SMA")

// Step 4. Determine trading conditions
longCondition = ta.crossover(sma1, sma2)
shortCondition = ta.crossunder(sma1, sma2)

longStopLoss = close - (atr * atrMultiplier)
shortStopLoss = close + (atr * atrMultiplier)

// Step 5. Execute trades based on conditions
if (longCondition)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Sell", "Buy", stop=longStopLoss)

if (shortCondition)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Buy", "Sell", stop=shortStopLoss)


Больше