
A estratégia determina entradas e saídas através do cálculo da média móvel do índice EMA e do indicador MACD, combinando os sinais cruzados dos dois. Faça mais quando o preço atravessa a linha EMA e a linha MACD atravessa a linha de sinal; faça vazio quando o preço atravessa a linha EMA abaixo e a linha MACD abaixo da linha de sinal.
A estratégia usa a média móvel do índice EMA para determinar a direção da tendência atual. Ao mesmo tempo, o cruzamento de duas linhas de equilíbrio do indicador MACD é usado para gerar um sinal de compra e venda. O sinal de troca do MACD é julgado somente quando o preço quebra a linha EMA. Isso evita sinais errados.
A estratégia é baseada principalmente nas vantagens da estratégia de negociação de média móvel e da estratégia de negociação MACD. A média móvel é melhor para determinar a direção da tendência. O cruzamento de linhas rápidas e lentas do índice MACD para suavizar a média móvel pode sugerir pontos de compra e venda.
A estratégia combina o julgamento do duplo indicador da EMA e MACD, para filtrar efetivamente alguns sinais errados e melhorar a qualidade do sinal. Ao mesmo tempo, a EMA julga a tendência principal e a MACD julga os pontos de compra e venda específicos, os dois se complementam e podem obter melhores resultados.
Além disso, a estratégia só leva em conta os sinais MACD quando o preço ultrapassa a linha média da EMA, evitando erros de negociação em situações de turbulência. Isso também aumenta a estabilidade da estratégia.
O principal risco da estratégia reside na configuração dos parâmetros. Se os parâmetros do EMA e do MACD forem mal definidos, o sinal será perdido ou um sinal errado será produzido. Além disso, se a tendência do mercado se inverter, a estratégia terá um certo prejuízo.
Para reduzir o risco, os parâmetros devem ser adequadamente ajustados para que os parâmetros do EMA e do MACD correspondam ao ciclo de mercado atual. Ao mesmo tempo, recomenda-se o uso de stop loss para controlar perdas individuais.
A estratégia pode ser melhorada em vários aspectos:
Parâmetros de otimização dinâmica, permitindo que os parâmetros do EMA e do MACD sejam ajustados de acordo com a situação e o ciclo em tempo real, garantindo a validade dos parâmetros
Adicionar combinações de outros indicadores, como o canal BOLL ou indicadores KD, para enriquecer o sinal de estratégia
Otimizar automaticamente os parâmetros da estratégia com métodos de aprendizagem de máquina e ajustar os parâmetros de acordo com os resultados do feedback
Ao atravessar a linha média da EMA, julgue a intensidade da direção para evitar falsas rupturas
Aumentar a estratégia de stop loss para bloquear os lucros e cortar os prejuízos
Esta estratégia de quantificação de equilíbrio cruzado em combinação com a dupla EMA e MACD pode efetivamente produzir um sinal de alta qualidade. A configuração de parâmetros optimizados, o aumento do stop loss e a adição de outros indicadores podem aumentar ainda mais a estabilidade e a lucratividade da estratégia.
/*backtest
start: 2022-12-15 00:00:00
end: 2023-12-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("LONERTESTV2", overlay=true)
// Input definitions
fastLength = input(12, title="Fast Length")
slowlength = input(26, title="Slow Length")
MACDLength = input(9, title="MACD Length")
emaLength = input(13, title="EMA Length")
//smaLength = input(200, title="SMA Length")
// SMA Indicator - Are we in a Bull or Bear market according to 200 SMA?
//SMA = ta.ema(close, smaLength)
// EMA Indicator - Are we in a rally or not?
EMA = ta.ema(close, emaLength)
// MACD Indicator - Is the MACD bullish or bearish?
MACD = ta.ema(close, fastLength) // - ta.ema(close, slowlength)
aMACD = ta.ema(MACD, MACDLength)
delta = MACD - aMACD
// Set Buy/Sell conditions
buy_entry = close > EMA and delta > 5 ? true : close > EMA and delta > -5
sell_entry = close < EMA and delta < -5 ? true : close < EMA and delta < 5
if buy_entry
strategy.entry(id='EL', direction=strategy.long)
if sell_entry
strategy.entry(id='ES', direction=strategy.short)
// strategy.entry("Buy", strategy.long)
// strategy.entry("Sell", strategy.short)