Esta estrategia aprovecha al máximo las medias móviles y el índice de fuerza relativa para identificar y seguir las tendencias. Solo necesita dos indicadores para determinar la tendencia y encontrar el momento adecuado de entrada / salida. La estrategia tiene como objetivo capturar las tendencias de precios a medio y largo plazo evitando el ruido del mercado a corto plazo.
La estrategia utiliza tres EMA con períodos diferentes, con EMA-A teniendo el período más corto, EMA-B medio y EMA-C el más largo. Cuando la EMA-A más corta cruza por encima de la EMA-B más larga, señala una tendencia al alza, por lo que va largo. Por el contrario, cuando EMA-A cruza por debajo de EMA-B, señala una tendencia a la baja, por lo que va corto. Para filtrar las señales falsas, también utiliza la EMA-C más larga, solo considerando la entrada después de que el precio rompa EMA-C.
La estrategia también utiliza el RSI para localizar puntos de salida. Cuando es largo, cierra la posición si el RSI cruza por encima de 70. Cuando es corto, sale si el RSI cae por debajo de 30.
Estos riesgos pueden reducirse optimizando los parámetros del RSI, agregando filtros y combinándolos con el análisis de tendencias.
Esta estrategia combina indicadores de seguimiento de tendencias y osciladores para la identificación y captura de tendencias. Con parámetros simples y optimización lógica, se puede mejorar enormemente manteniendo la simplicidad. Es una plantilla de seguimiento de tendencias muy práctica adecuada para inversores a medio y largo plazo.
/*backtest start: 2023-08-26 00:00:00 end: 2023-09-25 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ //@author Alorse //@version=5 // strategy(title='Tendency EMA + RSI [Alorse]', shorttitle='Tendece EMA + RSI [Alorse]', overlay=true, pyramiding=0, currency=currency.USD, default_qty_type=strategy.percent_of_equity, initial_capital=1000, default_qty_value=20, commission_type=strategy.commission.percent, commission_value=0.01) // Bollinger Bands len = input.int(14, minval=1, title='Length', group='RSI') src = input.source(close, 'Source', group='RSI') rsi = ta.rsi(src, len) // Moving Averages len_a = input.int(10, minval=1, title='EMA A Length', group='Moving Averages') out_a = ta.ema(close, len_a) plot(out_a, title='EMA A', color=color.purple) len_b = input.int(20, minval=1, title='EMA B Length', group='Moving Averages') out_b = ta.ema(close, len_b) plot(out_b, title='EMA B', color=color.orange) len_c = input.int(100, minval=1, title='EMA C Length', group='Moving Averages') out_c = ta.ema(close, len_c) plot(out_c, title='EMA B', color=color.green) // Strategy Conditions stratGroup = 'Strategy' showLong = input.bool(true, title='Long entries', group=stratGroup) showShort = input.bool(false, title='Short entries', group=stratGroup) closeAfterXBars = input.bool(true, title='Close after X # bars', tooltip='If trade is in profit', group=stratGroup) xBars = input.int(24, title='# bars') entryLong = ta.crossover(out_a, out_b) and out_a > out_c and close > open exitLong = rsi > 70 entryShort = ta.crossunder(out_a, out_b) and out_a < out_c and close < open exitShort = rsi < 30 bought = strategy.opentrades[0] == 1 and strategy.position_size[0] > strategy.position_size[1] entry_price = ta.valuewhen(bought, open, 0) var int nPastBars = 0 if strategy.position_size > 0 nPastBars := nPastBars + 1 nPastBars if strategy.position_size == 0 nPastBars := 0 nPastBars if closeAfterXBars exitLong := nPastBars >= xBars and close > entry_price ? true : exitLong exitLong exitShort := nPastBars >= xBars and close < entry_price ? true : exitShort exitShort // Long Entry strategy.entry('Long', strategy.long, when=entryLong and showLong) strategy.close('Long', when=exitLong) // Short Entry strategy.entry('Short', strategy.short, when=entryShort and showShort) strategy.close('Short', when=exitShort)