
A estratégia é um sistema de negociação automática baseado em múltiplas médias móveis de índices (EMA), que estabelece sinais de negociação por meio de julgamentos estratificados de EMAs de 5 ciclos, 20 ciclos e 50 ciclos. O design do sistema é único em usar julgamentos de EMAs múltiplos baseados em altos, baixos e preços de encerramento, e combina um mecanismo de stop loss dinâmico e de stop tracking para controlar efetivamente o risco e, ao mesmo tempo, bloquear o lucro.
A estratégia baseia-se em múltiplos períodos de tempo para tomar decisões de negociação em relação ao cruzamento EMA e à posição.
Trata-se de um sistema de negociação de linha média múltipla rigorosamente concebido para controlar eficazmente o risco por meio de filtragem em camadas e de stop loss dinâmico. Embora possa perder alguns movimentos rápidos, o desempenho é estável em mercados de tendência. Recomenda-se ajustar os parâmetros de acordo com as diferentes características do mercado e considerar a inclusão de indicadores auxiliares como volume de transação para aumentar a confiabilidade.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-03 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Automated EMA Strategy with Hierarchical Conditions", overlay=true)
// Inputs for EMA lengths
length_5 = 5
length_20 = 20
length_50 = 50
// Calculating EMAs
ema_5 = ta.ema(close, length_5)
ema_20_high = ta.ema(high, length_20)
ema_20_low = ta.ema(low, length_20)
ema_20_close = ta.ema(close, length_20)
ema_50 = ta.ema(close, length_50)
// Buy condition: 50 EMA < 20 EMA (Close) < 20 EMA (High) < 20 EMA (Low) < 5 EMA
// and LTP above all EMAs
buy_condition = ema_50 < ema_20_low and ema_20_low < ema_20_close and ema_20_close < ema_20_high and ema_20_high < ema_5 and close > ema_5 and close > ema_20_close and close > ema_20_high and close > ema_20_low and close > ema_50
// Stop-loss and target levels
stop_loss = ema_20_low
// Target condition: Close below 5 EMA
target_condition = close < ema_5
// Check if there's an open position
is_in_position = strategy.position_size > 0
// Execute Buy Signal only if no position is open
if (buy_condition and not is_in_position)
strategy.entry("Buy", strategy.long)
// Exit conditions: Stop-loss or target (close below 5 EMA)
if (is_in_position and (target_condition or close < stop_loss))
strategy.close("Buy")
// Plotting the EMAs
plot(ema_5, color=color.blue, title="5 EMA")
plot(ema_20_high, color=color.green, title="20 EMA (High)")
plot(ema_20_low, color=color.red, title="20 EMA (Low)")
plot(ema_20_close, color=color.purple, title="20 EMA (Close)")
plot(ema_50, color=color.orange, title="50 EMA")