Esta estratégia é um sistema de seguimento de tendências baseado em combinação de múltiplas médias móveis, principalmente utilizando o cruzamento e as relações de posição entre a EMA20 semanal, a SMA100 diária, a SMA50 diária e a EMA20 diária para capturar oportunidades de investimento de médio a longo prazo.
A lógica central da estratégia baseia-se nas seguintes condições-chave: 1. Utiliza a média móvel exponencial semanal de 20 períodos (EMA1W20) como indicador principal da tendência 2. Combina com a média móvel simples de 100 dias (SMA1D100) para confirmação de tendência secundária 3. Utiliza a média móvel simples de 50 dias (SMA1D50) como referência de tendência a médio prazo 4. Utiliza a média móvel exponencial de 20 dias (EMA1D20) para confirmação da tendência a curto prazo O sistema gera um sinal longo quando o preço se mantém acima da EMA1W20 e SMA1D100 por 14 dias consecutivos e depois cai abaixo da SMA1D50.
Esta estratégia estabelece uma tendência relativamente abrangente seguindo o sistema através de múltiplas combinações de médias móveis, adequado para investidores de médio a longo prazo.
/*backtest start: 2024-11-12 00:00:00 end: 2024-12-11 08:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © petitepupu //@version=5 ema20wTemp = ta.ema(close, 20) ema20w = request.security(syminfo.tickerid, "1W", ema20wTemp, barmerge.gaps_on, barmerge.lookahead_off) sma100d = ta.sma(close, 100) sma50d = ta.sma(close, 50) ema20d = ta.ema(close, 20) daysAbove = input.int(14, title="Days", minval=1) plot(ema20w, color=color.blue) plot(sma100d, color=color.yellow) plot(sma50d, color=color.red) plot(ema20d, color=color.green) longCondition = true clean = true for i = 0 to daysAbove if close[i] < ema20w or close[i] < sma100d or close > sma50d longCondition := false clean := false break //TODO: if clean != true longCondition := true for i = 0 to daysAbove if close[i] > ema20w or close[i] > sma100d or close >= ema20d or -100 * (close - ema20d)/ema20d < 5.9 longCondition := false break // plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.triangleup, title="Buy Signal", size = size.small) if (longCondition) strategy.entry("Long", strategy.long) strategy(title="LT Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=800)