Estrategia de negociación de ruptura de Supertrend

El autor:¿ Qué pasa?, Fecha: 2024-02-18 14:19:58
Las etiquetas:

img

Resumen general

Esta estrategia se desarrolla sobre la base del indicador Supertrend. Combina la acción del precio y la dirección del canal Supertrend para juzgar las tendencias del mercado y generar señales comerciales cuando la dirección del canal cambia.

Cuando el precio atraviesa el canal de Supertrend, vaya largo; cuando el precio se rompe por debajo del canal inferior de Supertrend, vaya corto.

Estrategia lógica

El canal de Supertrend se compone de un carril superior y un carril inferior. El área dentro del canal es el área de consolidación y el área fuera es el área de tendencia.

Cuando el precio rompe el rieles superior desde abajo, es una señal de compra. Esto significa que una nueva tendencia alcista está comenzando. Cuando el precio rompe el rieles inferior desde arriba, es una señal de venta. Esto significa que una nueva tendencia bajista está comenzando.

La estrategia utiliza el indicador Supertrend para juzgar la dirección de la tendencia principal. Cuando la dirección del canal cambia, es decir, cuando el precio rompe los carriles del canal, se generan señales comerciales. Luego, use un stop loss de seguimiento de tendencia para bloquear las ganancias.

Análisis de ventajas

Esta es una estrategia de escape relativamente simple e intuitiva. Tiene las siguientes ventajas:

  1. Utilice los canales de Supertrend para determinar la dirección de la tendencia principal y evitar el ruido comercial.

  2. Siga la tendencia, juzgue las oportunidades largas y cortas basándose en la relación del precio con el canal.

  3. Tiene un mecanismo de stop loss claro para controlar eficazmente los riesgos.

  4. El método de stop loss es el seguimiento de tendencias de stop loss, que puede maximizar el bloqueo de ganancias.

Riesgos y mejoras

También existen algunos riesgos para esta estrategia, que incluyen principalmente:

  1. La configuración incorrecta de los parámetros del Supertrend puede dar lugar a señales falsas.

  2. Las señales de ruptura pueden ser señales de reversión a corto plazo, lo que resulta en pérdidas.

  3. El método de stop loss es únicamente de seguimiento de tendencias, lo que puede detener las pérdidas prematuramente.

Las medidas de mejora correspondientes incluyen:

  1. Prueba de datos de diferentes mercados y optimiza los parámetros.

  2. Las señales de filtro en combinación con otros indicadores.

  3. Juzgar la fiabilidad de las señales de ruptura combinadas con la estructura de precios.

  4. Aumentar la pérdida de parada de fondo para controlar aún más los riesgos.

Resumen de las actividades

En general, esta estrategia es una estrategia de seguimiento de tendencias relativamente simple e intuitiva. Utiliza canales de Supertrend para determinar claramente la dirección de la tendencia y genera señales cuando el canal cambia de dirección. Luego utiliza el seguimiento de tendencias para bloquear las ganancias.

En comparación con otros indicadores, el canal de Supertrend tiene una mejor tolerancia a las fluctuaciones de precios. Pero todavía hay margen de ganancia para esta estrategia. Se puede optimizar en términos de filtrado de señales y métodos de stop loss para mejorar aún más la estabilidad.


/*backtest
start: 2023-02-11 00:00:00
end: 2024-02-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Supertrend TEST Strategy", overlay = true, format=format.price, precision=2)

Periods = input(title="ATR Period", type=input.integer, defval=4)
src = input(hlc3, title="Source")
Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=4.7)
changeATR= input(title="Change ATR Calculation Method ?", type=input.bool, defval=true)
showsignals = input(title="Show Buy/Sell Signals ?", type=input.bool, defval=true)
highlighting = input(title="Highlighter On/Off ?", type=input.bool, defval=true)
tp=close
sl=close

atr2 = sma(tr, Periods)
atr= changeATR ? atr(Periods) : atr2
up=src-(Multiplier*atr)
up1 = nz(up[1],up)
up := close[1] > up1 ? max(up,up1) : up
dn=src+(Multiplier*atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
upPlot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_linebr, linewidth=2, color=color.green)
buySignal = trend == 1 and trend[1] == -1
plotshape(buySignal ? up : na, title="UpTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.green )
plotshape(buySignal and showsignals ? up : na, title="Лонг", text="Лонг", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white )
dnPlot = plot(trend == 1 ? na : dn, title="Down Trend", style=plot.style_linebr, linewidth=2, color=color.red)
sellSignal = trend == -1 and trend[1] == 1
plotshape(sellSignal ? dn : na, title="DownTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.red )
plotshape(sellSignal and showsignals ? dn : na, title="Шорт", text="Шорт", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white )
mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0)
longFillColor = highlighting ? (trend == 1 ? color.green : color.white) : color.white
shortFillColor = highlighting ? (trend == -1 ? color.red : color.white) : color.white



if (strategy.position_size > 0)
	tp:=tp[1]
	sl:=up
	strategy.exit("Long_TP/SL","Long",limit=tp, stop=sl)
	
if (strategy.position_size < 0)
	tp:=tp[1]
	sl:=dn
	strategy.exit("Short_TP/SL","Short",limit=tp, stop=sl)



if buySignal 
	tp:=close+(close-up)*0.382
    strategy.entry("Long", strategy.long,  limit=tp, comment=tostring(round(tp)))
if sellSignal
	tp:=close-(dn-close)*0.382
    strategy.entry("Short", strategy.short, limit=tp, comment=tostring(round(tp)))




Más.