Estrategia de red de seguimiento de tendencias


Fecha de creación: 2023-12-08 12:05:17 Última modificación: 2023-12-08 12:05:17
Copiar: 0 Número de Visitas: 1241
1
Seguir
1621
Seguidores

Estrategia de red de seguimiento de tendencias

Descripción general

La estrategia es una estrategia de seguimiento de la red de tendencias que solo hace más y no hace hueco, elige el momento de la gran tendencia hacia arriba. El tamaño de la red predeterminado es 1x el ATR, el seguimiento hacia abajo establece una red de nivel 1, 2 y 3 para el seguimiento, el bloqueo de la 5a línea. Si el precio se rompe en una red cuando la posición vacía, toda la red se mueve hacia arriba para seguir el precio.

Principio de estrategia

  1. Utiliza la línea media de EMA para determinar la dirección de la tendencia general, EMA12 mayor que EMA144 para determinar la tendencia general al alza
  2. Las grandes tendencias al alza son las únicas opciones.
  3. El tamaño de la cuadrícula es 1x el ATR por defecto, el número de veces se puede ajustar
  4. Crear una red de 1, 2 y 3 para rastrear los precios hacia abajo y abrir más posiciones.
  5. Gráfica 5 para establecer el punto de parada
  6. Establecer un punto de parada y un punto de parada después de abrir una posición
  7. Cuando el precio sube más allá del punto de equilibrio
  8. Cuando la caída de los precios desencadena un punto de paridad de pérdidas
  9. Cuando las posiciones están completamente cerradas, si el precio vuelve a romper la última rejilla, vuelve a calcular la posición y la cantidad de la rejilla, y sigue hacia arriba

La estrategia utiliza EMA para determinar la dirección de la tendencia general, y luego se combina con la estrategia de la red para realizar un seguimiento, lo que permite obtener mayores ganancias en la tendencia ascendente de la tendencia general. La red establece varios puntos de precio, construye una posición en lotes y reduce el riesgo de una sola posición. La configuración de stop loss permite que los beneficios se bloqueen y también controla la pérdida máxima.

Análisis de las ventajas

  1. Utiliza la EMA para determinar la dirección de las grandes tendencias y evitar posiciones a la inversa
  2. La estrategia de la red permite construir almacenes en grupos y reducir el riesgo de un solo almacén
  3. La configuración Stop Loss bloquea las ganancias y controla las pérdidas máximas
  4. Una vez que la posición se estabiliza, se puede volver a calcular la red para seguir ganando, ampliando el espacio de ganancias.

La principal ventaja de esta estrategia es que combina el comercio de tendencias y el comercio de la red, lo que garantiza la corrección de la dirección de la tendencia y la dispersión del riesgo de la estrategia de la red. Además, la redirección de la red después de la posición de posición se puede recuperar indefinidamente, lo que genera una gran ganancia en caso de una ola.

Análisis de riesgos

  1. La tendencia general puede estar equivocada y en la dirección equivocada
  2. El gobierno de la República Democrática del Congo (RDC) ha anunciado que el Gobierno de la República Democrática del Congo (RDC) ha anunciado que la situación se deteriorará.
  3. Las pérdidas alcanzaron el punto de parada demasiado rápido y las posiciones se cerraron por completo.
  4. No se puede volver al punto de entrada óptimo después de una rebote

El principal riesgo reside en el error en el juicio de la gran tendencia, lo que puede conducir a una posición de reversión y una gran pérdida. Además, si ocurre una gran sacudida en el mercado, las pérdidas se agravarán si varias grillas se encierran al mismo tiempo. Además, la caída rápida de los precios también puede provocar un alto de pérdidas.

Se puede mejorar la precisión de las grandes tendencias mediante la optimización de los parámetros de EMA. El ajuste de la distancia de la grilla y el número de primeras órdenes también puede controlar la pérdida total. La configuración de la posición de los puntos de parada necesita tener en cuenta la frecuencia de las fluctuaciones del mercado. Además, también se puede considerar que algunas posiciones se detuvieron después de obtener ganancias, en lugar de cerrar todas las posiciones.

Dirección de optimización

La estrategia también puede ser optimizada en las siguientes direcciones:

  1. Optimización de los parámetros de EMA para mejorar la precisión de las grandes tendencias
  2. Ajuste de la distancia entre las rejillas y la cantidad para optimizar el riesgo-beneficio
  3. Mejorar la lógica de stop loss, como el stop de posiciones parciales, el stop de movimiento, etc.
  4. Aumentar las restricciones de reingreso para evitar reingresos prematuros en el proceso de rebote
  5. Combina más indicadores para determinar el momento de entrada, como la forma de la línea K, la sensibilidad de los indicadores, etc.
  6. Aumentar el conocimiento de las situaciones anormales y evitar grandes pérdidas en situaciones anormales

Mediante estas optimizaciones, la estrategia puede obtener mayores ganancias en el escenario general, mientras que los riesgos pueden ser controlados y las pérdidas reducidas en el escenario de movimiento de la oscilación normal.

Resumir

La estrategia es una combinación orgánica de comercio de tendencias y comercio de la red. Utiliza la EMA para determinar la dirección general, y luego utiliza la estrategia de la red para construir posiciones por lotes. El control del riesgo está en su lugar, con un mecanismo de seguimiento del stop loss y el recálculo de la red.

Código Fuente de la Estrategia
/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © zxcvbnm3260

//@version=5
strategy("grid strategy long", overlay=true)


