Estratégia de negociação de opções cruzadas EMA/MA

Autora:ChaoZhang, Data: 2024-01-16 14:14:42
Tags:

img

Resumo

Esta é uma estratégia de negociação de opções de curto prazo baseada em cruzamento de média móvel exponencial (EMA) e média móvel (MA) para gerar sinais de negociação.

Estratégia lógica

A estratégia emprega dois EMAs/MAs com parâmetros diferentes, um EMA rápido e um MA lento. O período de EMA rápido é definido em 50 e o período de MA lento é definido em 100.

Quando o aumento de preços de curto prazo acelera, a EMA rápida penetrará na MA lenta de baixo, gerando sinais de compra.

Quando o declínio de preços de curto prazo acelera, a EMA rápida vai quebrar abaixo da MA lenta, produzindo sinais de venda.

Ao capturar os cruzamentos entre a EMA/MA rápida e lenta para determinar a tendência a curto prazo e as emoções do mercado, as negociações de opções podem ser executadas em tempo hábil para lucrar com flutuações de preços relativamente a curto prazo.

Análise das vantagens

As principais vantagens desta estratégia são:

  1. Reacção rápida para capturar oscilações de curto prazo.

  2. Simples de implementar, basta monitorizar o cruzamento das duas médias móveis sem cálculos complexos.

  3. Aplicação flexível para negociação de opções ou ações.

  4. Risco controlado com stop loss claro. Pontos de stop loss pré-definidos para limitar perdas por negociação.

Análise de riscos

Alguns riscos a ter em conta:

  1. Os potenciais sinais de fenda e os mercados variáveis podem causar negociação excessiva e aumento de custos.

  2. Considerar uma estratégia de pausa durante a fase de baixa prolongada para preservar o capital.

  3. Os picos de preços de eventos noticiosos significativos podem parar as posições prematuramente ou aumentar substancialmente as perdas.

Oportunidades de melhoria

Algumas formas de melhorar a estratégia:

  1. Ajuste de stop loss em tempo real de acordo com os níveis de flutuação de preços para minimizar as probabilidades de saída forçada.

  2. Integrar EMAs de vários prazos. Adicionar EMAs diárias e semanais para avaliar a tendência geral para evitar negociações contra-tendência.

  3. Filtro do RSI Utilize o RSI para identificar níveis de sobrecompra e sobrevenda para filtrar alguns sinais de ruído.

  4. Previsão de volatilidade de aprendizagem de máquina: empregar modelos LSTM para prever a volatilidade e o risco dos preços, ajustando dinamicamente o tamanho da posição e o stop loss.

Conclusão

Esta estratégia de cruzamento EMA/MA de curto prazo capta mudanças de tendência de curto prazo e emoções do mercado para negociações oportunas, monitorando cruzes EMA rápidas e MA lentas. Apesar de sua facilidade de implementação, os riscos incluem surtos excessivos e reduções sustentadas.


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

//@version=4
strategy("Backtest single EMA cross", overlay=true)

qty = input(100000, "Buy quantity")

testStartYear = input(2019, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testStartHour = input(0, "Backtest Start Hour")
testStartMin = input(0, "Backtest Start Minute")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, testStartHour, testStartMin)
testStopYear = input(2099, "Backtest Stop Year")
testStopMonth = input(1, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)
testPeriodBackground = input(title="Color Background?", type=input.bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and time >= testPeriodStart and time <= testPeriodStop ? 
   #00FF00 : na
testPeriod() => true


ema1 = input(50, title="Select EMA 1")
ema2 = input(100, title="Select EMA 2")

expo = ema(close, ema1)
ma = ema(close, ema2)

avg_1 = avg(expo, ma)
s2 = cross(expo, ma) ? avg_1 : na
//plot(s2, style=plot.style_line, linewidth=3, color=color.red, transp=0)

p1 = plot(expo, color=#00FFFF, linewidth=2, transp=0)
p2 = plot(ma, color=color.orange, linewidth=2, transp=0)
fill(p1, p2, color=color.white, transp=80)


longCondition = crossover(expo, ma)

shortCondition = crossunder(expo, ma)

exitlongCondition = crossunder(expo, ma)

exitshortCondition = crossover(expo, ma) 


if testPeriod()
    strategy.entry("Long", strategy.long, when=longCondition)
    strategy.entry("Short", strategy.short, when=shortCondition)

plotshape(longCondition, title = "Buy Signal", text ="BUY", textcolor = #FFFFFF , style=shape.labelup, size = size.normal, location=location.belowbar, color = #1B8112, transp = 0)
plotshape(shortCondition, title = "Sell Signal", text ="SELL", textcolor = #FFFFFF, style=shape.labeldown, size = size.normal, location=location.abovebar, color = #FF5733, transp = 0)




Mais.