Estrategia de reversión de precios orientada al espacio


Fecha de creación: 2023-11-27 11:40:36 Última modificación: 2023-11-27 11:40:36
Copiar: 0 Número de Visitas: 563
1
Seguir
1617
Seguidores

Estrategia de reversión de precios orientada al espacio

Descripción general

La estrategia de inversión de precios orientada espacialmente determina la dirección de la tendencia de la fluctuación de precios calculando la línea central del canal de precios. Cuando el precio se acerca a la línea central del canal, se emite una señal de venta o ventaja. La estrategia combina varias condiciones de filtrado para buscar oportunidades de negociación de alta probabilidad.

Principio de estrategia

El indicador central de la estrategia es la línea central del canal de precios. La forma de calcular es tomar el promedio de los precios más altos y más bajos de las 30 líneas K más recientes. Se considera una tendencia alcista cuando el punto bajo está por encima de la línea central y una tendencia bajista cuando el punto alto está por debajo de la línea central.

La estrategia solo emite una señal de negociación cuando el contexto de la tendencia cambia. Es decir, en un contexto ascendente, solo se pone en blanco cuando la línea K se vuelve roja; en un contexto descendente, solo se hace más cuando la línea K se vuelve verde.

Además, la estrategia también establece condiciones de doble filtración: filtración de entes de la barra y filtración de barras de canal de precio. La señal se activa solo cuando el volumen de la barra es mayor al 20% del promedio; para abrir una posición, debe haber una señal de tendencia continua durante el ciclo de filtración.

Análisis de las ventajas

La combinación de tendencias, zonas de valor y formas de la línea K es una estrategia de inversión muy eficiente. Las principales ventajas son:

  1. Utilice el canal de precios para determinar las tendencias principales y evitar ser engañado por los mercados convulsivos.
  2. El punto de selección está cerca de la línea central del canal de precios, en una zona de bajo y alto precio clásico.
  3. El filtro de las entidades de la línea K y de las barras de canal aumenta la calidad de la señal y reduce la tasa de fallas.
  4. La mayoría de los inversores de divisas están en la misma posición que los inversores de divisas, pero solo en los puntos de inflexión más claros.

Riesgos y soluciones

El principal riesgo de esta estrategia proviene de haber perdido el punto de inflexión de los precios y no haber esperado la señal. Se puede optimizar mediante los siguientes métodos:

  1. Ajustar la rigurosidad de las condiciones de filtración y reducir los estándares de filtración puede reducir la tasa de fugas.
  2. Se puede aumentar la posición al inicio de la tendencia de reversión y seguir la tendencia de ganancias.
  3. En combinación con otros indicadores para juzgar la intensidad de la señal de inversión, las condiciones de filtración de interferencia subjetiva.

Dirección de optimización

La estrategia puede ser optimizada en los siguientes aspectos:

  1. Los parámetros de optimización, como el ciclo de ajuste de precios del canal, el número de barras del canal, etc.
  2. Incrementar las estrategias de stop loss, que se detienen cuando se alcanza una cierta proporción de pérdidas.
  3. En combinación con el volumen de transacciones, el volumen puede interferir con la intensidad de las condiciones de filtración.
  4. Aumentar la probabilidad de reversión de tendencias en modelos de aprendizaje automático en lugar de filtros simples.

Resumir

La estrategia de reversión de precios orientada al espacio determina el momento de reversión a través del canal de precios y genera una señal de alta calidad con el establecimiento de condiciones de doble filtración. Basada en la optimización de parámetros y el control de ventilación, es una estrategia de cuantificación confiable.

Código Fuente de la Estrategia
/*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()