
La estrategia determina la tendencia de los precios y genera señales de negociación mediante el cálculo de las medias de los rangos de RSI, CNI y porcentaje de cambio de precio, la construcción de un CRSI de composición personalizado y el cálculo de su MA de media móvil simple.
La estrategia primero calcula el RSI de 3 días del precio para determinar si el precio está demasiado caliente o demasiado frío; al mismo tiempo, calcula el indicador de la oscilación del sol del precio para determinar el movimiento del precio; además, calcula el porcentaje de precio en el ranking ROC para determinar la velocidad relativa de cambio del precio. Luego, toma el promedio de estos tres indicadores y construye un indicador integrado personalizado CRSI. El CRSI refleja el comportamiento integral del precio.
Esta estrategia combina varios indicadores para construir un indicador personalizado de CRSI, lo que hace que la señal de negociación sea más confiable. El RSI puede determinar si el precio está demasiado caliente o frío, el indicador de rayos X y X puede determinar la cantidad de movimiento del precio y el ROC puede determinar la velocidad de cambio del precio. Combinarlos para formar el indicador de CRSI hace que la señal de negociación sea más completa y confiable.
La estrategia, aunque se combina con varios indicadores, aún puede generar señales erróneas en un entorno de mercado específico. Por ejemplo, en situaciones de crisis, indicadores como el RSI, el ROC y otros pueden generar señales de compra y venta frecuentes cuando en realidad no hay una tendencia obvia en los precios; o después de un evento repentino, varios indicadores pueden tener un retraso y retrasar la generación de señales de comercio.
Se pueden considerar los siguientes aspectos para optimizar esta estrategia: 1) optimizar los parámetros del RSI, el indicador positivo y negativo, el ROC, para que el indicador CRSI sea más estable y confiable; 2) agregar otros indicadores auxiliares para combinar, como KDJ, MACD, etc., para que la señal sea más completa; 3) optimizar los parámetros del MA, para reducir el riesgo de retraso; 4) aumentar las condiciones de parada para controlar las pérdidas individuales; 5) combinar un indicador de período más largo para juzgar la tendencia y evitar el comercio frecuente en mercados convulsos.
La estrategia realiza operaciones de compra y venta cuando el MA coincide con los niveles de precios Golden Cross y Death Cross, calculando la media de RSI, RSI y ROC, construyendo un indicador personalizado de CRSI y luego calculando el MA de CRSI. Esta combinación de múltiples indicadores puede hacer que la señal de negociación sea más estable y confiable. Sin embargo, la estrategia aún necesita optimizar aún más los parámetros, agregar indicadores auxiliares y condiciones de filtración para reducir el impacto de señales erróneas y el entorno del mercado y mejorar la estabilidad de la rentabilidad.
/*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)