Esta estrategia construye un indicador compuesto CRSI personalizado tomando el promedio del RSI, el poder alcista / bajista y la tasa de cambio de precios porcentuales, y las operaciones se basan en el promedio móvil del CRSI que cruza niveles fijos.
La estrategia primero calcula el RSI de 3 días del precio para medir si el precio está sobrecomprado o sobrevendido. Mientras tanto, calcula el poder de los toros / osos del precio para juzgar el impulso. También calcula el rango porcentual de la tasa de cambio de precios (ROC) para verificar la velocidad relativa del cambio de precios. Luego toma la media de estos tres indicadores para construir un indicador compuesto personalizado CRSI, que refleja la condición general del precio. Finalmente, calcula la media móvil simple de 2 días (MA) del CRSI. Cuando el MA cruza el nivel de 40, sale largo. Cuando el MA cruza el nivel de 70, sale de posiciones largas.
Esta estrategia combina múltiples indicadores para construir el indicador CRSI personalizado, lo que hace que las señales comerciales sean más confiables. RSI puede decir si el precio está sobrecalentado o sobrevendido. Bull / bear power puede juzgar el impulso. ROC verifica qué tan rápido está cambiando el precio. Combinarlos juntos en CRSI hace que las señales comerciales sean más completas y confiables. Además, el uso de MA también ayuda a filtrar señales falsas.
Aunque esta estrategia utiliza múltiples indicadores para un combo, todavía corre el riesgo de generar señales falsas en ciertas condiciones de mercado. Por ejemplo, en mercados de rango, RSI, ROC y otros indicadores pueden producir señales de compra y venta frecuentes mientras que en realidad el precio no tiene una tendencia clara. O algunos indicadores pueden retrasarse y retrasar la generación de señales comerciales después de que ocurra un evento repentino. Estas situaciones pueden causar pérdidas. Los riesgos podrían reducirse optimizando parámetros o agregando otras condiciones de filtrado.
A continuación se presentan algunos aspectos que podrían optimizar esta estrategia: 1) Optimizar los parámetros de RSI, poder alcista / bajista y ROC para hacer que el CRSI sea más estable y confiable; 2) Agregar otros indicadores auxiliares como KDJ, MACD en la combinación para señales más completas; 3) Optimizar los parámetros MA para reducir el riesgo de demora; 4) Agregar condiciones de stop loss para controlar pérdidas individuales; 5) Incorporar indicadores a más largo plazo para juzgar el estado de la tendencia, evitando el sobrecomercio de los mercados entrantes de rango.
Esta estrategia construye un indicador CRSI personalizado basado en la media de RSI, poder toro/oso y ROC, y opera en el MA de CRSI cruzando niveles fijos. Tal combinación de múltiples indicadores puede hacer que las señales comerciales sean más estables y confiables. Pero esta estrategia aún requiere una mayor optimización de parámetros, indicadores auxiliares y condiciones de filtrado para reducir las señales falsas y los impactos de los regímenes de mercado, a fin de mejorar la rentabilidad constante.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 src = close, lenrsi = 3, lenupdown = 2, lenroc = 100, malengt = 2, low = 40, high = 70, a = 1, vlow = 20 updown(s) => isEqual = s == s[1] isGrowing = s > s[1] ud = 0.0 ud := isEqual ? 0 : isGrowing ? (nz(ud[1]) <= 0 ? 1 : nz(ud[1])+1) : (nz(ud[1]) >= 0 ? -1 : nz(ud[1])-1) ud rsi = rsi(src, lenrsi) updownrsi = rsi(updown(src), lenupdown) percentrank = percentrank(roc(src, 1), lenroc) crsi = avg(rsi, updownrsi, percentrank) MA = sma(crsi, malengt) band1 = 70 band0 = 40 band2 = 20 ColorMA = MA>=band0 ? lime : red p1 = plot(MA, title="BuyNiggers", style=line, linewidth=4, color=ColorMA) p2 = plot(low, title="idk", style=line, linewidth=2, color=blue) p3 = plot(high, title="idk2", style=line, linewidth=2, color=orange) p4 = plot(vlow, title="idk3", style=line, linewidth=1, color=red) //@version=2 strategy("CMARSI") if crossover(MA, band0) strategy.entry("buy", strategy.long, 1, when=strategy.position_size <= 0) if crossunder(MA, band1) strategy.exit("close", "buy", 1, profit=1, stop=1) plot(strategy.equity)