A estratégia combina os dois indicadores de média móvel do índice (EMA) e de média móvel de convergência (MACD) para produzir um sinal de negociação, e usa um stop loss de rastreamento para controlar o risco. A estratégia se aplica a comportamentos tendenciais, que visam manter uma posição de longo prazo que segue a tendência do meio prazo.
Quando a linha EMA rápida atravessa a linha EMA lenta e a coluna do histograma MACD fica vazia, a estratégia faz mais; quando as posições de mais cabeça estão presentes, configure uma linha de parada de rastreamento para baixo, e se o preço cair acima da linha de parada em uma certa proporção, a parada de perda sairá da posição de mais cabeça.
Concretamente, a estratégia usa o 7o EMA e o 14o EMA para construir um EMA rápido; usa o 12o EMA menos o 26o EMA para obter o valor do MACD e, em seguida, o 9o EMA para obter a linha de sinal. Quando o 7o EMA atravessa o 14o EMA e o valor do MACD atravessa o sinal, faça uma posição mais aberta; depois, configure uma linha de stop loss de rastreamento para baixo e, se o preço cair acima de uma certa proporção, faça um stop loss e saia.
A estratégia combina os dois indicadores EMA e MACD, que são capazes de filtrar efetivamente a brecha falsa. O EMA determina a direção da tendência, o MACD determina o ponto de compra e venda, ambos em combinação podem reduzir a frequência de negociação e melhorar a qualidade do sinal. O tracking stop loss pode proteger ao máximo os lucros alcançados e parar os perdas em tempo hábil em caso de eventos adversos significativos.
A retrospectiva mostra que a estratégia também pode obter melhores retornos em mercados de baixa, indicando que a estratégia tem uma certa robustez. A frequência de negociação da estratégia não é alta e é adequada para posições de médio a longo prazo. Os parâmetros do ciclo EMA podem ser ajustados adequadamente para ajustar a tendência da estratégia.
A estratégia baseia-se principalmente em indicadores, com risco de arbitragem. Quando o mercado está em uma fase de ajuste de choque, a EMA e o MACD podem produzir uma grande quantidade de falsos sinais, resultando em sobre-negociação e perdas.
Pode-se reduzir os sinais de erro através da ampliação apropriada dos parâmetros do ciclo EMA. Também pode ser combinado com outros sinais de filtragem de indicadores, como indicadores de quantidade de energia, indicadores de volatilidade, etc. Além disso, pode-se ajustar a proporção de parada de acordo com a situação do mercado para equilibrar o risco de parada e arbitragem.
Pode-se testar diferentes combinações de períodos de EMA para encontrar um parâmetro de período mais adequado para a estratégia.
Pode-se adicionar outros indicadores para filtragem de sinal, como RSI, KD, etc., para melhorar a qualidade do sinal.
Pode-se ajustar a proporção de stop loss de acordo com as diferentes variedades, configurando stop loss de rastreamento dinâmico para otimizar a estratégia de stop loss.
Pode-se combinar com indicadores técnicos, como ruptura, forma, para definir mais condições de abertura de posição e posição, para que a estratégia seja mais personalizada.
A introdução de aprendizagem de máquina pode prever a direção da tendência do ciclo, auxiliando a EMA a determinar a tendência geral.
A estratégia é robusta em geral e pode gerar bons lucros em mercados de baixa. No entanto, existe um certo risco de arbitragem, que requer otimização de parâmetros e condições de filtragem. A estratégia pode ser mais eficaz se for possível combinar outros indicadores técnicos e meios de otimização, como aprendizado de máquina.
/*backtest
start: 2023-09-12 00:00:00
end: 2023-09-19 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Coinrule
//@version=5
strategy('EMA and MACD with Trailing Stop Loss',
overlay=true,
initial_capital=1000,
process_orders_on_close=true,
default_qty_type=strategy.percent_of_equity,
default_qty_value=30,
commission_type=strategy.commission.percent,
commission_value=0.1)
showDate = input(defval=true, title='Show Date Range')
timePeriod = time >= timestamp(syminfo.timezone, 2022, 1, 1, 0, 0)
notInTrade = strategy.position_size <= 0
// EMAs
fastEMA = ta.ema(close, 7)
slowEMA = ta.ema(close, 14)
plot(fastEMA, color = color.blue)
plot(slowEMA, color = color.green)
//buyCondition1 = ta.crossover(fastEMA, slowEMA)
buyCondition1 = fastEMA > slowEMA
// DMI and MACD inputs and calculations
[macd, macd_signal, macd_histogram] = ta.macd(close, 12, 26, 9)
buyCondition2 = ta.crossover(macd_signal, macd)
// Configure trail stop level with input options
longTrailPerc = input.float(title='Trail Long Loss (%)', minval=0.0, step=0.1, defval=3) * 0.01
shortTrailPerc = input.float(title='Trail Short Loss (%)', minval=0.0, step=0.1, defval=1) * 0.01
// Determine trail stop loss prices
longStopPrice = 0.0
shortStopPrice = 0.0
longStopPrice := if strategy.position_size > 0
stopValue = close * (1 - longTrailPerc)
math.max(stopValue, longStopPrice[1])
else
0
shortStopPrice := if strategy.position_size < 0
stopValue = close * (1 + shortTrailPerc)
math.min(stopValue, shortStopPrice[1])
else
999999
if (buyCondition1 and buyCondition2 and notInTrade and timePeriod)
strategy.entry(id="Long", direction = strategy.long)
strategy.exit(id="Exit", stop = longStopPrice, limit = shortStopPrice)
//if (sellCondition1 and sellCondition2 and notInTrade and timePeriod)
//strategy.close(id="Close", when = sellCondition1 or sellCondition2)