
A estratégia é um sistema de acompanhamento de tendências baseado em uma média móvel simples de 200 ciclos (MA200), combinando indicadores técnicos como o indicador de força relativa (RSI), o indicador de tendência média (ADX) e a amplitude real média (ATR) para formar um quadro completo de decisão de negociação. A estratégia permite o controle efetivo do risco através da configuração de objetivos de perda e ganho dinâmicos.
A lógica central da estratégia baseia-se nos seguintes pontos-chave:
A estratégia, através da combinação de vários indicadores técnicos, constrói um robusto sistema de acompanhamento de tendências. A estratégia é projetada com foco no controle de risco, aumentando a confiabilidade da negociação por meio de stop loss dinâmico e mecanismo de confirmação de sinal. Embora haja algum espaço para otimização, é uma estratégia de negociação com valor prático em geral.
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"TRB_USDT"}]
*/
//@version=5
strategy("BTC/USD MA200 with RSI, ADX, ATR", overlay=true)
// Definition of the main moving average
ma_trend = ta.sma(close, 200) // Main trend filter
// Definition of RSI and ADX
rsi = ta.rsi(close, 14)
[diplus, diminus, adx] = ta.dmi(14, 14) // Correction for ADX
// Definition of ATR for Stop Loss and Take Profit
atr = ta.atr(14)
// Conditions for crossing of the MA200
crossover_condition = ta.crossover(close, ma_trend)
crossunder_condition = ta.crossunder(close, ma_trend)
// Trend confirmation after 2 bars
buy_confirmation = crossover_condition[2] and (rsi > 40) and (adx > 20) and close > ma_trend
sell_confirmation = crossunder_condition[2] and (rsi < 60) and (adx > 20) and close < ma_trend
// Definition of Stop Loss and Take Profit
take_profit = close * 1.02 // 2% profit
stop_loss = close - (1.5 * atr) // Dynamic stop based on ATR
// Execution of orders
if (buy_confirmation and strategy.opentrades == 0)
strategy.entry("Buy", strategy.long)
strategy.exit("Take Profit/Stop Loss", from_entry="Buy", limit=take_profit, stop=stop_loss)
label.new(bar_index, high, "BUY", style=label.style_label_down, color=color.green, textcolor=color.white, size=size.normal)
if (sell_confirmation)
if (strategy.opentrades > 0)
strategy.close("Buy")
label.new(bar_index, low, "SELL", style=label.style_label_up, color=color.red, textcolor=color.white, size=size.normal)
// Draw the main moving average
plot(ma_trend, color=color.purple, title="MA 200")