Esta estratégia utiliza principalmente o preço mais alto, o preço mais baixo e a média móvel exponencial (EMA) para confirmar inversões de tendência e gerar sinais de negociação. A estratégia primeiro calcula os preços mais altos e mais baixos dentro de um período de retrospectiva especificado, em seguida, determina se o preço de fechamento atual está abaixo do preço mais baixo correspondente ao preço mais alto (confirmação de reversão de baixa) ou acima do preço mais alto correspondente ao preço mais baixo (confirmação de reversão de alta). Uma vez que um sinal de confirmação de reversão aparece, a estratégia gera um sinal de entrada correspondente. A principal vantagem desta estratégia é sua capacidade de capturar oportunidades de reversão de tendência, enquanto o principal risco é que depois que um sinal de confirmação de reversão aparece, os preços podem experimentar flutuações repetidas em vez de uma tendência unidirecional.
A Estratégia de Negociação de Confirmação de Reversão de Multiframe identifica oportunidades potenciais de reversão de tendência usando o preço mais alto, o preço mais baixo e a EMA, gerando sinais de entrada correspondentes. A vantagem da estratégia é sua capacidade de capturar reversões de tendência, mas também enfrenta problemas de negociação frequente e controle de risco insuficiente. Ao introduzir mecanismos de stop-loss e take-profit, combinando outros indicadores, otimização de parâmetros e dimensionamento de posição, o desempenho e a estabilidade da estratégia podem ser melhorados. Nas aplicações práticas, os parâmetros da estratégia e as medidas de controle de risco precisam ser ajustados de acordo com instrumentos comerciais específicos e ambientes de mercado.
/*backtest start: 2023-05-05 00:00:00 end: 2024-05-10 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Reversal Confimation Strategy", overlay=true) // Indicator inputs lookback = input.int(50, 'Lookback Period', minval=1, step=1) downColor = input(color.red, 'Shape Color Down') upColor = input(color.green, 'Shape Color Up') // Indicator calculations find_highest = ta.highest(high, lookback) find_lowest = ta.lowest(low, lookback) ema = ta.ema(close, lookback) var dnRv = 0.0 var dnRv_trigger = false var upRv = 0.0 var upRv_trigger = false if high == find_highest dnRv_trigger := false if low == find_lowest upRv_trigger := false for i = 0 to lookback - 1 if high[i] == find_highest dnRv := low[i] for i = 0 to lookback - 1 if low[i] == find_lowest upRv := high[i] dnRv_signal = close < dnRv and dnRv_trigger == false upRv_signal = close > upRv and upRv_trigger == false if dnRv_signal dnRv_trigger := true if upRv_signal upRv_trigger := true // Entry and exit conditions if dnRv_signal strategy.entry("Sell", strategy.short) if upRv_signal strategy.entry("Buy", strategy.long) // Plotting plotshape(dnRv_signal ? 1 : 0, style=shape.triangledown, location=location.abovebar, color=downColor, size=size.small) plotshape(upRv_signal ? 1 : 0, style=shape.triangleup, location=location.belowbar, color=upColor, size=size.small)