Estratégia de negociação cruzada de indicador MACD de várias linhas de tempo


Data de criação: 2024-02-19 11:03:54 última modificação: 2024-02-19 11:03:54
cópia: 0 Cliques: 697
1
focar em
1617
Seguidores

Estratégia de negociação cruzada de indicador MACD de várias linhas de tempo

Visão geral

A estratégia de negociação cruzada de indicadores MACD de vários eixos temporais é uma estratégia de acompanhamento de tendências. Computa um indicador MACD com diferentes parâmetros, gerando um sinal de negociação quando o preço supera esse indicador, permitindo a negociação automática de produtos financeiros, como ações, índices e divisas.

Princípio da estratégia

A estratégia calcula três médias móveis ao mesmo tempo: uma média móvel ponderada WMA e duas médias móveis indexadas EMA. Os três médias móveis têm configurações de parâmetros diferentes, de 25 dias, 50 dias e 100 dias, respectivamente. Isso permite que a média móvel cubra diferentes períodos de movimentos de preços.

Depois de calcular a média móvel, a estratégia monitora se o preço vai ultrapassar ou ultrapassar uma média móvel. Se o preço ultrapassar ou ultrapassar todas as três médias móveis ao mesmo tempo, um sinal de negociação será gerado.

Por exemplo, um sinal de compra é gerado quando o preço é superior a todas as três médias móveis ao mesmo tempo; um sinal de venda é gerado quando o preço é inferior a todas as três médias móveis ao mesmo tempo. A relação entre o preço e a média móvel pode ser monitorada para determinar o ponto de inflexão do movimento do preço.

O julgamento cruzado de indicadores de vários eixos temporais pode filtrar alguns sinais falsos, tornando os sinais de negociação mais confiáveis.

Análise de vantagens

  • Análise de tendências de preços em vários eixos de tempo para filtrar falsos sinais
  • Parâmetros fáceis de otimizar e adaptáveis a diferentes ciclos
  • Pode ser usado em várias variedades, como ações, índices e divisas estrangeiras.

Análise de Riscos

  • A avaliação do indicador de grande ciclo está atrasada e pode ter perdido a oportunidade de uma linha curta
  • O risco de falhar em uma invasão
  • PARAMETERS Alterações posteriores para otimizar o stop loss

Direção de otimização

A estratégia pode ser melhorada em vários aspectos:

  1. Optimizar os parâmetros de ciclo das médias móveis para se adaptarem a mais ciclos de mercado
  2. Adição de filtros para outros indicadores técnicos, como o indicador RSI para determinar sobrecompra e sobrevenda
  3. Aumento do mecanismo de parada de perda, com referência ao indicador ATR para definir a distância de parada de perda
  4. Extensível a outras variedades, como futuros, parâmetros de otimização

Resumir

A estratégia de negociação cruzada de indicadores MACD de vários eixos tem uma visão geral clara, determina a tendência dos preços por meio de médias móveis de vários ciclos e gera sinais de negociação quando há uma mudança significativa nos preços. A estratégia tem amplo espaço para otimização e pode ajustar os parâmetros para diferentes variedades e ciclos de mercado, obtendo assim um bom efeito de negociação.

Código-fonte da estratégia
/*backtest
start: 2024-01-19 00:00:00
end: 2024-02-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("TC - MACDoscillator v2", overlay=true)
// ___________      .__                   _________               .__  __         .__   
// \__    ___/____  |  |    ____   ____   \_   ___ \_____  ______ |__|/  |______  |  |  
//   |    |  \__  \ |  |   / ___\ /  _ \  /    \  \/\__  \ \____ \|  \   __\__  \ |  |  
//   |    |   / __ \|  |__/ /_/  >  <_> ) \     \____/ __ \|  |_> >  ||  |  / __ \|  |__
//   |____|  (____  /____/\___  / \____/   \______  (____  /   __/|__||__| (____  /____/
//                \/     /_____/                  \/     \/|__|                 \/      
//
// MACDoscillator Strategy v2
// Josh Breitfeld 2016
//

/// INPUTS START ///

//tradeSize = input(title="Shares Per Trade",  defval=2500, step=1)
WMALength = input(title="WMA Length",  defval=25, step=1)
EMA1Length = input(title="EMA1 Length",  defval=50, step=1)
EMA2Length = input(title="EMA2 Length",  defval=100, step=1)
//security = input(title="Alternate Security", type=string, defval="SPX500")
//inverse = input(title="Inverse Signals", type=bool, defval=true)

/// INPUTS END ///

/// ALGORITHM START ///

/// Define calculations
WMA = wma(close,WMALength)
EMA1 = ema(close,EMA1Length)
EMA2 = ema(close,EMA2Length)

/// Grab values from alternate security
dWMA = WMA
dEMA1 = EMA1
dEMA2 = EMA2

aClose = close

/// Crossover signal system

/// Long crosses
lc1 = aClose > dWMA ? true : false
lc2 = aClose > dEMA1 ? true : false
lc3 = aClose > dEMA2 ? true: false

/// Short crosses
sc1 = aClose < dWMA ? true : false
sc2 = aClose < dEMA1 ? true : false
sc3 = aClose < dEMA2 ? true : false

//plot(lc1,color=green)
//plot(lc2,color=green)
//plot(lc3,color=green)
//plot(sc1,color=red)
//plot(sc2,color=red)
//plot(sc3,color=red)


/// ALGO ORDER CONDITIONS START ///

pBuyToOpen = (lc1 and lc2 and lc3 ? true : false)
pSellToOpen = (sc1 and sc2 and sc3 ?  true : false)
pSellToClose = (lc1 ? true : false) and not pBuyToOpen
pBuyToClose = (sc1 ? true : false) and not pSellToOpen

//plot(pBuyToOpen,color=lime)
//plot(pBuyToClose,color=lime)
//plot(pSellToOpen,color=red)
//plot(pSellToClose,color=red)
/// INVERT SIGNALS

//buyToOpen = inverse ? -pBuyToOpen : pBuyToOpen
//sellToOpen = inverse ? -pBuyToOpen : pSellToOpen
//sellToClose = inverse ? -pSellToClose : pSellToClose
//buyToClose = inverse ? -pBuyToClose : pBuyToClose

/// ALGO ORDER CONDITIONS END ///

/// ALGORITHM END ///

/// DEFINE PLOTS ///

plot(dWMA,"WMA",lime,1,line)
plot(dEMA1,"EMA1",blue,2,line)
plot(dEMA2,"EMA2",red,3,line)
//plot(aClose,"Close",orange,4,line)

/// PLOTS END ///

/// ORDER BLOCK ///

    //strategy.entry("My Long Entry Id", strategy.long)

/// OPENING ORDERS START ///
if(pBuyToOpen) 
    strategy.entry("BTO", strategy.long, comment="BTO")
if(pSellToOpen) 
    strategy.entry("STO", strategy.short, comment="STO")

/// OPENING ORDERS END ///

/// CLOSING ORDERS START ///
strategy.close("BTO", pBuyToClose)
strategy.close("STO", pSellToClose)
/// CLOSING ORDERS END ///

/// END ORDER BLOCK ///

// Josh Breitfeld - Talgo Capital 2016
/// STRATEGY END ///