Estrategia de negociación dinámica de los canales de precios

El autor:¿ Qué pasa?, Fecha: 2023-09-16 19:01:26
Las etiquetas:

Resumen general

Este artículo presenta una estrategia de negociación a corto plazo basada en canales de precios dinámicos.

Estrategia lógica

La estrategia se basa en la siguiente lógica:

  1. Calcular los canales de precios dinámicos utilizando los precios más altos y más bajos. La banda superior es el promedio del precio más alto y el punto medio del canal. La banda inferior es el punto medio menos la diferencia entre el precio más bajo y el punto medio.

  2. Cuando el precio se rompe por encima de la banda superior, comienza una tendencia alcista.

  3. En tendencias alcistas, vaya largo cuando aparezcan dos barras bajistas consecutivas.

  4. Considere las entradas de tendencia contraria para perseguir el impulso del mercado. Por ejemplo, corto en tendencias alcistas y largo en tendencias bajistas.

  5. Establezca porcentajes de ganancias, como x% del precio de entrada, para bloquear las ganancias.

Análisis de ventajas

Las ventajas de esta estrategia incluyen:

  1. Los canales dinámicos reflejan los cambios del mercado en tiempo real para una mejor evaluación de la tendencia.

  2. La combinación de tendencias y breakouts filtra breakouts falsos.

  3. Las entradas contra tendencia capitalizan el impulso del mercado para obtener rendimientos excedentes.

  4. Las paradas de ganancias controlan los riesgos de manera efectiva.

  5. La lógica es simple y clara para una fácil aplicación.

Análisis de riesgos

También hay algunos riesgos a tener en cuenta:

  1. Los canales pueden fallar durante los mercados volátiles.

  2. Las operaciones contra tendencia son vulnerables a las pérdidas.

  3. Las fugas falsas pueden causar malas operaciones.

  4. Evite el exceso para controlar los costos.

Conclusión

Esta estrategia integra canales dinámicos, breakouts y take profits. Con la puesta a punto adecuada, puede ser una herramienta comercial efectiva a corto plazo. Pero los operadores deben tener en cuenta el control de riesgos y adaptarlo a sus propios estilos.


/*backtest
start: 2022-09-09 00:00:00
end: 2023-09-15 00:00:00
period: 2d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=2
strategy("Noro's Bands Scalper Strategy v1.1", shorttitle = "Scalper str 1.1", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
takepercent = input(0, defval = 0, minval = 0, maxval = 1000, title = "take, %")
needct = input(false, defval = false, title = "Counter-trend entry")
len = input(20, defval = 20, minval = 2, maxval = 200, title = "Period")
needbb = input(true, defval = true, title = "Show Bands")
needbg = input(true, defval = true, title = "Show Background")
src = close

//PriceChannel
lasthigh = highest(src, len)
lastlow = lowest(src, len)
center = (lasthigh + lastlow) / 2

//Distance
dist = abs(src - center)
distsma = sma(dist, len)
hd = center + distsma
ld = center - distsma
hd2 = center + distsma * 2
ld2 = center - distsma * 2

//Trend
sma = sma(close, 20)
smatrend = close > sma ? 1 : close < sma ? -1 : smatrend[1]
trend = close < ld and high < hd ? -1 : close > hd and low > ld ? 1 : trend[1]

//Lines
colo = needbb == false ? na : black
plot(hd, color = colo, linewidth = 1, transp = 0, title = "High band")
plot(center, color = colo, linewidth = 1, transp = 0, title = "center")
plot(ld, color = colo, linewidth = 1, transp = 0, title = "Low band")

//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 80)

//Signals
bar = close > open ? 1 : close < open ? -1 : 0
up7 = trend == 1 and bar == -1 and bar[1] == -1 ? 1 : 0
dn7 = trend == 1 and bar == 1 and bar[1] == 1 and close > strategy.position_avg_price * (100 + takepercent) / 100 ? 1 : 0
up8 = trend == -1 and bar == -1 and bar[1] == -1 and close < strategy.position_avg_price * (100 - takepercent) / 100 ? 1 : 0
dn8 = trend == -1 and bar == 1 and bar[1] == 1 ? 1 : 0

if up7 == 1 or up8 == 1
    strategy.entry("Long", strategy.long, needlong == false ? 0 : trend == -1 and needct == false ? 0 : na)

if dn7 == 1 or dn8 == 1
    strategy.entry("Short", strategy.short, needshort == false ? 0 : trend == 1 and needct == false ? 0 : na)

Más.