Стратегия стоп-лосса и тейк-профита на основе сглаженной скользящей средней с фильтрацией тренда и нестандартным выходом

SMA RSI TR MA TP SL
Дата создания: 2024-06-03 16:54:04 Последнее изменение: 2024-06-03 16:54:04
Копировать: 7 Количество просмотров: 327
1
Подписаться
1218
Подписчики

Стратегия стоп-лосса и тейк-профита на основе сглаженной скользящей средней с фильтрацией тренда и нестандартным выходом

Обзор

Эта стратегия использует такие показатели, как скользящая скользящая средняя ((SMA), относительно сильный индекс ((RSI), реальный диапазон ((TR) и скользящая средняя по объему ((Volume MA), в сочетании с фильтрацией на тенденции, объемом торгов и условиями волатильности, чтобы торговать при выполнении определенных условий. Основная идея этой стратегии заключается в том, чтобы покупать, когда цена ниже SMA200 и находится в нисходящей тенденции, низкий объем торгов и низкая волатильность, и вводить в него сдерживающие и стоп-пороги. В то же время эта стратегия имеет аномальный механизм выхода, то есть выходить из торговли, когда RSI превышает 70 или установленный стоп-порог.

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

  1. Вычислите показатели, такие как SMA, RSI, объем торгов MA и TR MA
  2. Оценить, находится ли текущий тренд вверх или вниз
  3. Определите, находятся ли текущие объемы и волатильность на низком уровне
  4. Купить, когда цена ниже SMA200 и удовлетворяет условиям низкого объема торговли и низкой волатильности
  5. Стоп-лизинг на 95% от покупной цены, стоп-пост на 150% от покупной цены
  6. Выйти из сделки, когда RSI превысит 70 или достигнет заданного стоп-стопа
  7. Обязательное закрытие позиции при изменении тенденции и нарушении цены SMA

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

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

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

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

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

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

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

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

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

//@version=5
strategy("Strategia Stop Loss & Take Profit z Filtrem Trendu i Wyjątkiem", shorttitle="Smooth MA SL & TP with Exception", overlay=true)

// Parametry
tp_multiplier = input.float(1.5, title="Mnożnik Take Profit")
sl_percent = input.float(5, title="Procent Stop Loss")
wait_bars = input.int(3, title="Liczba Oczekiwanych Świec")
sma_period = input.int(200, title="Okres SMA")
rsi_period = input.int(14, title="Okres RSI")
vol_ma_period = input.int(20, title="Okres Średniej Wolumenu")
tr_ma_period = input.int(20, title="Okres Średniej Rzeczywistego Zakresu")

// Obliczenie Gładkiej Średniej Kroczącej
sma = ta.sma(close, sma_period)

// Obliczenie RSI
rsi = ta.rsi(close, rsi_period)

// Filtr Trendu
uptrend = close > sma
downtrend = close < sma

// Warunek konsolidacji: Niski wolumen i niska zmienność
niski_wolumen = volume < ta.sma(volume, vol_ma_period)
niska_zmienosc = ta.tr(true) < ta.sma(ta.tr(true), tr_ma_period)

// Warunek Wejścia (Long): Cena poniżej SMA 200 i filtr trendu w strefie czerwonej
warunek_wejscia = close < sma and niski_wolumen and niska_zmienosc and not uptrend

// Warunek Wyjścia ze strategii
warunek_wyjscia = downtrend and close > sma and ta.crossover(close, sma)

// Ustalanie Stop Loss i Take Profit
var float stop_loss = na
var float take_profit = na

var int indeks_wejscia = na

if (warunek_wejscia)
    stop_loss := close * (1 - sl_percent / 100)
    take_profit := close * (1 + tp_multiplier)
    indeks_wejscia := bar_index

// Handel
if (warunek_wejscia)
    strategy.entry("Long", strategy.long)

// Warunek Wyjścia: RSI w strefie wykupienia lub Stop Loss/Take Profit
if (strategy.opentrades != 0)
    if (rsi > 70)
        strategy.exit("Take Profit/Stop Loss", "Long", limit=take_profit)
    else if (bar_index - indeks_wejscia == wait_bars)
        strategy.exit("Take Profit/Stop Loss", "Long", stop=stop_loss, limit=take_profit)

// Wyjątek: Warunek Wyjścia z Longów na podstawie zmiany trendu
if (warunek_wyjscia)
    strategy.close("Long")

// Rysowanie RSI
rsi_plot = plot(rsi, title="RSI", color=color.blue)

// Rysowanie Gładkiej Średniej Kroczącej
sma_plot = plot(sma, color=color.gray, title="Smooth MA", linewidth=2)

// Rysowanie Filtru Trendu
fill(sma_plot, rsi_plot, color=downtrend ? color.new(color.red, 90) : na)