Estratégia de tendência de baixa baseada em EMA e retrações de Fibonacci


Data de criação: 2023-09-21 21:36:16 última modificação: 2023-09-21 21:36:16
cópia: 1 Cliques: 827
1
focar em
1617
Seguidores

Visão geral

Esta estratégia usa o indicador EMA para determinar a direção da tendência e, em combinação com a retracção de Fibonacci, determina automaticamente o ponto de reversão, alcançando um preço baixo e alto, capturando a tendência de queda. A estratégia é usada com frequência e é adequada para a negociação de linhas curtas.

Princípio da estratégia

  1. O EMA de 9 dias e o EMA de 21 dias são usados para determinar a direção da tendência. O EMA de 21 dias e o EMA de 55 dias são considerados sinais de início de tendência descendente.

  2. O indicador de retração de Fibonacci adaptado, com duração de 100 ciclos, determina automaticamente a proporção de retração crítica com base na amplitude da recente oscilação de preços.

  3. Quando o preço ultrapassa a retracção de Fibonacci de 0,236, é considerado um sinal de inversão e a posição de equilíbrio é mantida.

  4. Quando a 9a EMA atravessa a 21a EMA e o preço está abaixo do ponto mais alto de Fibonacci, faça a entrada em branco.

  5. A condição de saida de ganhos múltiplos é a quebra da EMA de 200 dias. A condição de saida de perdas aéreas é a quebra da retracção de Fibonacci de 0,236.

Vantagens estratégicas

  • O EMA é usado para determinar a direção da tendência e os sinais de operação são simples e claros.

  • Adaptação à retirada de Fibonacci sem necessidade de definição de parâmetros manualmente

  • Operação de estratégia frequente, captura de mudanças de linha curta, implementação de estratégias de alta frequência

  • Utilização de pontos de retração críticos para determinar a reversão e a parada de prejuízos

  • Parâmetros configuráveis, estratégias de otimização para adaptar-se a diferentes ciclos

Risco estratégico

  • Indicadores da EMA estão atrasados e precisam de ser confirmados em combinação com outros indicadores

  • Adaptação de Fibonacci pode ser otimização excessiva, ponto de retirada instável

  • Transações de alta frequência aumentam custos de transação e custos de deslizamento

  • Não é possível filtrar a tendência de oscilação, há muitos sinais errados

  • Gestão da retirada e controle da margem de lucro precisam ser melhorados

Direção de otimização da estratégia

  • Aumentar os indicadores de energia e evitar erros de sinalização causados por desvios de preço

  • Optimizar os parâmetros do ciclo EMA para que estejam mais em sintonia com o atual cenário de mercado

  • Configurar o stop loss dinâmico para melhor controlar o risco

  • Indicadores de tendência forte combinados com indicadores de tendência fraca para evitar a repetição de transações em períodos de turbulência

  • Considerando o impacto dos custos reais de transação, estabeleça um limite mínimo de queda

Resumir

Esta estratégia usa EMA para determinar a direção da tendência e utiliza a retracção de Fibonacci para determinar o ponto de reversão, adaptando-se automaticamente a diferentes mudanças no mercado. No entanto, a estratégia depende mais de indicações de indicadores, falta de segmentação de tendência e lógica de julgamento de ondas, com maior espaço para otimização. No geral, como uma estratégia de negociação de linha curta de alta frequência, pode capturar mudanças de preços mais rápidas, mas exige que os comerciantes assumam o risco de perdas frequentes e evitem problemas de negociação excessiva.

Código-fonte da estratégia
/*backtest
start: 2023-08-21 00:00:00
end: 2023-09-20 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/
// © CheatCode1

//@version=5
strategy("CC-Trend strategy 2", overlay=true, initial_capital = 10000, commission_type = strategy.commission.percent, commission_value = 0.01, default_qty_type =  strategy.percent_of_equity, default_qty_value = 100 )
ema9 = ta.ema(close, 9)
ema21 = ta.ema(close, 21)
ema55 = ta.ema(close, 55)
ema200 = ta.ema(close, 200)


plot(ema200, '22', color.blue, 2)

FibL = input.int(100, 'Fibonacci Length', 1, 500, group = 'Automatic Fibonacci Retracement')
len1 = input.int(1, 'Show Last', 0, 1000, group = 'Automatic Fibonacci Retracement')
len2 = input.int(5, 'Offset Length', 0, 1000, group = 'Automatic Fibonacci Retracement')

highF = ta.highest(ema55 >= ema9 ? ema55:ema9, FibL)
lowF = ta.lowest(ema55 >= ema9 ? ema9:ema55, FibL)
AvgFib = highF - lowF

//Fibonacci Executions
LL2 = highF + .618 * AvgFib
LL1 = highF + .272 * AvgFib
L1 = highF
L236 = highF - 0.236 * AvgFib
L382 = highF - 0.382 * AvgFib
Mid =  highF - 0.50 * AvgFib
S382 = lowF + 0.382 * AvgFib
S236 = lowF + 0.236 * AvgFib
S1 = lowF
SS1 = lowF - .272 * AvgFib
SS2 = lowF - .618 * AvgFib
//Fibonacci Plot's


high2FP = plot(LL2, 'Highe2', color.red,offset = len2, show_last = len1, trackprice = true)
high1FP = plot(LL1, 'Highe1', color.red,offset = len2, show_last = len1, trackprice = true)
highFP = plot(highF, 'High', color.red,offset = len2, show_last = len1, trackprice = true)
L236P = plot(L236, "0.764", #ED381C, offset = len2, show_last = len1, trackprice = true )
L382P = plot(L382, "0.618", color.white,offset = len2, show_last = len1, trackprice = true )
MidP = plot(Mid, "0.5", color.orange,offset = len2, show_last = len1, trackprice = true )
S382P = plot(S382, "0.382", color.yellow ,offset = len2, show_last = len1, trackprice = true)
S236P = plot(S236, "0.236", color.lime ,offset = len2, show_last = len1, trackprice = true)
lowFP = plot(lowF, 'Low', color.green,offset = len2, show_last = len1, trackprice = true)
low1FP = plot(SS1, 'Lowe1', color.green,offset = len2, show_last = len1, trackprice = true)
low2FP = plot(SS2, 'Lowe2', color.green,offset = len2, show_last = len1, trackprice = true)

plot(ema9, '22', color.yellow, 2)

plot(ema55, '55', color.aqua, 2)

plot(ema200, '200', color.maroon, 2)



shortCondition = close[1] < highF and ema21 < ema55
if (shortCondition)
    strategy.entry("Short", strategy.short)

shorttp = ta.crossover(close, ema200) and strategy.openprofit >= 0
if (shorttp)
    strategy.close('Short', 'Short TP', qty_percent = 100)

shortclose2 = close[1] > L236 and not (shortCondition) 
if(shortclose2)
    strategy.close('Short', 'Short RM', qty_percent = 100)