
Esta estratégia é uma estratégia de negociação de longo prazo baseada em EMAs. Utiliza EMAs de dois períodos diferentes como sinais de compra e venda, fazendo mais em EMAs de longo prazo em EMAs de curto prazo e fechando em EMAs de longo prazo em EMAs de curto prazo. Esta estratégia é uma estratégia de acompanhamento de tendências.
A estratégia usa o indicador de EMA como sinal de negociação. Concretamente, calcula-se o EMA de curto prazo e o EMA de longo prazo, respectivamente, gerando um sinal de compra quando o EMA de curto prazo atravessa o EMA de longo prazo e um sinal de venda quando o EMA de curto prazo atravessa o EMA de longo prazo.
Depois de entrar em uma posição, a estratégia configura um stop loss e um stop loss simultaneamente. O stop loss é uma porcentagem do preço de entrada como uma linha de stop loss, e se o preço tocar a linha de stop loss, a posição é parada; o stop stop é uma porcentagem do preço de entrada como uma linha de stop, e se o preço tocar a linha de stop loss, a posição é parada.
A estratégia também permite a opção de fazer apenas mais ou apenas menos, bem como a opção de negociar no dia ou manter a posição. Para negociar no dia, a posição zero é obrigatória antes do fechamento das ações americanas.
A estratégia tem as seguintes vantagens:
O EMA utiliza um indicador de filtragem de curvas para evitar a manipulação de ondas de alta frequência e captar as tendências de linha média e longa.
Utilize o cruzamento de EMA de curto e EMA de longo período como sinal de negociação, evitando negociações frequentes.
A configuração de um stop loss para controlar a taxa de risco-receita de cada ordem é benéfica para a gestão de fundos.
A opção de fazer apenas ativos ou ativos líquidos, bem como a opção de day trading ou a opção de posicionamento, é adequada para diferentes tipos de traders.
Compatível com vários tipos de transações, incluindo ações, divisas, moedas digitais, etc.
A estratégia também apresenta alguns riscos potenciais:
Os indicadores EMA estão atrasados e podem ter perdido o ponto de viragem de tendência de curto prazo.
A escolha incorreta de EMAs de curto e longo prazo pode levar a sinais de negociação confusos.
O excesso de tempo de detenção pode levar a um maior choque de mercado.
A paralisação mecânica pode levar a uma saída prematura ou a uma diminuição de lucro.
As medidas de gestão de riscos correspondentes incluem:
Optimizar os parâmetros EMA para encontrar a melhor combinação de ciclos.
Adicionar outros indicadores como critérios auxiliares.
Ajuste dinâmico de parada de perda.
Intervenção humana em situações anormais.
A estratégia pode ser otimizada nas seguintes direções:
Optimizar os parâmetros EMA para encontrar combinações de ciclo longo e curto adequadas para diferentes variedades.
A adição de outros indicadores de julgamento, como MACD, KD, etc., permite a ressonância de vários indicadores.
Aumentar o treinamento de modelos de aprendizagem de máquina, gerando um stop loss dinâmico.
Acesso a indicadores mais avançados de RISK para engenharia de características.
Adição de elementos de negociação adaptáveis para a otimização dos parâmetros.
A estratégia global é um excelente modelo de estratégia de acompanhamento de tendências, com a principal vantagem de usar o EMA para filtrar o ruído e obter ganhos estáveis, além de ter um bom gerenciamento de riscos e ganhos. Com a otimização contínua, a estratégia pode se tornar uma estratégia quantitativa para todos os mercados e vale a pena aprender e praticar.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA Crossover Strategy by Vikrant Singh", overlay=true)
// Input for EMA Lengths
var bool runningPOS = false
var float stopLossLevel = na
var float targetLevel = na
shortLength = input(11, title="Short EMA Length")
longLength = input(21, title="Long EMA Length")
// Input for Stop-Loss and Target
stopLossPct = input(1, title="Stop-Loss (%)")
targetPct = input(3, title="Target (%)")
longOnly = input(true, title="Long Only")
intraDay = input(true, title="intraday?")
// Calculate EMAs
emaShort = ta.ema(close, shortLength)
emaLong = ta.ema(close, longLength)
// Calculate crossover conditions
crossoverCondition = ta.crossover(emaShort, emaLong)
crossunderCondition = ta.crossunder(emaShort, emaLong)
// Entry condition (long position just before crossover)
if crossoverCondition and not runningPOS and longOnly and (hour <= 15)
strategy.entry("Long", strategy.long)
runningPOS := true
stopLossLevel := close * (1 - stopLossPct / 100)
targetLevel := close * (1 + targetPct / 100)
//Entry condition (short position just before crossover)
if crossunderCondition and not runningPOS and not longOnly and (hour <= 15)
strategy.entry("Short", strategy.short)
runningPOS := true
stopLossLevel := close * (1 + stopLossPct / 100)
targetLevel := close * (1 - targetPct / 100)
// Exit conditions (square off on reverse crossover)
//Exit long
if (crossunderCondition or (low < stopLossLevel) or (high > targetLevel) ) and longOnly and runningPOS
strategy.close("Long",comment = "Exit long")// ("Long", from_entry="Long",stop=stopLossLevel, limit=targetLevel)
runningPOS := false
//Exit short
if (crossoverCondition or (high > stopLossLevel) or (low < targetLevel) ) and not longOnly and runningPOS
strategy.close("Short", comment = "Exit Short")
runningPOS := false
if intraDay and runningPOS
if (hour >= 15)
strategy.close_all(comment = "Intraday square off")
//strategy.close("Long",comment = "intraday square off")
runningPOS := false
// Plot EMAs
plot(emaShort, color=color.blue, title="Short EMA")
plot(emaLong, color=color.red, title="Long EMA")