Esta estratégia combina múltiplos indicadores como EMA, MACD, VWAP e RSI para capturar oportunidades de negociação de alta probabilidade. Ele usa a EMA para determinar a direção da tendência, MACD para impulso, VWAP para volume e RSI para condições de sobrecompra e sobrevenda.
Esta estratégia combina múltiplos indicadores para avaliar as condições do mercado e gerar sinais de negociação, enquanto usa um stop loss para proteger os lucros. Os parâmetros da estratégia podem ser ajustados de acordo com as preferências do usuário, aumentando a flexibilidade da estratégia. No entanto, a estratégia pode ter um desempenho fraco em mercados agitados e enfrentar maiores retrações durante inversões de tendência, por isso precisa ser otimizada e melhorada para diferentes mercados e instrumentos. As otimizações futuras podem considerar adicionar mais condições de filtragem, métodos dinâmicos de stop loss, otimização de parâmetros e dimensionamento de posição para melhorar a estabilidade e lucratividade da estratégia.
/*backtest start: 2024-04-01 00:00:00 end: 2024-04-30 23:59:59 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Intraday Strategy", overlay=true) // Input parameters emaLength = input.int(50, title="EMA Length") macdShort = input.int(12, title="MACD Short Period") macdLong = input.int(26, title="MACD Long Period") macdSignal = input.int(9, title="MACD Signal Period") rsiLength = input.int(14, title="RSI Length") rsiOverbought = input.int(70, title="RSI Overbought Level") rsiOversold = input.int(30, title="RSI Oversold Level") risk = input.float(1, title="Risk Percentage", minval=0.1, step=0.1) trailOffset = input.float(0.5, title="Trailing Stop Offset", minval=0.1, step=0.1) // Calculating indicators ema = ta.ema(close, emaLength) [macdLine, signalLine, _] = ta.macd(close, macdShort, macdLong, macdSignal) rsi = ta.rsi(close, rsiLength) vwap = ta.vwap(close) // Entry conditions longCondition = ta.crossover(macdLine, signalLine) and close > ema and rsi < rsiOverbought and close > vwap shortCondition = ta.crossunder(macdLine, signalLine) and close < ema and rsi > rsiOversold and close < vwap // Exit conditions longExitCondition = ta.crossunder(macdLine, signalLine) or close < ema shortExitCondition = ta.crossover(macdLine, signalLine) or close > ema // Position sizing based on risk percentage capital = strategy.equity positionSize = (capital * (risk / 100)) / close // Executing trades if (longCondition) strategy.entry("Long", strategy.long, qty=1) if (shortCondition) strategy.entry("Short", strategy.short, qty=1) if (longExitCondition) strategy.close("Long") if (shortExitCondition) strategy.close("Short") // Trailing stop loss if (strategy.position_size > 0) strategy.exit("Trailing Stop Long", from_entry="Long", trail_price=close, trail_offset=trailOffset) if (strategy.position_size < 0) strategy.exit("Trailing Stop Short", from_entry="Short", trail_price=close, trail_offset=trailOffset) // Plotting indicators plot(ema, title="EMA", color=color.blue) hline(rsiOverbought, "Overbought", color=color.red) hline(rsiOversold, "Oversold", color=color.green) plot(rsi, title="RSI", color=color.purple) plot(vwap, title="VWAP", color=color.orange)