Reversão média com estratégia de entrada incremental

Autora:ChaoZhang, Data: 2024-01-29
Tags:

img

Resumo

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.

Estratégia lógica

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.

Análise das vantagens

A estratégia de reversão média com entrada incremental tem as seguintes vantagens principais:

  1. Muito sistematizado para reduzir a interferência emocional
  2. A entrada incremental obtém maiores lucros durante a alta volatilidade
  3. Parâmetros personalizáveis como o período de MA adequam-se a diferentes instrumentos
  4. Gerenciamento de posições inteligente adapta automaticamente longo/curto
  5. Reversões para fechar posições com destino a uma saída óptima

Análise de riscos

Os riscos a considerar incluem:

  1. Fragmentos da dependência dos indicadores técnicos
  2. Desaceleração da tendência que provoca retrações prolongadas
  3. Configurações de MA deficientes levam a paradas frequentes
  4. Dimensão da posição maior em função da entrada incremental

As saídas podem ser otimizadas, filtros de tendência adicionados, dimensionamento de posição reduzido para mitigar os riscos acima.

Oportunidades de melhoria

A estratégia pode ser reforçada por:

  1. Adição de filtros de tendência para evitar operações desfavoráveis
  2. Otimizar os aumentos de entrada com volatilidade
  3. Incorporação de paradas de trailing para bloquear os lucros
  4. Experimentar com diferentes médias móveis
  5. Utilização de filtros para reduzir os falsos sinais

Conclusão

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


Mais.