
La estrategia es una estrategia de ruptura de tendencia basada en el indicador ATR. Su principal idea es realizar operaciones de ruptura de tendencia cuando el precio supera un determinado múltiplo de ATR. La estrategia también incluye la confirmación de la tendencia y la función de limitar el comercio utilizando el rango de fechas.
La estrategia utiliza el indicador ATR para determinar la amplitud de las fluctuaciones de los precios. ATR representa la amplitud real promedio, que mide la amplitud de las fluctuaciones de los precios promedio en un período de tiempo determinado.
Cuando el precio sube, se hace una operación de multiplicación cuando el precio sube, se hace una operación de multiplicación cuando el precio sube, se hace una operación de multiplicación cuando el precio sube, se hace una operación de comprobación cuando el precio baja, se hace una operación de comprobación cuando el precio baja, se hace una operación de comprobación cuando el precio baja.
Además, la estrategia incluye las variables BOOL que requieren posiciones largas (needlong) y que requieren posiciones cortas (needshort), que se pueden controlar solo para hacer más o solo para hacer menos. La estrategia también establece un rango de fechas para negociar solo entre las fechas especificadas, lo que permite un límite de rango de tiempo.
La estrategia utiliza la variable de tamaño para determinar la posición, y calcula el número de manos en función de la situación de la posición. El número de manos se calcula en función del porcentaje de derechos e intereses de la cuenta.
La idea general de esta estrategia es clara y fácil de entender. El uso de indicadores ATR para adaptarse automáticamente a la volatilidad del mercado es una estrategia de seguimiento de tendencias generalizada.
/*backtest
start: 2023-09-30 00:00:00
end: 2023-10-30 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=3
strategy(title = "Noro's Volty Strategy v1.0", shorttitle = "Volty 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 100)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(false, defval = false, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
length = input(5)
numATRs = input(0.75)
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
//Indicator
atrs = sma(tr, length) * numATRs
//Trading
size = strategy.position_size
lot = 0.0
lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1]
if (not na(close[length])) and needlong
strategy.entry("L", strategy.long, lot, stop = close + atrs, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if (not na(close[length])) and needlong == false
strategy.entry("L", strategy.long, 0, stop = close + atrs, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if (not na(close[length])) and needshort
strategy.entry("S", strategy.short, lot, stop = close - atrs, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if (not na(close[length])) and needshort == false
strategy.entry("S", strategy.short, 0, stop = close - atrs, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))