Esta é uma estratégia de negociação dupla de crossover da EMA baseada em indicadores da EMA rápida e da EMA lenta. A estratégia gera sinais longos quando a EMA rápida cruza acima da EMA lenta e fecha posições longas quando a EMA rápida cruza abaixo da EMA lenta. A estratégia é simples e prática para negociação de médio prazo.
A estratégia é implementada principalmente com os indicadores de EMA dupla. A EMA rápida tem um período mais curto para refletir sensivelmente as alterações de preços, enquanto a EMA lenta tem um período mais longo para indicar tendências de longo prazo.
Quando a EMA rápida cruza acima da EMA lenta, uma cruz de ouro é formada, indicando o impulso de preço ascendente no curto prazo para longo.
Em especial, a estratégia inclui:
Parâmetros de entrada para a EMA rápida e lenta, incluindo período, fonte, etc.
Calcule a EMA rápida e a EMA lenta.
Definir cruz de ouro quando a EMA rápida cruza acima da EMA lenta.
Definir cruz de morte quando a EMA rápida cruza abaixo da EMA lenta.
Vai longe com cruzes de ouro.
Posições próximas nas cruzes da morte.
Opções de curto prazo e de suspensão de perdas/recuperação de lucros
Notificações de compra e venda de saída.
Com este simples sistema duplo de cruzamento da EMA, a estratégia pode captar tendências de curto prazo para lucros.
A estratégia apresenta as seguintes vantagens:
A lógica é simples e clara, fácil de entender.
Só usa EMA dupla, fácil de implementar.
Pode detectar tendências de curto prazo para obter lucros.
Períodos de EMA personalizáveis para diferentes mercados.
Opção de curto-circuito para controlar riscos.
Opção de stop loss/benefício.
Notificações de compra/venda para controlo.
Fácil de otimizar os parâmetros da EMA para melhores lucros.
Há também alguns riscos:
A dupla EMA pode gerar sinais falsos que causem perdas desnecessárias.
A configuração incorreta de stop loss pode aumentar as perdas.
A alta frequência de negociação aumenta os custos e os riscos de deslizamento.
Os parâmetros fixos da EMA não podem adaptar-se às alterações do mercado.
Têm tendência para perseguir o momento, perdem o juízo calmo.
Não é possível identificar a inversão da tendência, pode abrir posições inversas.
Medidas de gestão de riscos correspondentes:
Otimizar os parâmetros da EMA para reduzir os falsos sinais.
Definir o limite de stop loss adequado por perda de negociação.
Otimizar os períodos de EMA para reduzir a frequência.
Ajustar a EMA dinamicamente para diferentes fases do mercado.
Adicione indicadores de tendência para evitar perseguir o impulso.
Identificar as principais direcções de tendência com ferramentas de tendência.
A estratégia pode ser otimizada nos seguintes aspectos:
Optimização dinâmica dos parâmetros da EMA para diferentes mercados.
Adicionar filtros de estoque para melhorar a precisão.
Incorporar um índice de volatilidade para reduzir a posição em ambientes de baixa volatilidade.
Adicione confirmação de volume para sinais.
Definir níveis de preços, como 20SMA breakout antes de receber sinais.
Melhorar as estratégias de stop loss e take profit.
Adicionar análise da tendência principal para evitar negociação contra a tendência.
Otimizar continuamente a estratégia com algoritmos de aprendizagem de máquina.
Em resumo, a estratégia de cruzamento dupla da EMA tem uma lógica simples e clara para capturar tendências de curto prazo, mas também tem alguns riscos de lucro. Podemos gerenciar os riscos otimizando parâmetros, implementando stop loss / take profit, filtrando ações, julgando as principais tendências, etc., para obter retornos satisfatórios de forma constante. A estratégia pode ser melhorada gradualmente com pesquisas e aprimoramentos contínuos.
/*backtest start: 2023-09-15 00:00:00 end: 2023-10-15 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("EMA Strategy", shorttitle="EMA Strategy", overlay=true, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100) // === Inputs === // short ma maFastSource = input(defval=close, title="Fast MA Source") maFastLength = input(defval=3, title="Fast MA Period", minval=1) // long ma maSlowSource = input(defval=close, title="Slow MA Source") maSlowLength = input(defval=9, title="Slow MA Period", minval=1) // invert trade direction shorting = input(defval=false, title="Allow Shorting?") // risk management useStop = input(defval=false, title="Use Initial Stop Loss?") slPoints = input(defval=25, title="Initial Stop Loss Points", minval=1) useTS = input(defval=false, title="Use Trailing Stop?") tslPoints = input(defval=120, title="Trail Points", minval=1) useTSO = input(defval=false, title="Use Offset For Trailing Stop?") tslOffset = input(defval=20, title="Trail Offset Points", minval=1) // Messages for buy and sell message_buy = input("Buy message", title="Buy Alert Message") message_sell = input("Sell message", title="Sell Alert Message") // Calculate start/end date and time condition startDate = input(timestamp("2021-01-01T00:00:00"), type = input.time) finishDate = input(timestamp("2021-12-31T00:00:00"), type = input.time) time_cond = true // === Vars and Series === fastMA = ema(maFastSource, maFastLength) slowMA = ema(maSlowSource, maSlowLength) plot(fastMA, color=color.blue) plot(slowMA, color=color.purple) goLong() => crossover(fastMA, slowMA) killLong() => crossunder(fastMA, slowMA) strategy.entry("Buy", strategy.long, when=goLong() and time_cond, alert_message = message_buy) strategy.close("Buy", when=killLong() and time_cond, alert_message = message_sell) // Shorting if using if shorting strategy.entry("Sell", strategy.short, when=killLong() and time_cond, alert_message = message_sell) strategy.close("Sell", when=goLong() and time_cond, alert_message = message_buy) if useStop strategy.exit("XLS", from_entry="Buy", stop=strategy.position_avg_price / 1.08) strategy.exit("XSS", from_entry="Sell", stop=strategy.position_avg_price * 1.08)