La estrategia de búsqueda de centro más alto / más bajo es una estrategia de seguimiento de tendencia. Su idea principal es calcular el precio medio de los precios más altos y más bajos durante un cierto período en el pasado como el precio de referencia, y luego calcular la zona de entrada y la zona de salida en función de este precio de referencia combinado con la volatilidad. Cuando el precio ingresa a la zona de entrada, vaya largo; cuando el precio ingresa a la zona de salida, cierre la posición.
La estrategia se ejecuta principalmente a través de las siguientes etapas:
De esta manera, puede rastrear la tendencia en el tiempo cuando el precio entra en un estado de tendencia; al mismo tiempo, el riesgo se puede controlar a través de la volatilidad.
Esta estrategia tiene las siguientes ventajas:
La estrategia también tiene algunos riesgos:
Para controlar estos riesgos, la optimización puede realizarse en los siguientes aspectos:
La estrategia también tiene margen para una mayor optimización:
A través de estas optimizaciones, se pueden esperar mejoras en la estabilidad de la estrategia y la rentabilidad.
La estrategia de búsqueda del centro más alto / más bajo es una estrategia simple y práctica de seguimiento de tendencias. Puede capturar los cambios de precios en el tiempo, rastrear las tendencias, mientras controla el riesgo a través de la volatilidad. La estrategia es fácil de implementar, adecuada para que los principiantes en el comercio cuantitativo aprendan y practiquen. Al optimizar los parámetros y las reglas, el rendimiento de la estrategia se puede mejorar aún más.
/*backtest start: 2023-11-27 00:00:00 end: 2023-12-27 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Highest/Lowest Center Lookback Strategy", overlay=true) lookback_length = input(200, type=input.integer, minval=1, title="Lookback Length") smoother_length = input(5, type=input.integer, minval=1, title="Smoother Length") atr_length = input(10, type=input.integer, minval=1, title="ATR Length") atr_multiplier = input(1.5, type=input.float, minval=0.5, title="ATR Multiplier") vola = atr(atr_length) * atr_multiplier price = sma(close, 3) l = ema(lowest(low, lookback_length), smoother_length) h = ema(highest(high, lookback_length), smoother_length) center = (h + l) * 0.5 upper = center + vola lower = center - vola trend = price > upper ? true : (price < lower ? false : na) bull_cross = crossover(price, upper) bear_cross = crossunder(price, lower) strategy.entry("Buy", strategy.long, when=bull_cross) strategy.close("Buy", when=bear_cross) plot(h, title="High", color=color.red, transp=75, linewidth=2) plot(l, title="Low", color=color.green, transp=75, linewidth=2) pc = plot(center, title="Center", color=color.black, transp=25, linewidth=2) pu = plot(upper, title="Upper", color=color.green, transp=75, linewidth=2) pl = plot(lower, title="Lower", color=color.red, transp=75, linewidth=2) fill(pu, pc, color=color.green, transp=85) fill(pl, pc, color=color.red, transp=85) bgcolor(trend == true ? color.green : (trend == false ? color.red : color.gray), transp=85)