Estratégia de cruzamento de dupla EMA de acompanhamento do ímpeto

Autora:ChaoZhang, Data: 2024-02-26 16:40:29
Tags:

img

Resumo

Esta estratégia é uma estratégia de negociação algorítmica de tendência. Ela calcula duas linhas EMA com parâmetros diferentes e gera sinais de negociação quando a Cruz de Ouro e a Cruz da Morte ocorrem entre as duas EMAs. A estratégia também combina várias linhas EMA para saída de lucro e define pontos de stop loss para controlar riscos.

Princípio da estratégia

A estratégia utiliza 4 linhas EMA, incluindo uma EMA rápida e uma EMA lenta, cujo cruzamento é usado para gerar sinais de compra e venda.

Especificamente, quando a EMA rápida cruza acima da EMA lenta, um sinal de compra é gerado. Quando a EMA rápida cruza abaixo da EMA lenta, um sinal de venda é gerado. Esta é uma estratégia típica de cruzamento de EMA dupla. Para acompanhar melhor as tendências e aumentar a lucratividade, depois de entrar em uma posição, a estratégia sairá seletivamente de parte ou de toda a posição quando a EMA rápida cruza acima da segunda linha EMA ou quando a EMA rápida cruza abaixo da terceira linha EMA.

Além disso, a estratégia estabelece pontos de stop loss tanto longos como curtos para evitar perdas excessivas, especificamente, o stop loss para posições longas é fixado em 6% do preço de entrada e 3% para posições curtas.

Análise das vantagens

Em comparação com uma estratégia de cruzamento típica de dupla EMA, as principais vantagens desta estratégia incluem:

  1. A criação de várias linhas EMA para a saída de lucros pode garantir melhor os lucros e evitar a contração dos lucros durante os retrocessos subsequentes.

  2. A posição curta possui um stop loss menor, que pode suportar flutuações normais do mercado mais elevadas e evitar frequentes stop loss.

  3. A definição de linhas EMA com diferentes parâmetros para a saída de lucro permite escolher o ponto de saída ideal com base nas condições de mercado.

  4. A estratégia global tem uma boa capacidade de acompanhamento das tendências para obter maiores lucros das tendências a médio e longo prazo.

Análise de riscos

Os principais riscos desta estratégia incluem:

  1. Nos mercados de intervalo, os sinais de negociação gerados pelas linhas EMA são frequentes, o que pode conduzir a um excesso de negociação.

  2. O stop-loss curto só pode evitar condições de mercado extremas e não pode impedir uma retirada significativa da conta de estratégia.

  3. O risco de recortes continua a existir e os lucros podem diminuir significativamente quando ocorre um ajustamento a longo prazo.

  4. A estratégia é sensível ao ajuste de parâmetros. Configuração incorreta pode causar falha da estratégia.

Optimização

Tendo em conta os riscos acima referidos, a estratégia pode ser otimizada nos seguintes aspectos:

  1. Aumentar os algoritmos de aprendizagem de máquina para ajudar no julgamento da tendência e reduzir as probabilidades de erros de negociação.

  2. Aumentar o mecanismo de stop loss adaptativo para ajustar dinamicamente o stop loss com base na volatilidade do mercado.

  3. Definir a utilização do capital para evitar a ocupação excessiva do capital e aumentar o mecanismo de gestão da posição.

  4. Selecionar produtos de negociação com tendências óbvias e fortes flutuações.

  5. Aumentar o módulo de otimização de parâmetros para obter otimização e atualização automática de parâmetros.

Conclusão

Em geral, a estratégia de cruzamento de dupla EMA é uma estratégia de tendência de seguimento de custo-benefício. Ela tem vantagens como múltiplas linhas EMA para a tomada de lucro, pequenas paradas curtas e boa capacidade de seguimento de tendência. No entanto, ainda há alguns riscos com esta estratégia. Precisa de otimização de ajuste de parâmetros e incorporação de algoritmos de aprendizado de máquina para melhorar a estabilidade. Em geral, esta estratégia é adequada para investidores com alguma experiência de negociação para realizar negociação de algoritmos.


/*backtest
start: 2023-02-19 00:00:00
end: 2024-02-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © RealTraderAkeme

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

////////////////////////////////////////////////////////////PARAMETERS/////////////////////////////////////////////////////////////////
emaFast_op = input(title="Fast_EMA", defval=6)
emaSlow_op = input(title="Slow_EMA", defval=26)
emaExit_op = input(title="Sell_EMA_Exit",defval=10)
emabuyExit_op = input(title="Buy_EMA_Exit",defval=20)
Order_Value = input(defval=1000, title="Order_Value in Pounds") 
Direction_Of_Trade = input(title="Trade Direction", defval="Both")


////////////////////////////////////////////////////////////INPUTS//////////////////////////////////////////////////////////////////

fastEMA = ta.ema(close, emaFast_op)
slowEMA = ta.ema(close,emaSlow_op)
emaExit = ta.ema(close,emaExit_op)
emabuyExit = ta.ema(close,emabuyExit_op)
Entry_Ratio = strategy.openprofit/Order_Value


//////////////////////////////////////////////////////////GRAPHS//////////////////////////////////////////////////////////////////

plot(fastEMA, color=color.orange, linewidth = 2)
plot(slowEMA,color = color.blue, linewidth = 2)
plot(emaExit,color = color.gray, linewidth = 2)
plot(series=emabuyExit, color= color.rgb(210, 74, 235), linewidth=2)


/////////////////////////////////////////////////////Conditions//////////////////////////////////////////////////////////////////////
longOK  = (Direction_Of_Trade == "Long") or (Direction_Of_Trade == "Both")
shortOK = (Direction_Of_Trade == "Short") or (Direction_Of_Trade == "Both")


///////////////////////////////////////////////////////////ENTRIES&EXITS///////////////////////////////////////////////////////////////
longCondition = ta.crossover(fastEMA, slowEMA) and longOK 
if (longCondition)  
    strategy.entry("Buy", strategy.long) 

shortCondition = ta.crossunder(fastEMA, slowEMA) and shortOK
if (shortCondition)
    strategy.entry("Sell", strategy.short)

if (strategy.position_size > 0 and shortCondition)
    strategy.exit(id="exit Buy", stop=close)
    
if (strategy.position_size < 0 and longCondition)
    strategy.exit(id="exit Sell", stop=close)


/////////////////////////////////////////////////////TAKE PROFIT CONDITIONS////////////////////////////////////////////////////////

if  ta.crossunder(fastEMA, emabuyExit) and Entry_Ratio > 0.08333
    strategy.close("Buy",comment = "Exit")

if  ta.crossover(fastEMA, emaExit) and Entry_Ratio > 0.016666
    strategy.close("Sell",comment = "Exit")


if Entry_Ratio > 0.4166666 //0.4166666 
    strategy.close("Buy",comment = "Exit", qty_percent = 100)

if Entry_Ratio > 0.0833333//0.0833333
    strategy.close("Sell",comment = "Exit")//50

if Entry_Ratio > 0.1111111//4000
    strategy.close("Sell",comment = "Exit", qty_percent = 50)

if ta.crossover(fastEMA, emaExit) and Entry_Ratio > 0.278 //Percentage 
    strategy.close("Sell",comment = "Exit")

////////////////////////////////////////////STOP LOSS AS PERCENTAGE OF ENTRY CONDITIONS///////////////////////////////////////////

if Entry_Ratio < -0.05555555555
    strategy.close("Buy",comment = "Exit")
if Entry_Ratio < -0.027777777777
    strategy.close("Sell",comment = "Exit")// The Sell Stoloss is half the buying stoploss.



Mais.