Estratégia de grade de acompanhamento de tendências


Data de criação: 2023-12-08 12:05:17 última modificação: 2023-12-08 12:05:17
cópia: 0 Cliques: 1241
1
focar em
1621
Seguidores

Estratégia de grade de acompanhamento de tendências

Visão geral

Esta estratégia é uma estratégia de rastreamento de grelha de tendência que faz apenas mais e não faz vazio, escolhendo um período de alta de tendência maior. O tamanho da grelha padrão é 1x ATR, o rastreamento para baixo estabelece grelhas de nível 1, 2 e 3 para o acompanhamento, e a paralisação do 5o nível.

Princípio da estratégia

  1. A linha média da EMA é usada para determinar a direção da grande tendência, EMA12 maior do que EMA144 é considerada a grande tendência para cima
  2. Só faça mais quando há uma grande tendência de alta
  3. O tamanho da grade é o padrão de 1x ATR, podendo ser ajustado para multiplicar
  4. Criar grades de 1, 2 e 3 para rastrear o preço para baixo, abrir mais posições e fazer mais
  5. Setup do ponto de parada na grade 5
  6. Estabelecer um ponto de parada e um ponto de parada após a abertura da posição
  7. Quando os preços subiram, o ponto de equilíbrio foi ultrapassado.
  8. Quando a queda dos preços desencadeia um ponto de paralisação
  9. Quando todas as posições estiverem liquidadas, se o preço re-quebrar a última grelha, recalcule a posição e o número da grelha, rastreando para cima

A estratégia de determinar a direção da grande tendência através da EMA, em combinação com a estratégia de grade para o acompanhamento, pode obter maiores ganhos em grandes tendências de alta. A grade configura vários pontos de preço, construção em lotes de posições, pode reduzir o risco de uma posição.

Análise de vantagens

  1. A EMA pode ser usada para determinar a direção da tendência e evitar posições adversas
  2. A estratégia de grelha permite a construção de armazéns em lotes, reduzindo o risco de um único armazém
  3. Parar para bloquear o lucro e controlar a perda máxima
  4. A rede pode ser recalculada após a liquidação da posição para continuar a recuperar e expandir a margem de lucro

A principal vantagem da estratégia é a combinação de negociação de tendências e negociação de grades, garantindo a correção da direção da tendência e a dispersão de risco da estratégia de grades. Além disso, a redefinição da grades após a liquidação da posição permite um retorno ilimitado, resultando em grandes lucros em caso de uma grande onda.

Análise de Riscos

  1. A tendência pode estar errada, na direção errada
  2. A rede de televisão teve um grande choque, com perdas excessivas.
  3. Perdas atingiram o ponto de parada muito rápido e as posições se estabilizaram
  4. Não é possível voltar a entrar no ponto de entrada ideal após a rebelião

O principal risco é o erro de julgamento da grande tendência, o que pode levar à construção de posições contrárias e a grandes perdas. Além disso, se houver uma forte onda de choque, os perdas serão agravados caso várias grades sejam presas ao mesmo tempo.

Pode-se melhorar a precisão de determinação de grandes tendências através da otimização dos parâmetros EMA. Ajustar o intervalo da grelha e o número de entradas iniciais também pode controlar o prejuízo total. A configuração do ponto de parada precisa levar em conta a frequência de flutuação do mercado. Além disso, pode-se considerar que algumas posições foram fechadas após o lucro, em vez de todas as posições livres.

Direção de otimização

A estratégia também pode ser melhorada nas seguintes direções:

  1. Optimizar os parâmetros da EMA para melhorar a precisão do julgamento das grandes tendências
  2. Ajustar o intervalo e o número de grades para otimizar a relação de risco-benefício
  3. Melhorar a lógica de stop loss, como paralisação de posições parciais, stop loss móvel, etc.
  4. Aumentar as restrições de reingressos para evitar reingressos prematuros durante o processo de recuperação
  5. Combinação de mais indicadores para determinar o tempo de entrada, como a forma da linha K, a sensibilidade do indicador, etc.
  6. Aumentar o julgamento de situações anormais e evitar perdas em situações anormais

Através dessas medidas de otimização, a estratégia pode obter maiores ganhos em situações de grande mercado, enquanto controla o risco e reduz os prejuízos em situações de choque normal.

Resumir

A estratégia é uma combinação orgânica de negociação de tendências e negociação de grades. Ela usa a EMA para determinar a direção geral e, em seguida, utiliza a estratégia de grades para construir posições em lotes. O risco está controlado, há um mecanismo de rastreamento de perda de parada e recálculo da grade.

Código-fonte da estratégia
/*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