
A estratégia é um sistema de negociação de acompanhamento de tendências baseado em médias móveis binárias ((EMA)). A estratégia usa duas linhas de EMA de 44 e 200 ciclos, combinadas com sinais de ruptura de preços para determinar a direção da negociação. Ao mesmo tempo, integra mecanismos de gerenciamento de risco, incluindo o cálculo de posições dinâmicas e o stop loss móvel.
A lógica central da estratégia é baseada na interação entre o preço e as duas linhas EMA. Usando 44 EMAs de ciclo, respectivamente, para formar canais de alta e baixa para os preços mais altos e mais baixos, e 200 EMAs de ciclo como filtros de tendência de longo prazo. Quando o preço de fechamento quebra a EMAs de alta e atende às condições de filtragem de 200 EMAs, o sistema gera um sinal de multiplicação. Quando o preço de fechamento cai abaixo da EMA de alta e atende às condições de filtragem de 200 EMAs, o sistema gera um sinal de vazio.
Trata-se de uma estratégia de acompanhamento de tendências com estrutura completa e lógica clara. Fornece sinais de negociação por meio de canais de duplo EMA e filtragem de tendências de longo prazo, com um mecanismo de gerenciamento de risco completo, com boa praticidade. O espaço de otimização da estratégia reside principalmente na confirmação de sinais, no ajuste de parâmetros dinâmicos e no aperfeiçoamento do mecanismo de gerenciamento de risco.
/*backtest
start: 2024-02-25 00:00:00
end: 2024-03-17 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/
//@version=5
strategy("RENTABLE Dual EMA Breakout TSLA ", overlay=true)
// Inputs for EMA lengths and risk per trade
length = input(44, title="EMA Length")
longTermLength = input(200, title="Long-Term EMA Length")
riskPerTrade = input.float(1.0, title="Risk per Trade (%)", minval=0.1, maxval=10.0)
// Additional inputs for strategy customization
useFilter = input.bool(true, title="Use 200 EMA Filter")
tradeDirection = input.string("Both", title="Trade Direction", options=["Long", "Short", "Both"])
// EMAs based on the high and low prices and long-term EMA
emaHigh = ta.ema(high, length)
emaLow = ta.ema(low, length)
ema200 = ta.ema(close, longTermLength)
// Plotting EMAs on the chart
plot(emaHigh, color=color.green, title="High EMA")
plot(emaLow, color=color.red, title="Low EMA")
plot(ema200, color=color.blue, title="200 EMA")
// Entry conditions with optional EMA filter
longCondition = close > emaHigh and (useFilter ? close > ema200 : true)
shortCondition = close < emaLow and (useFilter ? close < ema200 : true)
// Calculating stop-loss and position size
longStop = emaLow
shortStop = emaHigh
riskPerShareLong = close - longStop
riskPerShareShort = shortStop - close
equity = strategy.equity
// Ensure risk per share is positive for calculations
riskPerShareLong := riskPerShareLong > 0 ? riskPerShareLong : 0.01
riskPerShareShort := riskPerShareShort > 0 ? riskPerShareShort : 0.01
positionSizeLong = (equity * riskPerTrade / 100) / riskPerShareLong
positionSizeShort = (equity * riskPerTrade / 100) / riskPerShareShort
// Ensure position sizes are positive before entering trades
if (longCondition and (tradeDirection == "Long" or tradeDirection == "Both") and positionSizeLong > 0)
strategy.entry("Long", strategy.long, qty= positionSizeLong)
if (shortCondition and (tradeDirection == "Short" or tradeDirection == "Both") and positionSizeShort > 0)
strategy.entry("Short", strategy.short, qty=positionSizeShort)
// Applying the stop-loss to strategy
strategy.exit("Exit Long", "Long", stop=longStop)
strategy.exit("Exit Short", "Short", stop=shortStop)
////Usar en 1,2 3 4 HRS TSLA