// 版本更新记录:
// v1.0 2021/11/09 只做多、不做空,选择大趋势向上的时间段。网格大小默认为1倍ATR,往下1、2、3个网格吃单,第5个网格止损。空仓时到达往上一个网格则网格整体抬升。(Only go long, not short, choose a time period when the general trend is up. The default grid size is 1x ATR, the next one, two, and three grids will take orders, and the fifth grid will stop loss. When the empty position reaches the upper grid, the grid as a whole rises.)


X_ATR = input.float(title='网格大小是多少倍ATR?', defval = 1)


// 1.基础变量
ema169 = ta.ema(close, 169)
ema144 = ta.ema(close, 144)
ema12 = ta.ema(close, 12)

ema576 = ta.ema(close, 576)
ema676 = ta.ema(close, 676)

plot(ema169, color=color.new(color.orange, 0), linewidth=2)
// plot(ema144, color=color.orange)
plot(ema12,  color=color.blue)
// plot(ema676, color=color.orange, linewidth=1)

mtr = math.max(high - low, math.abs(close[1] - high), math.abs(close[1] - low))
atr = ta.ema(mtr, 30)

is_0930 = hour(time, 'GMT-4') == 9  and minute(time, 'GMT-4') == 30
is_1500 = hour(time, 'GMT-4') == 15 and minute(time, 'GMT-4') == 00
is_1530 = hour(time, 'GMT-4') == 15 and minute(time, 'GMT-4') == 30

is_yangxian = close>open
is_yinxian = close<open

// 2.基本趋势标记

big_trend  = ema12 >= ema169 ? 1 : 0
big_trend2 = ema12 <= ema169 ? 1 : 0

// 背景的变色处理:
bgcolor(big_trend == 1 ? color.new(color.green, 90) : color.new(color.red, 90) )

// 3.网格点位初始化

grid_size = atr * X_ATR // 网格大小
        
price_entry1 = open - grid_size*1
price_entry2 = open - grid_size*2
price_entry3 = open - grid_size*3
price_stop_loss = open - grid_size*5

price_exit1 = price_entry1 + grid_size*1
price_exit2 = price_entry2 + grid_size*1
price_exit3 = price_entry3 + grid_size*1

qty1 = int(1000/price_entry1)
qty2 = int(1000/price_entry2)
qty3 = int(1000/price_entry3)


// 标出各种点位
slm_lines_time(time, price_entry1, price_entry2, price_entry3, price_stop_loss, price_exit1)=>
    time2 = time + 1000*3600*24*5
    line.new(time, price_stop_loss, time2, price_stop_loss, color=color.red, xloc = xloc.bar_time, width=2)  // 止损位
    line.new(time, price_entry1, time2, price_entry1, color=color.green, xloc = xloc.bar_time)  // 
    line.new(time, price_entry2, time2, price_entry2, color=color.green, xloc = xloc.bar_time)  // 
    line.new(time, price_entry3, time2, price_entry3, color=color.green, xloc = xloc.bar_time)  // 
    line.new(time, price_exit1,  time2, price_exit1,  color=color.green, xloc = xloc.bar_time, width=2)  // 

slm_lines(time, price_entry1, price_entry2, price_entry3, price_stop_loss, price_exit1)=>
    line.new(bar_index, price_stop_loss, bar_index[5], price_stop_loss, color=color.red, xloc = xloc.bar_index, width=2)  // 止损位
    line.new(bar_index, price_entry1, bar_index[5], price_entry1, color=color.green, xloc = xloc.bar_index)  // 
    line.new(bar_index, price_entry2, bar_index[5], price_entry2, color=color.green, xloc = xloc.bar_index)  // 
    line.new(bar_index, price_entry3, bar_index[5], price_entry3, color=color.green, xloc = xloc.bar_index)  // 
    line.new(bar_index, price_exit1,  bar_index[5], price_exit1,  color=color.green, xloc = xloc.bar_index, width=2)  // 


// 4.网格点位更新和下单

is_entry0 = big_trend==1 and year>=2020

var is_entry = false

// 未进场时:
if is_entry0 and not is_entry
    is_entry := true
    
    grid_size := atr * X_ATR // 网格大小
    
    price_entry1 := close - grid_size*1
    price_entry2 := close - grid_size*2
    price_entry3 := close - grid_size*3
    price_stop_loss := close - grid_size*5
    
    price_exit1 := price_entry1 + grid_size*1
    price_exit2 := price_entry2 + grid_size*1
    price_exit3 := price_entry3 + grid_size*1
    
    qty1 := int(1000/price_entry1)
    qty2 := int(1000/price_entry2)
    qty3 := int(1000/price_entry3)
    
    // slm_lines(time, price_entry1, price_entry2, price_entry3, price_stop_loss, price_exit1)
    
    strategy.entry("open1", strategy.long, qty1, limit = price_entry1)
    strategy.entry("open2", strategy.long, qty2, limit = price_entry2)
    strategy.entry("open3", strategy.long, qty3, limit = price_entry3)
    
    strategy.exit("close1", qty = qty1, limit = price_exit1, stop = price_stop_loss)
    strategy.exit("close2", qty = qty2, limit = price_exit2, stop = price_stop_loss)
    strategy.exit("close3", qty = qty3, limit = price_exit3, stop = price_stop_loss)

// 已进场的各类情况

// 1.止损
if is_entry and close <= price_stop_loss
    strategy.close_all()
    is_entry := false

// 2.网格抬升
if is_entry and close >= price_exit1
    is_entry := false