Esta estratégia abre posições longas com base nos sinais de divergência de alta ocultas da EMA e do RSI para identificar o início de uma tendência de alta. A combinação de linhas EMA, indicador RSI e preços de fechamento da linha K fornece uma dupla confirmação para garantir um ímpeto de alta. Esta estratégia é adequada para seguir tendências de médio e longo prazo e abrir posições longas após consolidações de preços.
Estratégia da EMA: Usando a cruz de ouro da EMA de 50 períodos e da EMA de 250 períodos para determinar a direção da tendência.
Estratégia de Divergência Oculta do RSI: O RSI forma mínimos mais baixos enquanto o preço forma mínimos mais altos, sinalizando uma inversão de tendência no início.
Estratégia de fechamento da linha K: vá longo quando o preço de fechamento estiver acima da linha EMA 50.
A combinação das três estratégias acima identifica o início de uma tendência ascendente e abre posições longas em conformidade.
O uso de linhas EMA para determinar a direção da tendência, juntamente com sinais de reversão do RSI, permite uma entrada antecipada no início das tendências.
A confirmação dupla das linhas EMA, indicador RSI e preços de fechamento da linha K efetivamente filtra sinais falsos.
O seguimento das tendências de médio e longo prazo torna adequado identificar novas tendências de crescimento após as consolidações.
Fechar posições quando as linhas EMA tiverem uma cruz de morte.
A identificação de divergências ocultas do RSI requer experiência, um ajuste inadequado dos parâmetros pode levar a sinais ausentes ou falsos.
Os parâmetros necessitam de otimização para diferentes instrumentos de negociação.
Ajustar dinamicamente os parâmetros da EMA para uma melhor precisão da determinação da tendência.
Ajuste os parâmetros do RSI para melhor precisão do sinal de divergência oculta.
Adicionar mecanismos de stop loss como ATR ou paradas percentuais para controlar os riscos.
Desenvolver estratégias para posições curtas para negociar tendências descendentes.
Esta estratégia combina linhas EMA para determinação de tendências e sinais RSI para aumentar a precisão. Identifica novas tendências ascendentes após consolidações. Com ajuste adequado de parâmetros e gerenciamento de risco, pode alcançar bons resultados. Em comparação com estratégias de média móvel simples, tem maior precisão na captura de tendências com melhores taxas de ganho.
/*backtest start: 2024-01-25 00:00:00 end: 2024-02-01 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="EMA RSI ATR Hidden Div Strat", shorttitle="Hidden Div Strat", overlay = true, pyramiding = 0, max_bars_back=3000, calc_on_order_fills = false, commission_type = strategy.commission.percent, commission_value = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 10, initial_capital=5000, currency=currency.USD) // Time Range FromMonth=input(defval=1,title="FromMonth",minval=1,maxval=12) FromDay=input(defval=1,title="FromDay",minval=1,maxval=31) FromYear=input(defval=2020,title="FromYear",minval=2016) ToMonth=input(defval=1,title="ToMonth",minval=1,maxval=12) ToDay=input(defval=1,title="ToDay",minval=1,maxval=31) ToYear=input(defval=9999,title="ToYear",minval=2017) start=timestamp(FromYear,FromMonth,FromDay,00,00) finish=timestamp(ToYear,ToMonth,ToDay,23,59) window()=>true // Bar's time happened on/after start date? afterStartDate = time >= start and time<=finish?true:false //EMA'S emasrc = close len1 = input(50, minval=1, title="EMA1") ema1 = ema(emasrc, len1) col1 = color.white len2 = input(250, minval=1, title="EMA2") ema2 = ema(emasrc, len2) col2 = color.yellow //Plots plot(ema1, title="EMA1", linewidth=1, color=col1) plot(ema2, title="EMA2", linewidth=1, color=col2) //Stoch periodK = input(4, title="K", minval=1) periodD = input(4, title="D", minval=1) smoothK = input(3, title="Smooth", minval=1) k = sma(stoch(close, high, low, periodK), smoothK) d = sma(k, periodD) //Hidden Divergence Indikator len = input(title="RSI Period", minval=1, defval=14) src = input(title="RSI Source", defval=close) lbR = input(title="Pivot Lookback Right", defval=1) lbL = input(title="Pivot Lookback Left", defval=19) rangeUpper = input(title="Max of Lookback Range", defval=20) rangeLower = input(title="Min of Lookback Range", defval=4) hiddenBullColor = color.new(color.green, 80) textColor = color.white noneColor = color.new(color.white, 100) osc = rsi(src, len) plFound = na(pivotlow(osc, lbL, lbR)) ? false : true phFound = na(pivothigh(osc, lbL, lbR)) ? false : true _inRange(cond) => bars = barssince(cond == true) rangeLower <= bars and bars <= rangeUpper //------------------------------------------------------------------------------ // Hidden Bullish // Osc: Lower Low oscLL = osc[lbR] < valuewhen(plFound, osc[lbR], 1) and _inRange(plFound[1]) // Price: Higher Low priceHL = low[lbR] > valuewhen(plFound, low[lbR], 1) hiddenBullCond = priceHL and oscLL and plFound //buy Conditions buyhiddenbull = hiddenBullCond[1] or hiddenBullCond[2] or hiddenBullCond[3] or hiddenBullCond[4] or hiddenBullCond[5] or hiddenBullCond[6] or hiddenBullCond[7] or hiddenBullCond[8] or hiddenBullCond[9] or hiddenBullCond[10] emacondition = ema1 > ema2 upcondition = close[1] > ema1[1] and ema2[1] and close[2] > ema1[2] and ema2[2] and close[3] > ema1[3] and ema2[3] crossup = k[0] >= d[0] and k[1] <= d[1] longcondition = emacondition and upcondition and crossup and buyhiddenbull if (afterStartDate) strategy.entry("Long", strategy.long, when = longcondition) //TakeProfit, StopLoss lowest low profitfactor = input(title="Profitfactor", type=input.float, step=0.1, defval=1.6) loLen = input(title="Lowest Low Lookback", type=input.integer, defval=38, minval=2) stop_level = lowest(low, loLen)[1] bought = strategy.position_size[1] < strategy.position_size barsbought = barssince(bought) if strategy.position_size>0 profit_level = strategy.position_avg_price + ((strategy.position_avg_price - stop_level[barsbought])*profitfactor) strategy.exit(id="TP/ SL", stop=stop_level[barsbought], limit=profit_level)