Estrategia de inversión de precios guiada por el canal de precios

El autor:¿ Qué pasa?, Fecha: 2023-11-27 11:40:36
Las etiquetas:

img

Resumen general

La estrategia de inversión de precios guiada por el canal de precios calcula la línea central del canal de precios para determinar la dirección de tendencia de las fluctuaciones de precios. Genera señales largas y cortas cuando el precio se acerca a la línea central del canal.

Estrategia lógica

El indicador principal de esta estrategia es la línea central del canal de precios. Se calcula como el promedio del precio más alto y el precio más bajo de los 30 candeleros más recientes. Cuando el mínimo es más alto que la línea central, se considera una tendencia alcista. Cuando el máximo es más bajo que la línea central, se considera una tendencia bajista.

La estrategia solo genera señales comerciales cuando el fondo de la tendencia cambia. Es decir, en un fondo de tendencia alcista, se corta solo cuando el candelabro se vuelve rojo. En un fondo de tendencia bajista, se hace largo solo cuando el candelabro se vuelve verde.

Además, la estrategia también establece condiciones de doble filtro: filtro del cuerpo del candelabro y filtro de barras del canal de precios. Las señales se activan solo cuando el volumen del cuerpo del candelabro es mayor al 20% del valor promedio, y debe haber señales de tendencia consecutivas dentro del ciclo del filtro para abrir posiciones.

Análisis de ventajas

Esta estrategia combina tendencia, área de valor y patrones de candlestick, que es una estrategia de inversión eficiente.

  1. Usar el canal de precios para determinar la tendencia principal y evitar ser engañado por los mercados de rango.
  2. Seleccionando los niveles de precios cerca de la línea central del canal de precios, que es el clásico área de compra baja-venta alta.
  3. Los filtros del cuerpo del candelabro y las barras de canal aumentan la calidad de la señal y reducen las tasas de señal falsa.
  4. Abre posiciones solo en puntos de reversión obvios para evitar perseguir máximos y vender mínimos.

Riesgos y soluciones

Los principales riesgos de esta estrategia provienen de la falta de puntos de inversión de precios y la espera innecesaria de señales.

  1. Ajustar el rigor de las condiciones de filtración y reducir las normas de filtración para disminuir los intercambios perdidos.
  2. Aumentar el tamaño de la posición en la etapa inicial de la tendencia de reversión para capturar las ganancias de la tendencia.
  3. Combinar otros indicadores para juzgar la intensidad de la señal e intervenir en los filtros manualmente.

Direcciones de optimización

Esta estrategia puede optimizarse en los siguientes aspectos:

  1. Optimizar parámetros como el período del canal de precios, el número de barras de canal, etc.
  2. Añadir una estrategia de stop loss para detener la pérdida cuando la pérdida alcanza un cierto porcentaje.
  3. Combine el volumen de operaciones para intervenir en la fuerza del filtro.
  4. Añadir un modelo de aprendizaje automático para juzgar la probabilidad de la inversión de tendencia, reemplazando filtros simples.

Conclusión

La estrategia de inversión de precios guiada por el canal de precios determina los puntos de inversión a través de los canales de precios y establece condiciones de doble filtro para generar señales de alta calidad.


/*backtest
start: 2023-11-19 00:00:00
end: 2023-11-26 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=2
strategy(title = "Noro's PriceChannel for D1 v1.0", shorttitle = "PriceChannel D1", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 0)

//Settings
needlong = input(true, "long")
needshort = input(true, "short")
slowlen = input(30, defval = 30, minval = 2, maxval = 200, title = "PriceChannel Period")
pcbars = input(1, defval = 1, minval = 1, maxval = 20, title = "PriceChannel Bars")
usecol = input(true, "Use color-filter")
usebod = input(true, "Use body-filter")
needbg = input(false, defval = false, title = "Need trend Background?")
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")

src = close

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

//Trend
ub = low > center ? 1 : 0
db = high < center ? 1 : 0
trend = sma(ub, pcbars) == 1 ? 1 : sma(db, pcbars) == 1 ? -1 : trend[1]

//Body
body = abs(close - open)
abody = sma(body, 10)

//Signals
up = trend == 1 and (close < open or usecol == false) and (body > abody / 5 or usebod == false)
dn = trend == -1 and (close > open or usecol == false) and (body > abody / 5 or usebod == false)

//Lines
plot(center, color = blue, linewidth = 3, transp = 0, title = "PriceChannel Center")

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

//Trading
if up
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()
    

Más.