Esta estratégia é uma estratégia de acompanhamento de tendências que utiliza múltiplos períodos de tempo para se adaptar ao princípio da crosstalk da média móvel. A estratégia utiliza simultaneamente a linha rápida, a linha lenta e o indicador MACD para julgar sinais de negociação, com o objetivo de obter lucros adicionais na tendência da linha média e longa.
A estratégia baseia-se na combinação de dois sistemas de cruzamento de equilíbrio móvel e um indicador MACD. O sistema de cruzamento de equilíbrio móvel é composto por EMA de curto prazo e EMA de longo prazo, que compõem a média de curto prazo e a média de longo prazo, respectivamente. Quando a linha rápida atravessa a linha lenta, um sinal de compra é gerado, indicando que o mercado está em queda e queda, e uma posição multi-header pode ser estabelecida. Quando a linha rápida atravessa a linha lenta, um sinal de venda é gerado, indicando que o mercado está em queda e queda, e a posição pode ser desativada.
A estratégia combina a determinação de tendências de duas linhas de média móvel e o sinal de conversão de potência do MACD, ao mesmo tempo em que obtém o lucro da tendência de linha média e longa. Concretamente, quando a linha rápida atravessa a linha lenta, se a coluna MACD ficar verde ao mesmo tempo, um sinal de tomada de vazio mais confiável será produzido. Ao contrário, quando a linha rápida atravessa a linha lenta, se a coluna MACD ficar vermelha ao mesmo tempo, um sinal de tomada de vazio mais forte será produzido.
Além disso, a estratégia também introduziu a função de adaptação de parâmetros. Durante o processo de otimização de parâmetros, o ciclo de linha rápida, o ciclo de linha lenta e os parâmetros MACD são automaticamente ajustados de acordo com o efeito de diferentes períodos de tempo, para garantir que a estratégia obtenha o melhor desempenho em diferentes situações.
A integração de um sistema de dupla equação e um indicador MACD, que integra vários fatores para a tomada de decisões, evita que o ruído e os falsos sinais os enganem.
Aplicar a função de parâmetros de adaptação, permitindo que a estratégia ajuste dinamicamente os parâmetros para se adaptar às mudanças do mercado, otimizando automaticamente as decisões de negociação.
A melhor maneira de entender as tendências de linha média e longa é filtrar as falsas rupturas em mercados de baixa e baixa volatilidade, obtendo lucros extra em situações de tendência.
A análise de quadros de tempo permite identificar tendências em níveis maiores.
A lógica da estratégia é clara e simples, a estrutura do código é otimizada, fácil de entender e modificar, adaptada a diferentes necessidades.
O sistema de dupla linha de equilíbrio tem o risco de um cartão-whipsaw, não se aplica a situações de choque, deve-se escolher ações com tendências mais evidentes e período de tempo de operação.
O MACD é um indicador de atraso, não é adequado para rastrear tendências de mudanças bruscas e deve ser usado em combinação com outros indicadores.
A otimização dos parâmetros requer um ciclo de retestamento suficientemente grande e uma avaliação rigorosa dos riscos, evitando a sobre-adaptação.
Quando se mantém posicionado em uma linha longa, é necessário estar atento aos riscos sistemáticos causados por eventos inesperados e parar os danos em tempo hábil.
A função de parâmetros de auto-adaptação pode ser otimizada, mas deve ser verificada para evitar ajustes de parâmetros muito frequentes.
Pode-se testar combinações de diferentes médias rápidas e médias lentas, escolhendo parâmetros médios capazes de filtrar o ruído e seguir a tendência.
Pode-se testar múltiplos parâmetros do MACD para encontrar parâmetros combinados capazes de antecipar o ponto de conversão da tendência de reação.
Os indicadores de tendência podem ser incorporados como filtros, para suspender a negociação quando a tendência não é clara, evitando o whipsaw.
Pode-se introduzir um mecanismo de parada de perdas, definir um stop loss móvel ou um stop loss pendente para controlar os perdas individuais.
Pode-se tentar incorporar algoritmos de aprendizagem de máquina, utilizando uma maior quantidade de dados para treinamento de parâmetros de adaptação de regras, aumentando a estabilidade da estratégia.
Pode-se tentar arbitragem entre variedades, formando portfólios de transações entre as variedades relevantes, para dispersar o risco sistêmico do mercado.
A estratégia integra dois indicadores de trajetória móvel e MACD, permitindo uma combinação orgânica de acompanhamento de tendências e controle de ritmo. A introdução de parâmetros de auto-adaptação torna a estratégia mais robusta e capaz de se adaptar às mudanças no mercado. Em comparação com a estratégia de indicador único, a estratégia cria um efeito de decisão mais forte, capaz de obter uma rica receita de negociação nas tendências de linha média e longa.
/*backtest
start: 2023-09-08 00:00:00
end: 2023-10-08 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
// To enable alerts: Change 'Strategy' to read 'Study' below and you also need to comment out lines 43 and 47 - Strategy code
// strategy(title="Riz Coloured MACD", shorttitle="Riz MACD" , initial_capital=5000, default_qty_value=3 )
//study(title="Riz Coloured MACD", shorttitle="Riz MACD")
source = close
fastLength = input(21, minval=1), slowLength=input(55,minval=1)
signalLength=input(9,minval=1)
MACDCandlesCheckedBack=input(6,minval=1)
MACDTolerance=input(4,minval=1)
fastMA = ema(source, fastLength)
slowMA = ema(source, slowLength)
macd = fastMA - slowMA
signal = ema(macd, signalLength)
hist = macd - signal
// ====== BASIC COLOURING - IF HISTOGRAM IS HIGHER THAN PREVIOUS 2 CANDLES THEN WE ARE TICKING UP and VISA VERSA ============//
isTickingUp = hist > hist[1] and hist > hist[2] //and hist > hist[3]
isTickingDown = hist < hist[1] and hist < hist[2] // and hist < hist[3]
// ======= MACD STRATEGY CODE ========== //
// Check if MACD is ticking in the right direction to take a trade - adding 1 at the end means it starts at -1 so not to include the current candle
MACDHistHighestHigh= highest(hist, MACDCandlesCheckedBack)[1]
MACDHistLowestLow = lowest(hist, MACDCandlesCheckedBack)[1]
MACDConfirmsLong() => (hist - MACDHistLowestLow) > MACDTolerance
MACDConfirmsShort() => (MACDHistHighestHigh - hist) > MACDTolerance
plot(macd, title="MACD", color=blue, linewidth=3)
plot(signal, title="SIGNAL", color=orange, linewidth=3)
// === SIMPLE COLOURING BASED ON LAST 2 CANDLES - EASY TO REFERENCE IN DAY TO DAY MACD USE ====//
plot(hist, title="HIST", color=isTickingDown ? fuchsia : isTickingUp ? lime : green, linewidth=3, style=histogram)
// ==== ALTERNATIVE COLOURING FOR PLOT BASED ON STRATEGY SETTINGS INSTEAD
//plot(hist, title="HIST", color=MACDConfirmsLong() ? lime : MACDConfirmsShort() ? fuchsia : green, linewidth=3, style=histogram)
// === STRATEGY - ENTER POSITIONS - COMMENT OUT TO ENABLE ALERTS === //
strategy.entry(id = "Long", long = true, when = MACDConfirmsLong()) // use function to decide when to go long
strategy.entry(id = "Short", long = false, when = MACDConfirmsShort())
// === CREATE ALERT CONDITIONS === //
alertup = MACDConfirmsLong()
alertdown = MACDConfirmsShort()
alertcondition(alertup, title='MACD Long', message='Riz MACD says go LONG!')
alertcondition(alertdown, title='MACD Short', message='Riz MACD says go SHORT!')