
A estratégia é uma estratégia de negociação de algoritmo de seguimento de tendência, que emite um sinal de negociação ao calcular a linha média EMA de dois parâmetros diferentes e ao ocorrer uma cruz de ouro (Golden Cross) e uma cruz de morte (Death Cross). A estratégia combina simultaneamente várias linhas de EMA para uma saída lucrativa e configura um ponto de parada para controlar o risco.
A estratégia usa 4 EMAs, um conjunto de EMAs rápidas e EMAs lentas, cujo cruzamento é usado para gerar sinais de compra e venda. Além disso, a estratégia usa duas EMAs intermediárias entre os parâmetros de EMAs rápidas para sair da posição antecipadamente, parcialmente ou totalmente, para bloquear os lucros.
Especificamente, quando o EMA rápido atravessa o EMA lento, gera um sinal de compra; quando o EMA rápido atravessa o EMA lento, gera um sinal de venda. Esta é uma estratégia típica de cruzamento de duas médias móveis EMA.
Além disso, a estratégia também estabelece dois pontos de parada para a linha longa e curta, para evitar a expansão dos prejuízos. Concretamente, o limite de parada para a linha múltipla é de 6% do preço de entrada e o limite de parada para a linha vazia é de 3% do preço de entrada.
As principais vantagens da estratégia em relação à típica estratégia de cruzamento de médias móveis de duas EMAs são:
A configuração de várias EMAs para a retirada de lucros permite um melhor bloqueio de lucros e evita a redução de lucros em retrações subsequentes.
As posições em aberto têm uma menor amplitude de parada, que pode suportar uma maior oscilação do normal, evitando a perda de parada frequente.
Configurar diferentes parâmetros de EMA para uma saída lucrativa, e escolher o melhor ponto de saída de acordo com a situação do mercado.
A estratégia global possui uma melhor capacidade de rastreamento de tendências e pode capturar os efeitos colaterais das tendências de linha média e longa.
Os principais pontos de risco da estratégia incluem:
Em situações de turbulência, os sinais de negociação gerados pela linha média do EMA são frequentes e podem gerar excesso de negociação.
O ponto de parada de linha curta só previne situações extremas e não previne a retirada da conta estratégica.
O risco de retração da estratégia permanece, e os ganhos podem ser reduzidos significativamente quando confrontados com um ajuste de tendências de longo prazo.
A política é sensível a ajustes de parâmetros, e uma configuração incorreta pode causar falhas na política.
Considerando os riscos acima mencionados, a estratégia pode ser otimizada em vários aspectos:
Aumentar os algoritmos de aprendizagem de máquina para auxiliar o julgamento de tendências e reduzir a probabilidade de transações erradas.
Aumentar o mecanismo de suspensão de perdas adaptável, que pode ajustar dinamicamente a suspensão de perdas de acordo com a volatilidade do mercado.
Configurar a taxa de utilização dos fundos, evitar que a conta estratégica seja excessivamente utilizada e aumentar o mecanismo de gestão de posições.
Selecionar variedades de negociação, escolher indicadores de tendências evidentes e de maior volatilidade.
Adição de módulos de otimização de parâmetros para otimização e atualização automática de parâmetros.
A estratégia de cruzamento de duas médias móveis de EMA é, em geral, uma estratégia de acompanhamento de tendências mais econômica. Ela possui vantagens como a configuração de várias médias de EMA para saida e saída lucrativa, pequeno stop loss e forte capacidade de acompanhamento de tendências.
/*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.