Estratégia de negociação Golden Cross e Death Cross


Data de criação: 2023-10-31 14:37:38 última modificação: 2023-10-31 14:37:38
cópia: 0 Cliques: 810
1
focar em
1617
Seguidores

Estratégia de negociação Golden Cross e Death Cross

Visão geral

A ideia principal desta estratégia é usar os sinais de forca de ouro e forca de morte do indicador EMA para realizar operações de compra e venda. Ela mapeia simultaneamente vários grupos de EMAs rápidos e lentos e usa seus cruzamentos para julgar os sinais de negociação.

Princípio da estratégia

Esta estratégia define primeiro um conjunto de linhas médias EMA, incluindo as linhas médias EMA rápidas ema1 a ema6 e as linhas médias EMA lentas ema7 a ema12. Em seguida, define os sinais de compra buy_signal e os sinais de venda sell_signal:

  • O sinal de compra buy_signal é gerado quando o ema1 é colocado sobre o ema3
  • O sinal de venda sell_signal é gerado quando o ema1 atravessa o ema3

Assim, quando a curta-metragem EMA na linha média da EMA longo prazo, indica que o mercado está em uma tendência ascendente, comprar; quando a curta-metragem EMA abaixo da linha média da EMA longo prazo, indica que o mercado está em uma tendência descendente, vender.

A estratégia de determinar a direção da tendência através da monitorização do cruzamento da linha média da EMA para tomar decisões de compra e venda.

Análise de vantagens

A estratégia tem as seguintes vantagens:

  1. Usando o indicador de linha média da EMA para determinar a tendência, a linha média da EMA é mais suave em relação às mudanças de preço, e pode filtrar o ruído do mercado de curto prazo, tornando os sinais de negociação mais confiáveis.

  2. Ao traçar vários conjuntos de linhas médias EMA, pode-se determinar com mais precisão as mudanças de tendência. O cruzamento de linhas EMA rápidas e lentas pode evitar a perda de importantes pontos de mudança de tendência.

  3. A estratégia é simples e clara, emite sinais de negociação através do cruzamento da EMA, é fácil de entender e de implementar, adequada para negociações quantitativas.

  4. Os parâmetros do ciclo EMA podem ser personalizados e podem ser ajustados de acordo com diferentes variedades e parâmetros de mercado, respondendo de forma flexível às mudanças no mercado.

Análise de Riscos

A estratégia também apresenta os seguintes riscos:

  1. A linha média da EMA tem um atraso que pode atrasar o sinal de negociação.

  2. A escolha de uma combinação de parâmetros EMA incorreta pode gerar um sinal de negociação errado.

  3. O cruzamento da EMA não pode filtrar eficazmente os falsos sinais causados pela zona de oscilação.

  4. Existe um risco de sobre-adaptação, com espaço limitado para otimizar os parâmetros do EMA.

Resposta:

  1. Filtragem em combinação com outros indicadores para evitar sinais errados na faixa de vibração.

  2. Teste a estabilidade de diferentes parâmetros de ciclo, para evitar que ocorra uma sobre-conformidade.

  3. Ajustar adequadamente o conjunto de parâmetros da estratégia ou aumentar o mecanismo de saída para controlar o risco.

Direção de otimização

A estratégia também pode ser melhorada em alguns aspectos:

  1. Aumentar a estratégia de stop loss e parar a perda depois de atingir um certo nível.

  2. A adição de um mecanismo de reentrada no mercado, ou seja, a configuração de um sinal de recompra e venda.

  3. Optimizar a combinação de parâmetros de ciclo cruzado de compra e venda de EMA, procurando o parâmetro otimizado.

  4. Adicionar outros indicadores ao julgamento, realizar verificação multifatorial e melhorar a qualidade do sinal.

  5. Teste a otimização de parâmetros de diferentes variedades para encontrar o melhor alcance de aplicação.

  6. Considerando os fatores de deslizamento nas transações em disco rígido, realize o ajuste de retroalimentação.

Resumir

Esta estratégia usa a linha de equilíbrio do EMA para determinar a direção da tendência, comprando e vendendo de acordo com os sinais de cruzamento. É uma estratégia de acompanhamento de tendências mais simples. Ela tem a vantagem de determinar a mudança de tendência, mas também existe o risco de atraso e oscilação.

