
Esta estratégia é um sistema clássico de acompanhamento de tendências. Utiliza a média móvel para determinar a direção da tendência, e entra em jogo ao romper o canal de Dongxian. A configuração de parâmetros do canal de Dongxian para 50 dias é eficaz para filtrar o ruído do mercado de curto prazo.
A estratégia baseia-se principalmente nos seguintes pontos:
O indicador de determinação de tendências é construído usando médias móveis indexadas de 40 e 120 dias. Quando a linha rápida atravessa a linha lenta de baixo, é um sinal de bifurcação, indicando entrada em uma tendência ascendente; Quando a linha rápida atravessa a linha lenta de cima para baixo, é um sinal de bifurcação, indicando entrada em uma tendência descendente.
O parâmetro de passagem de Dongxian é definido como 50 dias, filtrando as flutuações de curto prazo do mercado. Apenas faça mais quando o preço se eleva e faça menos quando ele desce, evitando ser coberto.
O ponto de parada de perda é definido como o quadruplo do ATR abaixo do preço. O ATR é uma medida eficaz da volatilidade e do risco do mercado, e o ponto de parada de perda é definido como um determinado múltiplo que permite controlar os prejuízos de uma única transação.
As médias móveis indexadas são mais alinhadas com a tendência atual dos preços, enquanto as médias móveis simples são muito suaves.
O prazo de passagem de 50 dias é usado em combinação com a linha média de 40 e 120 dias para filtrar efetivamente as brechas falsas.
A estratégia tem as seguintes vantagens:
A combinação de médias móveis é eficaz para determinar a direção da tendência do mercado. A média de 40 dias pode capturar tendências de curto prazo e a média de 120 dias pode determinar tendências de médio e longo prazo.
O canal de Dongxian filtra o ruído e evita a perseguição de alta e baixa. Apenas os preços quebram o canal para entrar, evitando efetivamente a zona de turbulência no meio do mercado de negociação.
O ponto de parada é definido de forma razoável para controlar a perda de uma única transação, evitando a ruptura de posição. O controle de perdas individuais pode garantir a sustentabilidade dos lucros.
A média móvel indexada é mais adequada à tendência de mudança de preços, o sistema pode ser mantido por mais tempo, de acordo com a filosofia de negociação de tendências.
A escolha dos parâmetros da média móvel tem em conta a sensibilidade da captura de tendências e a estabilidade do ruído de filtragem.
A estratégia também apresenta alguns riscos:
Risco de manter uma posição a longo prazo: Esta estratégia é uma estratégia de acompanhamento de tendências, e você terá um grande prejuízo se ocorrer um longo corte horizontal ou uma reversão de tendência.
Risco de Falso Breakout: Quando o preço toca perto do canal, uma proporção de Falso Breakout pode ocorrer, resultando em transações desnecessárias.
Risco de configuração de parâmetros: a configuração de parâmetros de média móvel e de canal é muito subjetiva, e os diferentes mercados precisam ajustar a combinação de parâmetros, ou afetarão a estabilidade do sistema.
Pequeno risco de ponto de parada: o ponto de parada definido é pequeno demais, e você enfrentará muitos pontos de parada, afetando o lucro.
Resolução:
A estratégia pode ser melhorada nas seguintes direções:
Teste combinações de diferentes medianas para encontrar a melhor combinação de parâmetros. Pode testar combinações de médias móveis simples, índices e Hull.
Otimização do ciclo e parâmetros do canal para tornar o sinal de ruptura mais eficiente. Pode ser otimizado com a frequência de flutuação do mercado.
Optimizar a estratégia de stop loss, usando stop loss de seguimento de tendência durante a execução da tendência e stop loss fixo após o término da tendência.
A utilização de MACD, KD e outros indicadores para a verificação de múltiplos fatores para melhorar a precisão do sinal.
Aumentar as estratégias de gestão de posições, aumentar as posições durante a corrida de tendências e otimizar os lucros.
Selecionar combinações de parâmetros de acordo com as características de diferentes variedades, para que os parâmetros do sistema sejam mais robustos.
Esta estratégia é mais típica e simples como um sistema de acompanhamento de tendências. O núcleo está no uso de médias móveis e filtragem de ruptura de canais. A estratégia de stop loss também é clássica e prática.
/*backtest
start: 2023-10-15 00:00:00
end: 2023-11-14 00:00:00
period: 1h
basePeriod: 15m
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/
// © Robrecht99
//@version=5
strategy("Long Term Trend Following System", overlay=true, margin_long=0, margin_short=0, pyramiding=4)
// Backtest Range //
Start = input(defval = timestamp("01 Jan 2017 00:00 +0000"), title = "Backtest Start Date", group = "backtest window")
Finish = input(defval = timestamp("01 Jan 2100 00:00 +0000"), title = "Backtest End Date", group = "backtest window")
//Moving Averages //
len1 = input.int(40, minval=1, title="Length Fast EMA", group="Moving Average Inputs")
len2 = input.int(120, minval=1, title="Length Slow EMA", group="Moving Average Inputs")
src1 = input(close, title="Source Fast MA")
src2 = input(close, title="Source Slow MA")
maFast = input.color(color.new(color.red, 0), title = "Color Fast EMA", group = "Moving Average Inputs", inline = "maFast")
maSlow = input.color(color.new(color.blue, 0), title = "Color Slow EMA", group = "Moving Average Inputs", inline = "maSlow")
fast = ta.ema(src1, len1)
slow = ta.ema(src2, len2)
plot(fast, color=maFast, title="Fast EMA")
plot(slow, color=maSlow, title="Slow EMA")
// Donchian Channels //
Length1 = input.int(title="Length Upper Channel", defval=50, minval=1, group="Donchian Channels Inputs")
Length2 = input.int(title="Length Lower Channel", defval=50, minval=1, group="Donchian Channels Inputs")
h1 = ta.highest(high[1], Length1)
l1 = ta.lowest(low[1], Length2)
fillColor = input.color(color.new(color.purple, 95), title = "Fill Color", group = "Donchian Channels Inputs")
upperColor = input.color(color.new(color.orange, 0), title = " Color Upper Channel", group = "Donchian Channels Inputs", inline = "upper")
lowerColor = input.color(color.new(color.orange, 0), title = " Color Lower Channel", group = "Donchian Channels Inputs", inline = "lower")
u = plot(h1, "Upper", color=upperColor)
l = plot(l1, "Lower", color=upperColor)
fill(u, l, color=fillColor)
strategy.initial_capital = 50000
//ATR and Position Size //
length = input.int(title="ATR Period", defval=14, minval=1, group="ATR Inputs")
risk = input(title="Risk Per Trade", defval=0.01, group="ATR Inputs")
multiplier = input(title="ATR Multiplier", defval=2, group="ATR Inputs")
atr = ta.atr(length)
amount = (risk * strategy.initial_capital / (multiplier * atr))
// Buy and Sell Conditions //
entrycondition1 = ta.crossover(fast, slow)
entrycondition2 = fast > slow
sellcondition1 = ta.crossunder(fast, slow)
sellcondition2 = slow > fast
// Buy and Sell Signals //
if (close > h1 and entrycondition2)
strategy.entry("long", strategy.long, qty=amount)
stoploss = close - atr * 4
strategy.exit("exit sl", stop=stoploss, trail_offset=stoploss)
if (sellcondition1 and sellcondition2)
strategy.close(id="long")
if (close < l1 and sellcondition2)
strategy.entry("short", strategy.short, qty=amount)
stoploss = close + atr * 4
strategy.exit("exit sl", stop=stoploss, trail_offset=stoploss)
if (entrycondition1 and entrycondition2)
strategy.close(id="short")