
Trata-se de uma estratégia de negociação que combina o preço médio ponderado do volume de transação (VWAP) e a média móvel do índice de múltiplos períodos (EMA). A estratégia é usada principalmente para negociações diárias, especialmente para períodos de 15 minutos. A estratégia combina informações de volume de transação para determinar tendências de mercado e oportunidades de negociação, analisando a relação entre o preço e o VWAP e os diferentes períodos de EMA.
A estratégia usa EMAs de 10 ciclos, 20 ciclos e 200 ciclos, bem como VWAP como indicador central. A geração de sinais de negociação é baseada nas seguintes condições:
A estratégia, através da combinação de vários indicadores técnicos, constrói um sistema de negociação completo. A principal vantagem da estratégia reside no mecanismo de confirmação múltipla e no sistema de gerenciamento de risco perfeito. Embora haja um certo risco de atraso, a estabilidade e a lucratividade da estratégia podem ser melhoradas com a orientação de otimização recomendada.
/*backtest
start: 2024-02-21 00:00:00
end: 2024-11-24 00:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("VWAP EMA Breakout", overlay=true)
// Define Indicators
ema10 = ta.ema(close, 10)
ema20 = ta.ema(close, 20)
ema200 = ta.ema(close, 200)
vwap = ta.vwap(close)
atr = ta.atr(14)
// Price Conditions (Long)
priceAboveVWAP200EMA = close > vwap and close > ema200 and close > ema10 and close > ema20
bullishCandle = close > open
// Additional Conditions for VWAP and EMA Relationships (Long)
vwapAbove200EMA = vwap > ema200
emaConditions = ema10 > ema20 and ema20 > vwap and vwap > ema200
// Entry Conditions (Long)
longCondition = priceAboveVWAP200EMA and bullishCandle and vwapAbove200EMA and emaConditions
// Stop-Loss & Take-Profit (Long)
swingLow = ta.lowest(low, 10)
stopLossLong = swingLow - atr
riskLong = close - stopLossLong
takeProfitLong2 = close + (riskLong * 2) // 1:2 RR
takeProfitLong3 = close + (riskLong * 3) // 1:3 RR
// Execute Long Trade
if longCondition
strategy.entry("Long", strategy.long)
strategy.exit("TP 1:2", from_entry="Long", limit=takeProfitLong2, stop=stopLossLong)
strategy.exit("TP 1:3", from_entry="Long", limit=takeProfitLong3, stop=stopLossLong)
// Price Conditions (Short)
priceBelowVWAP200EMA = close < vwap and close < ema200 and close < ema10 and close < ema20
bearishCandle = close < open
// Additional Conditions for VWAP and EMA Relationships (Short)
vwapBelow200EMA = vwap < ema200
emaConditionsShort = ema10 < ema20 and ema20 < vwap and vwap < ema200
// Entry Conditions (Short)
shortCondition = priceBelowVWAP200EMA and bearishCandle and vwapBelow200EMA and emaConditionsShort
// Stop-Loss & Take-Profit (Short)
swingHigh = ta.highest(high, 10)
stopLossShort = swingHigh + atr
riskShort = stopLossShort - close
takeProfitShort2 = close - (riskShort * 2) // 1:2 RR
takeProfitShort3 = close - (riskShort * 3) // 1:3 RR
// Execute Short Trade
if shortCondition
strategy.entry("Short", strategy.short)
strategy.exit("TP 1:2", from_entry="Short", limit=takeProfitShort2, stop=stopLossShort)
strategy.exit("TP 1:3", from_entry="Short", limit=takeProfitShort3, stop=stopLossShort)
// Plot Indicators
plot(ema10, color=color.red, title="10 EMA")
plot(ema20, color=color.green, title="20 EMA")
plot(ema200, color=color.purple, title="200 EMA")
plot(vwap, color=color.white, title="VWAP")