Esta estratégia combina a média móvel exponencial de 200 dias (200 EMA), o preço médio ponderado por volume (VWAP) e o índice de fluxo de dinheiro (MFI) para gerar sinais de compra e venda. A ideia principal é usar a combinação desses três indicadores para determinar a direção e a força da tendência e gerar sinais de negociação quando o preço atravessa a 200 EMA e é confirmado pelos indicadores VWAP e MFI. Além disso, uma EMA de 200 de um período de tempo mais longo é introduzida como um filtro de tendência, e os negócios são executados apenas quando as tendências nos prazos atual e superior se alinham. Além disso, a continuidade dos movimentos de preços é avaliada para melhorar a confiabilidade dos sinais.
Ao combinar os indicadores de EMA, VWAP e MFI de 200 dias, considerando tendências em prazos mais longos e a continuidade dos movimentos de preços, esta estratégia constrói um sistema de negociação de tendência relativamente robusto. A estratégia filtra falsos sinais analisando abrangentemente várias condições, melhorando a precisão do tempo de entrada. Ao mesmo tempo, a flexibilidade dos parâmetros da estratégia permite otimização com base em diferentes mercados e estilos de negociação. No entanto, a estratégia também envolve certos riscos, como perdas em mercados agitados ou em pontos de virada da tendência, e desempenho ruim devido a configurações de parâmetros inadequadas. No futuro, a estratégia pode ser ainda mais otimizada e melhorada em termos de otimização de parâmetros, introdução de indicadores auxiliares, gerenciamento de risco e outros aspectos. No geral, esta estratégia fornece uma estrutura abrangente e viável para o acompanhamento de tendências.
/*backtest start: 2023-05-08 00:00:00 end: 2024-05-13 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("200 EMA, VWAP, MFI Strategy - Visible Signals", overlay=true, pyramiding=0) // Inputs for dynamic adjustments buffer = input.float(0.2, title="EMA Buffer Percentage", step=0.1) / 100 higherTimeframe = input.timeframe("15", title="Higher Timeframe") mfiBuyThreshold = input(60, title="MFI Buy Threshold") mfiSellThreshold = input(40, title="MFI Sell Threshold") consecutiveCloses = input.int(1, title="Consecutive Closes for Confirmation") // Calculate the 200-period EMA ema200 = ta.ema(close, 200) emaBufferedHigh = ema200 * (1 + buffer) emaBufferedLow = ema200 * (1 - buffer) emaHigher = request.security(syminfo.tickerid, higherTimeframe, ta.ema(close, 200)) // VWAP calculation vwap = ta.vwap(hlc3) // Money Flow Index calculation mfiLength = 14 mfi = ta.mfi(close, mfiLength) // Plotting the indicators plot(ema200, title="200 EMA", color=color.blue) plot(vwap, title="VWAP", color=color.orange) plot(mfi, title="MFI", color=color.purple) hline(50, "MFI Reference", color=color.gray, linestyle=hline.style_dashed) plot(emaHigher, title="Higher TF EMA", color=color.red) // Price action confirmation isUpTrend = ta.rising(close, consecutiveCloses) isDownTrend = ta.falling(close, consecutiveCloses) // Define entry conditions longCondition = close > emaBufferedHigh and close > vwap and mfi > mfiBuyThreshold and close > emaHigher and isUpTrend shortCondition = close < emaBufferedLow and close < vwap and mfi < mfiSellThreshold and close < emaHigher and isDownTrend // Trading execution if (longCondition) strategy.entry("Buy", strategy.long) if (shortCondition) strategy.entry("Sell", strategy.short) // Plot shapes for signals plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, size=size.small, title="Buy Signal", text="Buy") plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, size=size.small, title="Sell Signal", text="Sell")