Esta es una estrategia de tendencia de criptomonedas a largo plazo que combina promedio móvil, índice de fuerza relativa (RSI) y correlación de mercado para identificar tendencias de precios a medio y largo plazo, establecer posiciones cuando comienzan las tendencias, piramidizar a lo largo de las tendencias y obtener ganancias cuando se detectan señales de inversión de tendencia.
La estrategia se basa principalmente en tres indicadores:
Indice de fortaleza relativa (RSI): para identificar las condiciones de sobrecompra y sobreventa.
Promedio móvil simple (SMA): SMA de 9 días del precio de cierre para determinar la dirección de la tendencia.
Correlación de mercado: utilizar la criptocap total como referencia para calcular la correlación con el instrumento de negociación, reemplazando las barras originales por barras de correlación para mejorar la calidad de la señal.
En concreto, las reglas de negociación son las siguientes:
Entrada larga: Cuando el RSI cruza por encima de 51 y el precio de cierre está por encima de la SMA de 9 días.
Entrada corta: Cuando el RSI cruza por debajo de 49 y el precio de cierre está por debajo de la SMA de 9 días.
Tome ganancias/detenga pérdidas: 1%/0.1% para los comprados, 0.05%/0.03% para los cortos.
También existe una condición de tiempo que limita el período de negociación.
La combinación de indicadores de tendencia y de sobrecompra/sobreventa permite realizar un seguimiento eficaz de las tendencias a medio y largo plazo.
La correlación de mercado mejora la calidad de la señal, evitando tendencias falsas.
La obtención de beneficios razonables y la detención de pérdidas previene pérdidas ampliadas.
El período de negociación personalizable se adapta a las diferentes condiciones del mercado.
Ineficaz en los mercados volátiles a corto plazo.
La inversión del índice de referencia puede provocar salidas con retraso en los instrumentos de negociación.
Potencialmente pierde oportunidades de reversión cuando solo hace compras largas/cortas.
Soluciones:
Añadir indicadores a corto plazo, por ejemplo, KC, BOLL para la detección del régimen de mercado y paralizaciones.
Mejorar el análisis de referencia para las salidas oportunas.
Se trata de instrumentos de doble cara para capturar las inversiones.
El valor de las pérdidas se calcula de acuerdo con el índice RSI.
Evaluar más combinaciones de referencia/negociación con una mayor correlación y liquidez.
Combinar con otras estrategias, utilizando esta para las tenencias a medio y largo plazo.
Se trata de una estrategia de seguimiento de tendencias de criptomonedas a medio y largo plazo optimizada y ampliamente adaptable. Combina eficazmente el análisis de tendencia, impulso y correlación para mejorar las decisiones comerciales. El ajuste adecuado de parámetros y el uso compuesto pueden mejorar enormemente su estabilidad y rentabilidad.
/*backtest start: 2022-12-04 00:00:00 end: 2023-12-10 00:00:00 period: 1d basePeriod: 1h 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/ // © exlux99 //@version=4 strategy(title = "Crypto swing correlation", overlay = true, pyramiding=1,initial_capital = 1, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.03) //time fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) fromYear = input(defval = 2010, title = "From Year", minval = 1970) //monday and session // To Date Inputs toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31) toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12) toYear = input(defval = 2021, title = "To Year", minval = 1970) startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00) finishDate = timestamp(toYear, toMonth, toDay, 00, 00) time_cond = true useCorrelation = input(true, title="Use Correlation candles?") symbol = input("BTC_USDT:swap", type=input.symbol) haClose = useCorrelation ? security(symbol, timeframe.period, close) : close haOpen = useCorrelation ? security(symbol, timeframe.period, open) : open haHigh = useCorrelation ? security(symbol, timeframe.period, high) : high haLow = useCorrelation ? security(symbol, timeframe.period, low) : low length = input( 50 ) overSold = input( 51 ) overBought = input( 49 ) s = input(title="Source", defval="haClose", options=["haClose", "haOpen", "haHigh", "haLow"]) price = s == "haClose" ? haClose: s == "haOpen" ? haOpen : s == "haHigh" ? haHigh : s == "haLow" ? haLow : na len = input(8, "Length Moving average", minval=1) src = price ma = sma(src, len) vrsi = rsi(price, length) long = crossover(vrsi, overSold) and time_cond and price > ma short = crossunder(vrsi, overBought) and time_cond and price < ma takeProfit_long=input(1.0, step=0.005) stopLoss_long=input(0.1, step=0.005) takeProfit_short=input(0.05, step=0.005) stopLoss_short=input(0.03, step=0.005) strategy.entry("long",1,when=long) strategy.entry("short",0,when=short) strategy.exit("short_tp/sl", "long", profit=close * takeProfit_long / syminfo.mintick, loss=close * stopLoss_long / syminfo.mintick, comment='LONG EXIT', alert_message = 'closeshort') strategy.exit("short_tp/sl", "short", profit=close * takeProfit_short / syminfo.mintick, loss=close * stopLoss_short / syminfo.mintick, comment='SHORT EXIT', alert_message = 'closeshort')