Código-fonte da estratégia
/*backtest
start: 2023-09-30 00:00:00
end: 2023-10-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//Companion Strategy script to my Cloud Study. Enjoy! -MP
// study("MP's Cloud Study", overlay=true)
strategy(title="MP's Cloud Strat'", shorttitle="MP's Cloud Strat", overlay=true, precision=6, pyramiding=0, initial_capital=10000, currency="USD", default_qty_type=strategy.percent_of_equity,calc_on_order_fills= false, calc_on_every_tick=false, default_qty_value=100.0, commission_type=strategy.commission.percent, commission_value=0.05)

//bgcolor ( color=black, transp=20, title='Blackground', editable=true)

src = close, len1 = input(2, minval=1, title="Short EMA")
src2 = close, len3 = input(7, minval=1, title="Long EMA")
emaShort = ema(src, len1)
emaLong = ema(src2, len3)


StartYear = input(2018, "Start Year")
StartMonth = input(01, "Start Month")
StartDay = input(18, "Start Day")

 
StopYear = input(2018, "Stop Year")
StopMonth = input(12, "Stop Month")
StopDay = input(26, "Stop Day")
tradeStop = timestamp(StopYear,StopMonth,StopDay,0,0)

//src = close, 
//len1 = input(3, minval=1, title="Fast EMA 1")
len2 = input(3, minval=1, title="Fast EMA 2")
//len3 = input(8, minval=1, title="Fast EMA 3")
len4 = input(5, minval=1, title="Fast EMA 4")
len5 = input(8, minval=1, title="Fast EMA 5")
len6 = input(10, minval=1, title="Fast EMA 6")
//Slow EMA
len7 = input(30, minval=1, title="Slow EMA 7")
len8 = input(35, minval=1, title="Slow EMA 8")
len9 = input(40, minval=1, title="Slow EMA 9")
len10 = input(45, minval=1, title="Slow EMA 10")
len11 = input(50, minval=1, title="Slow EMA 11")
len12 = input(60, minval=1, title="Slow EMA 12")

//Fast EMA
ema1 = ema(src, len1)
ema2 = ema(src, len2)
ema3 = ema(src, len3)
ema4 = ema(src, len4)
ema5 = ema(src, len5)
ema6 = ema(src, len6)
//Slow EMA
ema7 = ema(src, len7)
ema8 = ema(src, len8)
ema9 = ema(src, len9)
ema10 = ema(src, len10)
ema11 = ema(src, len11)
ema12 = ema(src, len12)

//Fast EMA Color Rules
//colfastL = (ema1 > ema2 and ema2 > ema3 and ema3 > ema4 and ema4 > ema5 and ema5 > ema6)
colfastS = (ema1 < ema2 and ema2 < ema3 and ema3 < ema4 and ema4 < ema5 and ema5 < ema6)
//Slow EMA Color Rules
//colslowL = ema7 > ema8 and ema8 > ema9 and ema9 > ema10 and ema10 > ema11 and ema11 > ema12 
//colslowS = ema7 < ema8 and ema8 < ema9 and ema9 < ema10 and ema10 < ema11 and ema11 < ema12 
//Fast EMA Final Color Rules
//colFinal = colfastL and colslowL? aqua : colfastS and colslowS? orange : gray
//Slow EMA Final Color Rules
//colFinal2 = colslowL  ? lime : colslowS ? red : gray
//Fast EMA Plots
p1=plot(ema1, title="Fast EMA 1", style=line, linewidth=2, color=silver)
plot(ema2, title="Fast EMA 2", style=line, linewidth=1, color=silver)
plot(ema3, title="Fast EMA 3", style=line, linewidth=1, color=silver)
plot(ema4, title="Fast EMA 4", style=line, linewidth=1, color=silver)
plot(ema5, title="Fast EMA 5", style=line, linewidth=1, color=silver)
p2=plot(ema6, title="Fast EMA 6", style=line, linewidth=2, color=silver)
fill(p1,p2,color=silver, transp=60)
//Slow EMA Plots
//p3=plot(ema7, title="Slow EMA 7", style=line, linewidth=4, color=colFinal2)
//plot(ema8, title="Slow EMA 8", style=line, linewidth=3, color=colFinal2)
//plot(ema9, title="Slow EMA 9", style=line, linewidth=3, color=colFinal2)
//plot(ema10, title="Slow EMA 10", style=line, linewidth=3, color=colFinal2)
//plot(ema11, title="Slow EMA 11", style=line, linewidth=3, color=colFinal2)
//p4=plot(ema12, title="Slow EMA 12", style=line, linewidth=4, color=colFinal2)
//fill(p3,p4, color=silver, transp=60)



//Plot the Ribbon
ma1=plot( emaShort,color=rising(emaShort,2)?green:red,linewidth=1,join=true,transp=20,title="Short")
ma2=plot( emaLong,color=rising(emaLong,2)?green:red,linewidth=1,join=true,transp=20,title="Long")
fcolor = emaShort>emaLong?green:red
fill(ma1,ma2,color=fcolor,transp=80,title="Ribbon Fill")


//fast = 4, slow = 16
//fastMA = ema(close, fast)
//slowMA = ema(close, slow)
//plot(fastMA, color=green, title = "buy/sell")
//plot(slowMA, color=red, title = "base")


//Conditions
buy_signal = crossover(ema1,ema3)
sell_signal = crossunder(ema1,ema3)

plotshape(sell_signal, style=shape.triangleup, color = red, text="Start Short")
plotshape(buy_signal, style=shape.triangledown, color = green, text="Start Long")

alertcondition(sell_signal, title = 'Sell/Short', message = 'e= s= c=position b=long t=market l= | delay=30 | e= s= b=short l= t=market q=0.01')
alertcondition(buy_signal, title = 'Buy/Long', message =  'e= s= c=position b=short t=market l= | delay=30 | e= s= b=long l= t=market q=0.01')

//alertcondition(sell_signal, title = 'Sell/Short', message = 'e= s= c=order b=buy | delay=3 | e= b=sell q=99% p=0.70% u=currency')
//alertcondition(buy_signal, title = 'Buy/Long', message =  'e= s= c=order b=sell | delay=30 | e= b=buy q=80 p=0.1% u=currency')


testStartYear = input(2018, "From Year") 
testStartMonth = input(1, "From Month")
testStartDay = input(1, "From Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2019, "To Year")
testStopMonth = input(1, "To Month")
testStopDay = input(1, "To Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

testPeriod() => true

if testPeriod()
    if buy_signal
        strategy.entry("Long", true)
    

    if sell_signal
        strategy.close("Long")