A estratégia de reversão média com entrada incremental projetada pela HedgerLabs é um roteiro de estratégia de negociação avançado focado na técnica de reversão média nos mercados financeiros.
O centro desta estratégia é a média móvel simples (SMA) em torno da qual todas as entradas e saídas giram.
A estratégia de entrada incremental é única, pois inicia uma primeira posição quando o preço se desvia da MA por uma porcentagem especificada. As entradas subsequentes são feitas em etapas incrementais, conforme definido pelo comerciante, à medida que o preço se afasta da MA.
A estratégia gerencia de forma inteligente as posições entrando em long quando o preço está abaixo da MA e em short quando está acima para se adaptar às condições de mercado em mudança.
As saídas são determinadas quando o preço toca o MA, com o objetivo de fechar posições em pontos de reversão potenciais para resultados otimizados.
Com calcula_on_every_tick habilitado, a estratégia avalia continuamente o mercado para garantir uma reação rápida.
A estratégia de reversão média com entrada incremental tem as seguintes vantagens principais:
Os riscos a considerar incluem:
As saídas podem ser otimizadas, filtros de tendência adicionados, dimensionamento de posição reduzido para mitigar os riscos acima.
A estratégia pode ser reforçada por:
A estratégia de reversão média com entrada incremental concentra-se em técnicas de reversão média usando uma abordagem sistematizada de dimensionamento de posição incremental. Com configurações personalizáveis, é adaptável em diferentes instrumentos de negociação.
/*backtest start: 2023-12-29 00:00:00 end: 2024-01-28 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Mean Reversion with Incremental Entry by HedgerLabs", overlay=true, calc_on_every_tick=true) // Input for adjustable settings maLength = input.int(30, title="MA Length", minval=1) initialPercent = input.float(5, title="Initial Percent for First Order", minval=0.01, step=0.01) percentStep = input.float(1, title="Percent Step for Additional Orders", minval=0.01, step=0.01) // Calculating Moving Average ma = ta.sma(close, maLength) // Plotting the Moving Average plot(ma, "Moving Average", color=color.blue) var float lastBuyPrice = na var float lastSellPrice = na // Function to calculate absolute price percentage difference pricePercentDiff(price1, price2) => diff = math.abs(price1 - price2) / price2 * 100 diff // Initial Entry Condition Check Function initialEntryCondition(price, ma, initialPercent) => pricePercentDiff(price, ma) >= initialPercent // Enhanced Entry Logic for Buy and Sell if (low < ma) if (na(lastBuyPrice)) if (initialEntryCondition(low, ma, initialPercent)) strategy.entry("Buy", strategy.long) lastBuyPrice := low else if (low < lastBuyPrice and pricePercentDiff(low, lastBuyPrice) >= percentStep) strategy.entry("Buy", strategy.long) lastBuyPrice := low if (high > ma) if (na(lastSellPrice)) if (initialEntryCondition(high, ma, initialPercent)) strategy.entry("Sell", strategy.short) lastSellPrice := high else if (high > lastSellPrice and pricePercentDiff(high, lastSellPrice) >= percentStep) strategy.entry("Sell", strategy.short) lastSellPrice := high // Exit Conditions - Close position if price touches the MA if (close >= ma and strategy.position_size > 0) strategy.close("Buy") lastBuyPrice := na if (close <= ma and strategy.position_size < 0) strategy.close("Sell") lastSellPrice := na // Reset last order price when position is closed if (strategy.position_size == 0) lastBuyPrice := na lastSellPrice := na