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


Дата создания: 2024-02-06 10:06:29 Последнее изменение: 2024-02-06 10:06:29
Копировать: 0 Количество просмотров: 751
1
Подписаться
1617
Подписчики

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

Обзор

Эта стратегия является долголинейной торговой стратегией, основанной на динамическом отслеживании стоп-лосса на основе простой движущейся средней (SMA) и средней реальной волатильности (ATR). Она сочетает в себе преимущества отслеживания тенденций и управления рисками, чтобы контролировать отступления и максимизировать прибыль.

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

Когда цена на закрытие проходит через SMA 200 дней плюс ATR 14 дней, делается дополнительный вход. Когда цена на закрытие проходит через SMA 200 дней минус ATR 14 дней, плавное остановка. Эта стратегия использует SMA 200 для определения направления большой тенденции, использует ATR для установления стоп-линии и динамического отслеживания стоп-убытков.

Анализ преимуществ

Эта стратегия объединяет в себе преимущества двух индикаторов: SMA 200 фильтрует рыночный шум, блокируя основные направления длинных линий; а ATR 14 дней позволяет установить стоп-линию на основе колебаний последних двух недель, достигая эффекта динамического слежения за стоп-убытками. Это обеспечивает постоянную прибыль в тренде, а также эффективно контролирует отступления. В целом, стратегия имеет следующие преимущества:

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

  2. Управляемый отвод. Динамическое отслеживание ATR снижает влияние внезапных событий и эффективно контролирует отвод.

  3. Простые параметры. Используйте только два параметра, чтобы достичь баланса риска и выгоды, избегая чрезмерной оптимизации.

Анализ рисков

В этой стратегии также есть некоторые риски, о которых следует помнить. Основные риски:

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

  2. СМА имеет определенную запаздываемость и не может немедленно отражать изменения тренда.

  3. Риск настройки параметров ATR. Слишком большие или слишком маленькие параметры ATR влияют на эффективность стратегии.

Решение проблемы:

  1. В сочетании с другими показателями, такими как MACD, можно определить тенденцию.
  2. Испытание различных комбинаций параметров в поисках оптимального баланса.

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

Эта стратегия также может быть оптимизирована в следующих аспектах:

  1. Тестирование различных комбинаций параметров SMA и ATR для поиска оптимальных параметров.

  2. Добавление других технических показателей, таких как MACD.

  3. Оптимизация механизмов остановки убытков, такие как изменение остановки убытков, перемещение остановки убытков и т. д.

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

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

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

Исходный код стратегии
/*backtest
start: 2023-01-30 00:00:00
end: 2024-02-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("SMA+ATR Strategie", overlay=true)

// Benutzer-Inputs für SMA, ATR und die Anzeigeoption
smaLength = input(200, title="SMA Länge")
atrLength = input(14, title="ATR Länge")
showSMAandATR = input(true, title="Zeige SMA und ATR-Bänder")

// Berechnung von SMA und ATR
sma = ta.sma(close, smaLength)
atr = ta.atr(atrLength)

// Kauf- und Verkaufslogik basierend auf SMA und ATR
buyCondition = close > sma + atr
sellCondition = close < sma - atr

// Variable zum Speichern des Eintrittspreises
var float entryPrice = na

// Kauf- und Verkaufssignale
if (buyCondition)
    strategy.entry("Buy", strategy.long)
    entryPrice := close // Speichere den Eintrittspreis

if (sellCondition)
    // Nur wenn ein Kauf stattgefunden hat
    if not na(entryPrice)
        // Berechne die Performance seit dem Kaufsignal
        performanceSinceBuy = ((close - entryPrice) / entryPrice) * 100
        // Anzeigen der Performance
        // Wähle die Box-Farbe basierend auf dem Vorzeichen der Performance
        plColor = performanceSinceBuy >= 0 ? color.green : color.red
        // Anzeigen der Performance in der entsprechenden Farbe
        plBox = "P/L: " + str.tostring(performanceSinceBuy, "#.##") + "%"
        label.new(bar_index, high, text=plBox, color=plColor, textcolor=color.white, style=label.style_label_center, yloc=yloc.price)
        
    // Schließe den Trade und setze den Eintrittspreis zurück
    strategy.close("Buy")
    entryPrice := na

// Optionale Anzeige von SMA und ATR-Band
plot(showSMAandATR ? sma : na, color=color.blue, title="SMA 200")
plot(showSMAandATR ? sma + atr : na, color=color.green, title="SMA 200 + ATR")
plot(showSMAandATR ? sma - atr : na, color=color.red, title="SMA 200 - ATR")