
La estrategia de retorno a la media gradual para abrir posiciones es un guión de estrategia de comercio cuantitativo avanzado diseñado por HedgerLabs, que se centra en la técnica de retorno a la media de los mercados financieros. La estrategia apunta a los comerciantes que prefieren un método sistematizado y que enfatizan el método de apertura de posiciones gradual basado en un promedio móvil relativo a los precios.
El núcleo de esta estrategia es el simple movimiento medio (SMA). Todas las entradas y salidas se realizan alrededor de la media móvil. El comerciante puede personalizar la longitud del MA para que se adapte a diferentes estilos de negociación y períodos de tiempo.
La peculiaridad de esta estrategia reside en su mecanismo de apertura progresiva. La estrategia inicia la primera posición cuando el precio se desvía de la media móvil por más de un cierto porcentaje. Posteriormente, a medida que el precio continúa desviándose de la media móvil, la estrategia aumenta las posiciones de manera progresiva, según lo definido por el comerciante. Este método permite obtener mayores ganancias cuando la volatilidad del mercado aumenta.
La estrategia también maneja las posiciones de manera inteligente. Hacer más cuando el precio está por debajo de la media móvil y dejar de lado cuando está por encima, para adaptarse a las diferentes condiciones del mercado. El punto de equilibrio se establece cuando el precio toca la media móvil, con el objetivo de capturar un potencial punto de inflexión para lograr un cierre óptimo de la posición.
A través de la activacióncalc_on_every_tickLa estrategia permite evaluar continuamente las condiciones del mercado y reaccionar a tiempo.
La estrategia de apertura progresiva de la regresión a la media tiene las siguientes ventajas:
La estrategia también tiene sus riesgos:
Se puede mitigar este riesgo optimizando adecuadamente las salidas, evaluando mejor las tendencias o reduciendo adecuadamente el margen de apertura de posiciones.
La estrategia puede ser optimizada en los siguientes aspectos:
La estrategia de apertura de posición progresiva de retorno al promedio se centra en la técnica de negociación de retorno al promedio, que utiliza una posición de gestión progresiva sistematizada y parámetros personalizables para diferentes variedades de operaciones. La estrategia funciona bien en mercados volátiles y es adecuada para los operadores cuantitativos que se centran en operaciones de línea corta.
/*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