Esta estrategia establece puntos de stop-loss basados en los máximos y mínimos recientes para entrar rápidamente en tendencias y controlar estrictamente los riesgos. Ingresa posiciones largas cuando los precios aumentan consecutivamente y posiciones cortas cuando los precios caen consecutivamente.
input
función para establecer los períodos de vista atráshiLen
yloLen
para los máximos más altos y mínimos más bajos, el incumplimiento a 20.hiHighs
hasta la barra anterior utilizandota.highest(high, hiLen)[1]
, y el más bajo bajoloLows
el usota.lowest(low, loLen)[1]
.loLows
para las posiciones largas yhiHighs
Para las posiciones cortas, no trace cuando esté en plano para una fácil confirmación.higherCloses
: las últimas 3 barras tienen cierre consecutivamente más altolowerCloses
: las últimas 3 barras tienen cierre consecutivamente más bajosisFlat
: no hay posición actualisFlat
yhigherCloses
, entre corto cuandoisFlat
ylowerCloses
.loLows
; para las posiciones cortas, se detiene enhiHighs
.En resumen, esta estrategia utiliza los máximos y mínimos recientes para establecer paradas de retroceso, entrando rápidamente en tendencias fuertes y limitando estrictamente las pérdidas, capturando así de manera eficiente las ganancias de tendencia.
Esta estrategia de alto más alto/bajo más bajo establece paradas dinámicas basadas en los precios mismos para capturar eficientemente las tendencias fuertes y controlar estrictamente los riesgos. Sus ventajas son la simplicidad, la eficacia, las entradas rápidas, las paradas estrictas y la alta adaptabilidad. Sin embargo, tiene un bajo rendimiento en mercados agitados, finales de tendencia y movimientos extremos, y requiere atención a la configuración de parámetros. Las mejoras futuras pueden agregar confirmación de tendencia y impulso, optimizar paradas y dimensionamiento de posición. En general, es una estrategia simple y efectiva de equilibrio de la tendencia-captura y control de riesgos que merece una investigación y optimización en profundidad en la práctica.
/*backtest start: 2023-03-02 00:00:00 end: 2024-03-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title="Highest high/lowest low stop", overlay=true) // STEP 1: // Make inputs for length of highest high and lowest low hiLen = input.int(20, title="Highest High Lookback", minval=2) loLen = input.int(20, title="Lowest Low Lookback", minval=2) // STEP 2: // Calculate recent extreme high and low hiHighs = ta.highest(high, hiLen)[1] loLows = ta.lowest(low, loLen)[1] // Plot stop values for visual confirmation plot(strategy.position_size > 0 ? loLows : na, style=plot.style_circles, color=color.green, linewidth=3, title="Lowest Low Stop") plot(strategy.position_size < 0 ? hiHighs : na, style=plot.style_circles, color=color.red, linewidth=3, title="Highest High Stop") // Trading conditions for this example strategy higherCloses = close > close[1] and close[1] > close[2] and close[2] > close[3] lowerCloses = close < close[1] and close[1] < close[2] and close[2] < close[3] isFlat = strategy.position_size == 0 // Submit entry orders if isFlat and higherCloses strategy.entry("EL", strategy.long) if isFlat and lowerCloses strategy.entry("ES", strategy.short) // STEP 3: // Submit stops based on highest high and lowest low if strategy.position_size > 0 strategy.exit("XL HH", stop=loLows) if strategy.position_size < 0 strategy.exit("XS LL", stop=hiHighs)