Estratégia de stop loss e take profit de média móvel suavizada com filtragem de tendências e saída anormal

SMA RSI TR MA TP SL
Data de criação: 2024-06-03 16:54:04 última modificação: 2024-06-03 16:54:04
cópia: 7 Cliques: 616
1
focar em
1617
Seguidores

Estratégia de stop loss e take profit de média móvel suavizada com filtragem de tendências e saída anormal

Visão geral

A estratégia utiliza indicadores como a média móvel suave (SMA), o índice de força relativa (RSI), o alcance real (TR) e a média móvel de volume (Volume MA), combinando filtros de tendência, volume de negociação e condições de volatilidade, para negociar quando determinadas condições são atendidas. A principal idéia da estratégia é comprar quando o preço está abaixo da SMA200 e em uma tendência de queda, baixo volume de negociação e baixa volatilidade, e colocar um stop loss e um stop loss.

Princípio da estratégia

  1. Calcular indicadores como SMA, RSI, volume de transação MA e TR MA
  2. Avaliar se a tendência atual é ascendente ou descendente
  3. Perceber se o volume e a volatilidade atuais estão baixos
  4. A compra é feita quando o preço está abaixo do SMA200 e satisfaz condições de baixo volume de transação e baixa volatilidade
  5. O Stop Loss é 95% do preço de compra e o Stop Out é 150% do preço de compra.
  6. Sair da negociação quando o RSI for superior a 70 ou atingir o limite de stop loss predeterminado
  7. Forçar uma posição baixa quando há uma mudança de tendência e o preço supera a SMA

Análise de vantagens

  1. A estratégia combina vários indicadores técnicos para uma análise mais abrangente da situação do mercado.
  2. Filtragem de tendências e volume de transações, condições de volatilidade, para evitar transações em condições de mercado desfavoráveis
  3. Configurar um stop loss definido para controlar o risco de forma eficaz
  4. O mecanismo de saída de emergência pode ser usado para liquidar a posição em tempo hábil em determinadas situações e evitar perdas adicionais.

Análise de Riscos

  1. A política depende de configurações de vários parâmetros, cuja escolha pode afetar o desempenho da política
  2. Em alguns casos, os preços podem reverter rapidamente após o desencadeamento de condições de compra, resultando em prejuízos
  3. A estratégia não leva em consideração fatores fundamentais que podem ser afetados por eventos importantes.

Direção de otimização

  1. Pode-se considerar a introdução de mais indicadores técnicos, como MACD, Brinks e outros, para melhorar a precisão de entrada e saída
  2. Pode-se otimizar a configuração de parada de perda, como o uso de parada móvel ou parada dinâmica
  3. Parâmetros de estratégia podem ser ajustados dinamicamente de acordo com diferentes condições de mercado
  4. Modulos de gestão de risco, como gestão de posições, gestão de fundos, etc.

Resumir

A estratégia usa um conjunto de indicadores técnicos, combinando filtragem de tendências e volume de negócios, condições de volatilidade, para negociar em situações específicas. Ao mesmo tempo, o estabelecimento de um mecanismo de parada de perda e saída de exceção pode controlar o risco.

Código-fonte da estratégia
/*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)