La estrategia determina el momento de comprar y vender calculando las medias móviles simples de los máximos y mínimos y comparándolas con el precio de cierre actual. Su objetivo es capturar las señales de que los precios rompan la media para obtener oportunidades tempranas de tendencia.
Calcula el promedio móvil sencillo de la longitud de la cima de 4
Calcula el promedio móvil simple con una longitud baja de 4
Hacer una entrada adicional cuando el precio de cierre rompa la línea media del punto más alto
Cuando el precio de cierre cruza la línea media de los mínimos, se abre una entrada en el mercado.
Gestionar el riesgo con estrategias de stop loss y stop loss fijas
Utilizando indicadores simples y fáciles de entender
Capturar las señales de la ruptura de la línea media a tiempo
En la actualidad, la tecnología de la nube permite filtrar rápidamente parte del ruido para identificar tendencias.
La pequeña cantidad de computación puede reducir el consumo operativo de la estrategia
Estrategias basadas en la adaptabilidad para la expansión
Se necesitan parámetros razonables para evitar ser demasiado sensibles
No puede hacer frente a los riesgos de una gran ruptura
Existe un cierto riesgo de arbitraje de choque
No se puede ajustar automáticamente la posición de la parada de pérdida
Es difícil determinar la duración de las tendencias
Prueba de la influencia de diferentes parámetros en la calidad de la señal
Aumentar las condiciones de filtración para garantizar la efectividad de las brechas
Combinado con análisis de tendencias, evitar ser engañado
Desarrollo de estrategias para detener el deterioro dinámico
Optimización de los mecanismos de suspensión de pérdidas y mejora de la probabilidad de éxito de las estrategias
Prueba de la robustez de la estrategia en diferentes ciclos
La estrategia proporciona una idea básica de comercio de tendencias a través de un simple indicador para evaluar la dinámica de los precios. La lógica de negociación es extensible y se puede desarrollar como un sistema de cuantificación más sólido.
/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-13 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("HiLo", overlay=true)
// Testing a specific period
testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(4, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testStopYear = input(2017, "Backtest Stop Year")
testStopMonth = input(5, "Backtest Stop Month")
testStopDay = input(1, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)
// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)
testPeriod() =>
time >= testPeriodStart and time <= testPeriodStop ? true : false
//HiLo Strategy
length = input(4, minval=0)
displace = input(0, minval=0)
highsma = sma(high, length)
lowsma = sma(low, length)
longCondition = close > highsma[displace]
if (longCondition)
strategy.entry("long", true)
shortCondition = close < lowsma[displace]
if (shortCondition)
strategy.entry("short", false)
// Exit seems with a problem. it keeps saying the order's limit (2000) was reached even if I back test it just for a day.
// If the two lines bellow are commented, then it it works. Anyone? Any idea what's wrong?
// strategy.exit("exit", "long", profit=10, loss=5)
// strategy.exit("exit", "short", profit=10, loss=5)