
Esta estrategia es una estrategia de ruptura que utiliza el indicador ATR para generar señales de negociación. La estrategia utiliza un sistema de línea recta para generar señales de negociación y construir posiciones de alto y bajo canal en el indicador ATR ampliado por la división de oro. Se puede obtener un gran beneficio en la tendencia y obtener pequeños beneficios estables en situaciones de crisis.
En el código se construye un sistema de transacciones de ruptura de la vía de Brin mediante la obtención de un indicador de ciclo ATR del precio de cierre, ampliado 1.618 veces como trayecto ascendente y 2.618 veces como trayecto descendente, en combinación con la línea de equilibrio eMa. Cuando el precio se rompe hacia arriba desde el trayecto descendente, el precio se vacía para obtener ganancias de seguimiento de tendencias.
Esta estrategia utiliza un filtro uniforme, seguimiento de canales ATR y el principio de segmentación de oro. Es capaz de rastrear de manera efectiva las tendencias de la línea media larga, tiene una buena estabilidad.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("ATR Long Only Strategy lower band buy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
len = input(52, type=input.integer, minval=1, title="Length")
mul = input(1.618, type=input.float, minval=0, title="Length")
mullow = input(2.618, type=input.float, minval=0, title="Length")
price = sma(close, 1)
average = ema(close, len)
diff = atr(len) * mul
difflow = atr(len) * mullow
bull_level = average + diff
bear_level = average - difflow
bull_cross = crossunder(price, bear_level)
bear_cross = crossunder(bull_level, price)
FromMonth = input(defval = 8, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 18, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2008, title = "From Year", minval = 2008)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 2020, title = "To Year", minval = 2019)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)
startTimeOk() => true
if (startTimeOk())
strategy.entry("KOP", strategy.long, when=bull_cross)
strategy.close("KOP", when=bear_cross) //strategy.entry("Sell", strategy.short, when=bear_cross)
plot(price, title="price", color=color.black, transp=50, linewidth=2)
a0 = plot(average, title="average", color=color.red, transp=50, linewidth=1)
a1 = plot(bull_level, title="bull", color=color.green, transp=50, linewidth=1)
a2 = plot(bear_level, title="bear", color=color.red, transp=50, linewidth=1)
fill(a0, a1, color=color.green, transp=97)
fill(a0, a2, color=color.red, transp=97)