
Trata-se de uma estratégia multifacetada baseada em EMAs de suporte e tendência. A estratégia busca as melhores oportunidades de entrada identificando tendências de mercado e suporte-chave, combinando stop loss dinâmico ATR e retorno de lucro intermitente para gerenciar o risco. A estratégia se concentra principalmente na reversão de preços para o suporte em tendências ascendentes, aumentando a taxa de sucesso das negociações, definindo uma taxa de retorno de risco razoável.
A estratégia usa o EMA de 100 ciclos como um indicador de tendência, confirmando uma tendência ascendente quando o preço está acima do EMA. Ao mesmo tempo, o preço mínimo de 10 ciclos é calculado como suporte de curto prazo, quando o preço retorna perto do suporte ((suporte +0.5*ATR) quando se procura uma oportunidade de entrada. Após a entrada, o método de lucro intermitente é adotado, com uma posição de 50% de lucro em 5 vezes o ATR, e a posição restante é totalmente fechada em 10 vezes o ATR, além de definir 1 vez o ATR como um stop loss dinâmico. O risco de cada transação é controlado dentro de 3% do valor total da conta, para gerenciar o risco através do cálculo dinâmico do tamanho da posição.
A estratégia estabelece um sistema de negociação completo, combinando o acompanhamento de tendências e a reversão de posições de suporte, e realiza o gerenciamento de riscos por meio de ganhos e perdas dinâmicas em intervalos. A vantagem central da estratégia reside em seu mecanismo de controle de risco completo e lógica de negociação clara, mas ainda é necessário otimizar continuamente os parâmetros e as condições de entrada na prática para se adaptar a diferentes ambientes de mercado.
/*backtest
start: 2024-02-22 00:00:00
end: 2024-05-30 00:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Ultra-Profitable SMC Long-Only Strategy", shorttitle="Ultra_Profit_SMC", overlay=true)
// User Inputs
emaTrendLength = input.int(100, title="Trend EMA Length") // Faster EMA to align with aggressive trends
supportLookback = input.int(10, title="Support Lookback Period") // Short-term support zones
atrLength = input.int(14, title="ATR Length")
atrMultiplierSL = input.float(1.0, title="ATR Multiplier for Stop-Loss")
atrMultiplierTP1 = input.float(5.0, title="ATR Multiplier for TP1")
atrMultiplierTP2 = input.float(10.0, title="ATR Multiplier for TP2")
riskPercent = input.float(3.0, title="Risk per Trade (%)", step=0.1)
// Calculate Indicators
emaTrend = ta.ema(close, emaTrendLength) // Trend EMA
supportLevel = ta.lowest(low, supportLookback) // Support Level
atr = ta.atr(atrLength) // ATR
// Entry Conditions
isTrendingUp = close > emaTrend // Price above Trend EMA
nearSupport = close <= supportLevel + (atr * 0.5) // Price near support zone
longCondition = isTrendingUp and nearSupport
// Dynamic Stop-Loss and Take-Profit Levels
longStopLoss = supportLevel - (atr * atrMultiplierSL)
takeProfit1 = close + (atr * atrMultiplierTP1) // Partial Take-Profit at 5x ATR
takeProfit2 = close + (atr * atrMultiplierTP2) // Full Take-Profit at 10x ATR
// Position Sizing
capital = strategy.equity
tradeRisk = riskPercent / 100 * capital
positionSize = tradeRisk / (close - longStopLoss)
// Execute Long Trades
if (longCondition)
strategy.entry("Ultra Long", strategy.long, qty=positionSize)
// Exit Conditions
strategy.exit("Partial Exit", from_entry="Ultra Long", limit=takeProfit1, qty_percent=50) // Exit 50% at TP1
strategy.exit("Full Exit", from_entry="Ultra Long", limit=takeProfit2, qty_percent=100, stop=longStopLoss) // Exit the rest at TP2
// Plot Indicators
plot(emaTrend, color=color.blue, title="Trend EMA")
plot(supportLevel, color=color.green, title="Support Level", linewidth=2)