
La estrategia es una estrategia de solo hacer más, que utiliza el precio para romper el límite inferior del canal ATR para determinar el momento de entrada, y la salida con la línea media del canal ATR o el límite superior del canal ATR como parada. Al mismo tiempo, también utiliza el ATR para calcular el precio de parada. La estrategia es adecuada para hacer operaciones de línea corta rápida.
Cuando el precio cae por debajo del límite inferior del canal ATR, indica que el precio ha bajado de forma anormal. En este caso, la estrategia hará una entrada adicional cuando se abra la siguiente línea K. El precio de parada será el precio de entrada menos el coeficiente de parada de ATR multiplicado por ATR. El precio de parada es la línea media del canal ATR o el límite del canal ATR, si el precio de cierre de la línea K actual es inferior al mínimo de la línea K anterior, el mínimo de la línea K anterior será el precio de la parada.
En concreto, la estrategia incluye principalmente la siguiente lógica:
La estrategia tiene las siguientes ventajas:
La estrategia también tiene sus riesgos:
Se puede reducir el riesgo mediante el ajuste del ciclo ATR, la reducción del factor de parada y otros métodos. También es importante elegir un corredor con tarifas comerciales más bajas.
La estrategia también puede ser optimizada en los siguientes aspectos:
La estrategia en su conjunto es una estrategia simple y práctica para romper la línea media de la línea corta. Tiene reglas de entrada claras, un estricto mecanismo de stop loss y un sistema de stop perfectos. También ofrece un espacio de optimización para ajustar algunos parámetros. Si el comerciante puede elegir el indicador adecuado y combinar el stop loss para controlar el riesgo, la estrategia debería poder obtener buenos resultados.
/*backtest
start: 2022-12-04 00:00:00
end: 2023-12-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Bcullen175
//@version=5
strategy("ATR Mean Reversion", overlay=true, initial_capital=100000,default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=6E-5) // Brokers rate (ICmarkets = 6E-5)
SLx = input(1.5, "SL Multiplier", tooltip = "Multiplies ATR to widen stop on volatile assests, Higher values reduce risk:reward but increase winrate, Values below 1.2 are not reccomended")
src = input(close, title="Source")
period = input.int(10, "ATR & MA PERIOD")
plot(open+ta.atr(period))
plot(open-ta.atr(period))
plot((ta.ema(src, period)), title = "Mean", color=color.white)
i_startTime = input(title="Start Filter", defval=timestamp("01 Jan 1995 13:30 +0000"), group="Time Filter", tooltip="Start date & time to begin searching for setups")
i_endTime = input(title="End Filter", defval=timestamp("1 Jan 2099 19:30 +0000"), group="Time Filter", tooltip="End date & time to stop searching for setups")
// Check filter(s)
f_dateFilter = true
atr = ta.atr(period)
// Check buy/sell conditions
var float buyPrice = 0
buyCondition = low < (open-ta.atr(period)) and strategy.position_size == 0 and f_dateFilter
sellCondition = (high > (ta.ema(close, period)) and strategy.position_size > 0 and close < low[1]) or high > (open+ta.atr(period))
stopDistance = strategy.position_size > 0 ? ((buyPrice - atr)/buyPrice) : na
stopPrice = strategy.position_size > 0 ? (buyPrice - SLx*atr): na
stopCondition = strategy.position_size > 0 and low < stopPrice
// Enter positions
if buyCondition
strategy.entry(id="Long", direction=strategy.long)
if buyCondition[1]
buyPrice := open
// Exit positions
if sellCondition or stopCondition
strategy.close(id="Long", comment="Exit" + (stopCondition ? "SL=true" : ""))
buyPrice := na
// Draw pretty colors
plot(buyPrice, color=color.lime, style=plot.style_linebr)
plot(stopPrice, color=color.red, style=plot.style_linebr, offset=-1)