
Visão geral
A estratégia é um sistema de negociação de acompanhamento de tendências baseado em médias móveis de múltiplos índices (EMA). Utiliza um cruzamento dourado formado por três linhas de equilíbrio EMA25, EMA50 e EMA100 para confirmar uma forte tendência ascendente e, quando o preço ultrapassa a EMA25, para entrar em ações. A estratégia usa um stop loss dinâmico e um stop loss em ações para gerenciar riscos e ganhos.
Princípio da estratégia
A lógica central da estratégia inclui as seguintes partes principais:
- Confirmação de tendência: usando EMAs de três períodos diferentes (de 25, 50, 100), quando a média curta está acima da média média e a média média está acima da média longa, forma-se uma forma de cruz dourada, confirmando uma tendência ascendente.
- O sinal de entrada: com base na formação de um cruzamento de ouro, quando o preço de fechamento ultrapassa a EMA25 para cima, faça mais entrada em dois lotes de 50% de cada posição.
- Stop loss: Stop loss dinâmico baseado no preço mínimo dos últimos 20 ciclos e adição de um intervalo de proteção adicional ((0.0003)) para evitar falsas rupturas.
- Paragem de lote: estabeleça dois objetivos de paragem de múltiplos multiples (1, 0 e 1, 5), o primeiro grupo de posições sai quando o objetivo de paragem mais baixo é atingido, o segundo grupo de posições sai quando o objetivo de paragem mais alto é atingido.
- Proteção de término de tendência: Quando o preço cai abaixo da EMA100, um sinal de parada de todas as posições é acionado para evitar perdas causadas pela reversão da tendência.
Vantagens estratégicas
- Mecanismo de confirmação múltipla: o uso combinado de múltiplos equilíbrios permite a filtragem eficaz de sinais falsos e melhora a confiabilidade das transações.
- Gerenciamento de risco dinâmico: os limites de perda são ajustados dinamicamente com base nas flutuações do mercado em tempo real e são mais adaptáveis.
- Construção em lotes de depósitos e paradas: por meio de operações em lotes, pode-se bloquear parte dos lucros e, ao mesmo tempo, manter os lucros em movimento, maximizando os lucros.
- Mecanismo de proteção de tendência: configura a linha média de longo prazo como uma linha de alerta para a reversão da tendência, que permite parar os prejuízos em tempo hábil e evitar uma retirada drástica.
Risco estratégico
- Risco de atraso: O indicador de linha média tem atraso, o que pode levar a um atraso no momento de entrada e a perda do melhor ponto de compra.
- Risco de mercado de choque: em mercados de choque horizontal, brechas falsas frequentes podem levar a perdas contínuas.
- Risco de uma zona de amortização fixa: o uso de uma zona de amortização fixa pode não ser adequado para todos os cenários de mercado.
- Risco de gestão de fundos: A distribuição de posições fixas de 50% pode não ser suficientemente flexível.
Direção de otimização da estratégia
- Optimização de parâmetros dinâmicos: pode-se ajustar automaticamente o período de linha média e a zona de amortização de parada de acordo com a volatilidade do mercado.
- Filtragem de cenários de mercado: adicionar indicadores de força e volatilidade de tendências e ajustar parâmetros de estratégia em diferentes cenários de mercado.
- Optimização de gerenciamento de posições: ajuste dinâmico do tamanho das posições com base na volatilidade e no valor líquido da conta.
- Otimização do tempo de entrada: pode ser combinado com outros indicadores técnicos (como RSI, MACD, etc.) para otimizar o tempo de entrada.
- Otimização do modo de travagem: pode-se introduzir um mecanismo de travagem móvel, para melhor proteger as carrinhas já lucrativas.
Resumir
A estratégia, por meio de múltiplas combinações de linhas médias e operações em lotes, constrói um sistema de negociação de acompanhamento de tendências mais completo. A vantagem da estratégia reside na combinação de vários elementos-chave de acompanhamento de tendências e gerenciamento de risco, mas ainda requer otimização de parâmetros e melhorias de regras com base na situação real do mercado.
Código-fonte da estratégia
/*backtest
start: 2024-11-19 00:00:00
end: 2024-12-18 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("Golden Cross with Customizable TP/SL", overlay=true)
// Parameters for EMA
ema_short_length = 25
ema_mid_length = 50
ema_long_length = 100
// Parameters for stop-loss and take-profit
lookback_bars = input.int(20, title="Lookback bars for lowest low")
pip_buffer = input.float(0.0003, title="Stop-loss buffer (pips)") // Fixed default pip value (e.g., 3 pips for 5-digit pairs)
tp_multiplier1 = input.float(1.0, title="Take-profit multiplier 1")
tp_multiplier2 = input.float(1.5, title="Take-profit multiplier 2")
// Calculate EMAs
ema25 = ta.ema(close, ema_short_length)
ema50 = ta.ema(close, ema_mid_length)
ema100 = ta.ema(close, ema_long_length)
// Golden Cross condition (EMA25 > EMA50 > EMA100)
golden_cross = ema25 > ema50 and ema50 > ema100
// Entry condition: Candle crosses above EMA25 after a golden cross
cross_above_ema25 = ta.crossover(close, ema25)
entry_condition = golden_cross and cross_above_ema25
// Stop-loss and take-profit calculation
lowest_low = ta.lowest(low, lookback_bars)
var float entry_price = na
var float stop_loss = na
var float take_profit1 = na
var float take_profit2 = na
if (entry_condition)
entry_price := close
stop_loss := lowest_low - pip_buffer
take_profit1 := entry_price + (entry_price - stop_loss) * tp_multiplier1
take_profit2 := entry_price + (entry_price - stop_loss) * tp_multiplier2
strategy.entry("Buy1", strategy.long, qty=0.5) // First 50%
strategy.entry("Buy2", strategy.long, qty=0.5) // Second 50%
// Separate exit conditions for each entry
cross_below_ema100 = ta.crossunder(close, ema100)
exit_condition1 = close >= take_profit1
exit_condition2 = close >= take_profit2
exit_condition_sl = close <= stop_loss
if (exit_condition1 or cross_below_ema100)
strategy.close("Buy1")
if (exit_condition2 or cross_below_ema100 or exit_condition_sl)
strategy.close("Buy2")
// Plot EMAs
plot(ema25, color=color.blue, title="EMA 25")
plot(ema50, color=color.orange, title="EMA 50")
plot(ema100, color=color.red, title="EMA 100")