
Esta estrategia utiliza una combinación de dos líneas de equilibrio, un indicador de fuerza relativa (RSI) y un indicador de parallax (PSAR) para determinar el punto de inflexión del precio y realizar operaciones de compra y venta cuando ocurre el punto de inflexión. Se trata de una estrategia de negociación inversa.
La estrategia se basa en los siguientes indicadores técnicos para determinar el punto de inflexión:
La línea doble: Calcula la media móvil rápida (MA rápida) y la media móvil lenta (MA lenta). Cuando la línea rápida atraviesa la línea lenta, juzga que es un mercado de más cabeza, haga más; cuando la línea rápida atraviesa la línea lenta, juzga que es un mercado de cabeza vacía, haga vacío.
Indicador RSI: El RSI determina la situación de sobreventa y sobreventa mediante el cálculo de la media de la subida y la media de la caída de la posición de cierre durante un período de tiempo. El RSI mayor de 70 es el área de sobreventa y menor de 30 es la zona de sobreventa.
Indicador PSAR: la línea paralela del indicador SAR determina la dirección de la tendencia. Por debajo del punto SAR se encuentra el mercado de capas múltiples y por encima el mercado de capas vacías.
Indicador ADX: ADX determina la intensidad de la tendencia calculando la intensidad direccional de los cambios en los precios. Un valor ADX mayor a 20 indica la tendencia y menor a 20 indica la liquidación.
La lógica de las señales de compra y venta según los indicadores anteriores es la siguiente:
Señales de compra: la línea rápida atraviesa la línea lenta, el RSI es menor que 30 (zona de venta), el punto SAR está por encima del precio, el ADX es mayor que 20 y emite una señal de compra.
Señales de venta: la línea rápida cruza la línea lenta, el RSI es mayor que 70 (zona de sobrecompra), el SAR está por debajo del precio, el ADX es mayor que 20 y emite señales de venta.
Cuando se produzca una señal de compra y venta, se establecen posiciones excedentes y vacantes con un 10% de posiciones respectivamente. Cuando la señal de reversión falle, se detiene a tiempo la pérdida de la posición.
El uso de dos líneas de equilibrio para determinar la dirección de la tendencia general, además de incluir indicadores como RSI y SAR para eliminar señales erróneas, puede determinar con mayor precisión el punto de reversión.
Utiliza una combinación de indicadores para evitar señales erróneas causadas por un solo indicador técnico.
Establezca condiciones de stop loss para controlar el riesgo de manera efectiva.
Las estrategias son sencillas, claras y fáciles de aplicar.
La estrategia tiene una respuesta a las fluctuaciones del mercado y puede aplicarse en diferentes situaciones.
Cuando las líneas de doble equilibrio generan señales de cabeza vacía, la situación puede presentar falsas rupturas, y se debe juzgar en combinación con otros indicadores. Se puede alargar el ciclo de la línea de equilibrio adecuadamente, o agregar el indicador de la banda de Bryn para juzgar la autenticidad de la ruptura.
El indicador RSI puede generar una señal errónea debido a una configuración incorrecta de los parámetros. Se debe ajustar adecuadamente los parámetros RSI y agregar otros indicadores para confirmar la señal RSI.
Cuando el ADX es inferior a 20, se debe suspender la negociación para evitar el cambio de tendencia de los mercados no direccionales. O se debe reducir adecuadamente el parámetro de ciclo del ADX.
El límite de SetStringry es demasiado pequeño y puede causar pérdidas innecesarias. El límite de SetStringry debe ajustarse razonablemente según la volatilidad del mercado.
La frecuencia de las transacciones puede ser demasiado alta, y se puede ajustar adecuadamente el ciclo de la línea de paridad para reducir la frecuencia de las transacciones.
Prueba combinaciones de líneas medias de diferentes períodos de longitud para encontrar el parámetro óptimo.
Prueba de los diferentes parámetros del RSI para optimizar las decisiones de sobreventa y sobreventa.
Intentar agregar otros indicadores, como la banda de Brin, KDJ, etc., para enriquecer la lógica de juicio de las señales de compra y venta.
Configuración de un mecanismo de stop loss dinámico según las diferentes variedades y condiciones del mercado.
Añadir estrategias de gestión de posiciones para que las ganancias puedan seguir mejor las tendencias.
Prueba diferentes parámetros de ADX para encontrar el valor que mejor determina la fuerza de la tendencia.
Se ha añadido un módulo de parada automática para que la estrategia pueda detenerse automáticamente.
Esta estrategia utiliza dos líneas de equilibrio para determinar la dirección principal, en combinación con indicadores como RSI, SAR y otros para filtrar la señal de reversión, y después de establecer los parámetros de optimización, puede determinar eficazmente el punto de reversión del precio, para capturar la tendencia antes y después de la reversión. En el mercado real, se debe tener en cuenta el control del riesgo, establecer condiciones de parada razonables y continuar optimizando los parámetros para que la estrategia sea más estable y con mayores ganancias. En general, esta estrategia, combinada con indicadores cruzados, es una estrategia de reversión con claridad de pensamiento y fácil operación.
/*backtest
start: 2023-10-10 00:00:00
end: 2023-11-09 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
//Based on Senpai BO 3
strategy(title="Senpai_Strat_3", shorttitle="Senpai_Strat_3", overlay=false, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
src = close
//psar
start = input(0.02)
increment = input(0.02)
maximum = input(0.2)
psar = sar(start, increment, maximum)
//ADX Init
adxlen = input(30, title="ADX Smoothing")
dilen = input(30, title="DI Length")
dirmov(len) =>
up = change(high)
down = -change(low)
truerange = rma(tr, len)
plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, len) / truerange)
minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, len) / truerange)
[plus, minus]
adx(dilen, adxlen) =>
[plus, minus] = dirmov(dilen)
sum = plus + minus
adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
[adx, plus, minus]
[sig, up, down] = adx(dilen, adxlen)
// BB Init
source = close
length = input(50, minval=1)
mult = input(0.5, title="Mult Factor", minval=0.001, maxval=50)
alertLevel=input(0.1)
impulseLevel=input(0.75)
showRange = input(false, type=bool)
//RSI CODE
up1 = rma(max(change(src), 0), 14)
down1 = rma(-min(change(src), 0), 14)
rsi = down1 == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up1 / down1))
//BB CODE
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev
bbr = source>upper?(((source-upper)/(upper-lower))/10): source<lower?(((source-lower)/(upper-lower))/10) : 0.05
bbi = bbr - nz(bbr[1])
//////////////////// Algo
//if (rsi>50 and n1>n2)
//strategy.exit("Close", "Short")
// strategy.entry("Long", strategy.long)
//if (rsi<50 and n2>n1)
//strategy.exit("Close", "Long")
// strategy.entry("Short", strategy.short)
//col = ma30 > ma50 > ma200 and rsi <=53?lime: ma50 < ma200 and rsi >= 60?red : silver
//short1 = sig<18.5 and high>=upper and rsi>=70 and psar<close = 100%
//long1 = sig<18.5 and low<=lower and rsi<=30 and psar>close = 100%
short1 = sig<18.5 and high>=upper and rsi>=70 and psar<close
long1 = sig<18.5 and low<=lower and rsi<=30 and psar>close
//Entry
long = long1[1] == 0 and long1 == 1
short = short1[1] == 0 and short1 == 1
longclose = long[3] == 1
shortclose = short[3] == 1
strategy.entry("short", strategy.short,qty = 10, when=short)
strategy.entry("long", strategy.long,qty=10, when=long)
strategy.close("long",when=longclose)
strategy.close("short",when=shortclose)
/////////////////////
///PLOT
plot(long,"long",color=green,linewidth=1)
plot(short,"short",color=red,linewidth=1)
plot(longclose,"close",color=blue,linewidth=1)
plot(shortclose,"close",color=orange,linewidth=1)
//plot(short,"short",color=red,linewidth=1)
//
//strategy.exit(id="long",qty = 100000,when=longclose)
//strategy.exit(id="short",qty = 100000,when=shortclose)
//strategy.exit(id="Stop", profit = 20, loss = 100)