
La estrategia de seguimiento de reversión de extremos permite el seguimiento de tendencias mediante el seguimiento de los extremos de los rangos de fluctuación de los precios, haciendo más operaciones de pronóstico en reversión en los extremos.
La estrategia se basa principalmente en los siguientes principios:
Utilice la función de seguridad para obtener el máximo de la línea K de diferentes períodos, y comprobar si es igual al máximo de la línea K anterior, para determinar si se ha alcanzado un nuevo punto máximo.
Cuando se detecta un nuevo punto extremo, si la tendencia actual es de más cabeza, se invierte a la baja en ese punto extremo; si la tendencia actual es de menos cabeza, se invierte a la baja en ese punto extremo.
Establece un punto de parada para los nuevos puntos máximos que se forman después de hacer más operaciones de corto plazo para lograr un punto de parada de seguimiento de tendencias.
Se puede ajustar la estrategia para diferentes períodos de tiempo, estableciendo un rango de tiempo en el que la estrategia entra en vigencia desde la fecha del año hasta la fecha del mes.
La estrategia tiene las siguientes ventajas:
La capacidad de capturar los extremos de los cambios en los precios, hacer inversiones y realizar un seguimiento de tendencias.
La administración de tiempo y dinero permite controlar el tiempo y el dinero empleado en la estrategia, lo que reduce el riesgo.
Utilizando el nuevo punto máximo como punto de parada, se puede ajustar la posición de parada en función del nuevo rango de fluctuación de precios, para lograr una parada dinámica.
La lógica de la estrategia es simple y clara, fácil de entender, fácil de configurar y optimizar.
La estrategia también tiene ciertos riesgos:
Los juzgados de puntos extremos pueden cometer errores de juicio, lo que lleva a cometer muchos errores de blanqueo. Se puede optimizar ajustando la lógica de juicio de puntos extremos.
La ubicación de la parada de pérdidas cerca del punto de entrada puede aumentar la probabilidad de que la parada de pérdidas se active. Se pueden configurar regexos fuera de campo para resolver la parada de pérdidas flotantes.
Sin tener en cuenta la lógica de alza y reversión de posiciones que siguen la tendencia, puede ser difícil obtener ganancias en situaciones de tendencia. Se pueden agregar reglas de alza y reversión de posiciones para optimizar.
La configuración de la moneda y el rango de tiempo es rígida y no se puede ajustar dinámicamente. Se puede crear un sistema de optimización de parámetros para resolver.
La estrategia puede ser optimizada en las siguientes direcciones:
Optimización de la lógica de juzgamiento de puntos extremos, añadiendo más condiciones de filtración para evitar errores de juicio.
Aumentar el mecanismo de suspensión de pérdidas flotantes y ajustar la distancia de suspensión de pérdidas en función de los cambios en el precio y la amplitud de las fluctuaciones.
La adición de un módulo de alza y reversión de posiciones basado en tendencias y fluctuaciones mejora la rentabilidad.
Establecer mecanismos de optimización de parámetros para la realización de pruebas y optimización automatizadas de los parámetros.
La participación de modelos de aprendizaje automático para evaluar la situación y ayudar a tomar decisiones estratégicas.
La estrategia de seguimiento de la inversión de los extremos tiene una gran capacidad de adaptación y rentabilidad al capturar los extremos de los cambios en los precios y seguir la tendencia. Después de continuar optimizando el juicio de los extremos, los mecanismos de parada de pérdidas y las reglas de apertura de posiciones, la estrategia podría convertirse en una estrategia de comercio cuantitativa estable y confiable.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 6h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=2
strategy(title = "Noro's Extremum Strategy v1.0", shorttitle = "Extremum str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(false, defval = false, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
tf = input('W', title = 'Timeframe for extremums')
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
//Levels
highm = request.security(syminfo.tickerid, tf, high[1])
lowm = request.security(syminfo.tickerid, tf, low[1])
upcolorm = highm == highm[1] ? lime : na
dncolorm = lowm == lowm[1] ? red : na
plot(highm, color = upcolorm, linewidth = 3)
plot(lowm, color = dncolorm, linewidth = 3)
//Signals
size = strategy.position_size
up = size > 0 ? highm * 1000000 : highm != highm[1] ? highm : up[1]
dn = size < 0 ? 0 : lowm != lowm[1] ? lowm : dn[1]
exit = true
//Trading
lot = strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1]
if highm > 0 and high[1] < highm and highm == highm[1]
strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, stop = up)
if lowm > 0 and low[1] > lowm and lowm == lowm[1]
strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, stop = dn)
if exit
strategy.close_all()