
La estrategia es una estrategia de negociación en línea corta basada en varios indicadores para determinar la tendencia. Utiliza en conjunto ocho indicadores, incluidos WOW, BMA, BarColor, SuperTrend, DI, TTS, RSI y WTO, para determinar la dirección de la tendencia y tomar decisiones de compra y venta.
La estrategia comienza por calcular y determinar la dirección de la tendencia en los ocho indicadores: WOW, BMA, BarColor, SuperTrend, DI, TTS, RSI y WTO.
El indicador WOW se basa en la posición de la entidad en el precio para juzgar la tendencia a la volatilidad. Si la posición de la entidad está cerca de la vía superior, es un alza; si está cerca de la vía inferior, es una baja.
El indicador BMA es basado en la relación de la amplitud de la SMA para juzgar la tendencia, si el precio de cierre en la SMA se rompe el precio de cierre en la SMA es positivo y el precio de bajada es negativo.
El indicador de BarColor es un indicador de tendencias basado en el color de la línea K, con varias líneas de sol positivo y varias líneas de sol negativo.
El indicador SuperTrend es un indicador de tendencias de precios basado en el rango de fluctuación promedio, donde los precios son positivos por encima de la línea superior y son bajistas por debajo de la línea inferior.
El DI es un indicador de tendencias basado en la relación entre el tamaño y el volumen de la dinámica de la curva. El volumen de la curva es más grande que el volumen de la curva y es más positivo que negativo.
El indicador TTS juzga la tendencia a la volatilidad en función de la relación entre el precio y la posición de la línea media.
El indicador RSI determina la dirección de la tendencia en función de la posición de los indicadores más fuertes y más débiles.
Los indicadores de la OMC juzgan la dirección de la tendencia en función de la amplitud de los indicadores de volatilidad.
Luego, la estrategia calcula el número de posiciones positivas en los 8 indicadores y, de acuerdo con esto, traza una línea de soporte y resistencia a la baja de SILA. Cuanto mayor sea el número de líneas de soporte y resistencia, mayor será la señal de tendencia.
Cuando varios indicadores son positivos, si el precio de cierre está por encima de la línea de soporte del nivel más bajo, se genera una señal de compra; cuando varios indicadores son negativos, si el precio de cierre está por debajo de la línea de resistencia del nivel más bajo, se genera una señal de venta.
Además, la estrategia utiliza la forma de la línea K para evaluar la oportunidad de una corrección a corto plazo, buscando puntos de entrada más favorables cuando la tendencia se invierte.
La estrategia no se basa en un solo indicador, sino en la combinación de ocho indicadores de tendencia de uso común para determinar la tendencia en múltiples direcciones, lo que puede mejorar la precisión y la fiabilidad de los juicios.
La estrategia se basa en señales de avance y descenso de varios indicadores, y se utiliza el sistema SILA para trazar líneas de soporte y resistencia en varios niveles. La mayor cantidad de líneas indica la mayor intensidad de la señal de tendencia. Esto puede ayudar a los comerciantes a identificar aún más la debilidad de la señal.
La estrategia no solo se basa en la dirección de los indicadores de tendencia, sino que también se combina con la forma de la línea K para buscar oportunidades de retroceso a corto plazo, ingresando en el punto de reversión de la tendencia y obteniendo una posición de entrada más favorable.
La estrategia utiliza varios indicadores, entre los cuales puede haber discrepancias en ciertos casos, que requieren el propio equilibrio del comerciante, lo que aumenta la dificultad de la toma de decisiones.
Muchos de los indicadores de esta estrategia utilizan parámetros por defecto, que pueden necesitar ser optimizados para obtener los mejores resultados.
En caso de que se produzca un evento de gran escala como un ‘black swan’, el riesgo sistémico puede provocar que los indicadores técnicos normales no funcionen, por lo que se debe prestar atención a la evaluación del riesgo sistémico en el mercado.
Los retiros pueden ser más grandes en la fase de expansión, de acuerdo con la tendencia, y se debe tener en cuenta el control del tamaño de las transacciones individuales para limitar los retiros.
Los parámetros de cada indicador, como la longitud del ciclo, el tamaño del valor, etc., se pueden optimizar mediante un método más sistemático para encontrar la combinación óptima de parámetros.
Se puede considerar el aumento del stop loss móvil o el stop loss porcentual para controlar la retirada.
Se pueden introducir indicadores cuantitativos como el MAVP, OBV, en combinación con indicadores de tendencia, para mejorar la precisión de las decisiones tácticas.
Se puede estudiar la proporción de posiciones en diferentes fases del mercado para aumentar las posiciones cuando la tendencia es más clara.
Esta estrategia Overall es una estrategia de comercio de línea corta de seguimiento de tendencias de múltiples indicadores. Utiliza la dirección de la tendencia de los indicadores en forma integrada, utiliza el sistema SILA para identificar la intensidad de la señal y ayuda a la optimización de la entrada en forma de línea K. Esta estrategia puede mejorar la precisión de los juicios, pero debe tener en cuenta el riesgo de discrepancia de los diferentes indicadores.
/*backtest
start: 2023-10-16 00:00:00
end: 2023-11-15 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// (c) Noro
//2017
//@version=2
strategy(title="Noro's SILA v1.6L Strategy", shorttitle="SILA v1.6L str", overlay=true)
//settings
sensup = input(5, title="Uptrend-sensivity", minval = -8, maxval = 8)
sensdn = input(5, title="Downtrend-sensivity", minval = -8, maxval = 8)
usewow = input(true, title="Use trend-indicator WOW?")
usebma = input(true, title="Use trend-indicator BestMA?")
usebc = input(true, title="Use trend-indicator BarColor?")
usest = input(true, title="Use trend-indicator SuperTrend?")
usedi = input(true, title="Use trend-indicator DI?")
usetts = input(true, title="Use trend-indicator TTS?")
usersi = input(true, title="Use trend-indicator RSI?")
usewto = input(true, title="Use trend-indicator WTO?")
dist = input(100, title="Distance SILA-lines", minval = 0, maxval = 100)
usetl = input(true, title="Need SILA-lines?")
usebgup = input(true, title="Need uptrend-background?")
usebgdn = input(true, title="Need downtrend-background?")
usealw = input(true, title="Need background always?")
usearr = input(true, title="Need new-trend-arrows?")
useloco = input(true, title="Need locomotive-arrows?")
usemon = input(true, title="Need money?") //joke
// WOW 1.0 method
lasthigh = highest(close, 30)
lastlow = lowest(close, 30)
center = (lasthigh +lastlow) / 2
body = (open + close) / 2
trend1 = body > center ? 1 : body < center ? -1 : trend1[1]
trend2 = center > center[1] ? 1 : center < center[1] ? -1 : trend2[1]
WOWtrend = usewow == true ? trend1 == 1 and trend2 == 1 ? 1 : trend1 == -1 and trend2 == -1 ? -1 : WOWtrend[1] : 0
// BestMA 1.0 method
SMAOpen = sma(open, 30)
SMAClose = sma(close, 30)
BMAtrend = usebma == true ? SMAClose > SMAOpen ? 1 : SMAClose < SMAOpen ? -1 : BMAtrend[1] : 0
// BarColor 1.0 method
color = close > open ? 1 : 0
score = color + color[1] + color[2] + color[3] + color[4] + color[5] + color[6] + color[7]
BARtrend = usebc == true ? score > 5 ? 1 : score < 3 ? -1 : BARtrend[1] : 0
// SuperTrend mehtod
Up = hl2 - (7 * atr(3))
Dn = hl2 + (7 * atr(3))
TrendUp = close[1] > TrendUp[1] ? max(Up, TrendUp[1]) : Up
TrendDown = close[1] < TrendDown[1] ? min(Dn, TrendDown[1]) : Dn
SUPtrend = usest == true ? close > TrendDown[1] ? 1: close < TrendUp[1]? -1 : SUPtrend[1] : 0
//DI method
th = 20
TrueRange = max(max(high-low, abs(high-nz(close[1]))), abs(low-nz(close[1])))
DirectionalMovementPlus = high-nz(high[1]) > nz(low[1])-low ? max(high-nz(high[1]), 0): 0
DirectionalMovementMinus = nz(low[1])-low > high-nz(high[1]) ? max(nz(low[1])-low, 0): 0
SmoothedTrueRange = nz(SmoothedTrueRange[1]) - (nz(SmoothedTrueRange[1])/14) + TrueRange
SmoothedDirectionalMovementPlus = nz(SmoothedDirectionalMovementPlus[1]) - (nz(SmoothedDirectionalMovementPlus[1])/14) + DirectionalMovementPlus
SmoothedDirectionalMovementMinus = nz(SmoothedDirectionalMovementMinus[1]) - (nz(SmoothedDirectionalMovementMinus[1])/14) + DirectionalMovementMinus
DIPlus = SmoothedDirectionalMovementPlus / SmoothedTrueRange * 100
DIMinus = SmoothedDirectionalMovementMinus / SmoothedTrueRange * 100
DItrend = usedi == true ? DIPlus > DIMinus ? 1 : -1 : 0
//TTS method (Trend Trader Strategy)
//Start of HPotter's code
//Andrew Abraham' idea
avgTR = wma(atr(1), 21)
highestC = highest(21)
lowestC = lowest(21)
hiLimit = highestC[1]-(avgTR[1] * 3)
loLimit = lowestC[1]+(avgTR[1] * 3)
ret = iff(close > hiLimit and close > loLimit, hiLimit, iff(close < loLimit and close < hiLimit, loLimit, nz(ret[1], 0)))
pos = iff(close > ret, 1, iff(close < ret, -1, nz(pos[1], 0)))
//End of HPotter's code
TTStrend = usetts == true ? pos == 1 ? 1 : pos == -1 ? -1 : TTStrend[1] : 0
//RSI method
RSIMain = (rsi(close, 13) - 50) * 1.5
rt = iff(RSIMain > -10, 1, iff(RSIMain < 10, -1, nz(pos[1], 0)))
RSItrend = usersi == true ? rt : 0
//WTO ("WaveTrend Oscilator") method by LazyBear
//Start of LazyBear's code
esa = ema(hlc3, 10)
d = ema(abs(hlc3 - esa), 10)
ci = (hlc3 - esa) / (0.015 * d)
tci = ema(ci, 21)
//End of LazyBear's code
WTOtrend = usewto == true ? tci > 0 ? 1 : tci < 0 ? -1 : 0 : 0
//plots
trends = usemon == true ? WOWtrend + BMAtrend + BARtrend + SUPtrend + DItrend + TTStrend + RSItrend + WTOtrend: -1 * (WOWtrend + BMAtrend + BARtrend + SUPtrend + DItrend + TTStrend + RSItrend + WTOtrend)
pricehi = sma(high, 10)
pricelo = sma(low, 10)
per = usetl == 1 ? dist / 10000 : 0
color1 = usetl == true ? trends > 0 ? blue : na : na
plot(pricelo * (1 - per), color=color1, linewidth=1, title="SILA-line")
color2 = usetl == true ? trends > 1 ? blue : na : na
plot(pricelo * (1 - 2 * per), color=color2, linewidth=1, title="SILA-line")
color3 = usetl == true ? trends > 2 ? blue : na : na
plot(pricelo * (1 - 3 * per), color=color3, linewidth=1, title="SILA-line")
color4 = usetl == true ? trends > 3 ? blue : na : na
plot(pricelo * (1 - 4 * per), color=color4, linewidth=1, title="SILA-line")
color5 = usetl == true ? trends > 4 ? blue : na : na
plot(pricelo * (1 - 5 * per), color=color5, linewidth=1, title="SILA-line")
color6 = usetl == true ? trends > 5 ? blue : na : na
plot(pricelo * (1 - 6 * per), color=color6, linewidth=1, title="SILA-line")
color7 = usetl == true ? trends > 6 ? blue : na : na
plot(pricelo * (1 - 7 * per), color=color7, linewidth=1, title="SILA-line")
color8 = usetl == true ? trends > 7 ? blue : na : na
plot(pricelo * (1 - 8 * per), color=color8, linewidth=1, title="SILA-line")
color10 = usetl == true ? trends < 0 ? black : na : na
plot(pricehi * (1 + per), color=color10, linewidth=1, title="SILA-line")
color11 = usetl == true ? trends < -1 ? black : na : na
plot(pricehi * (1 + 2 * per), color=color11, linewidth=1, title="SILA-line")
color12 = usetl == true ? trends < -2 ? black : na : na
plot(pricehi * (1 + 3 * per), color=color12, linewidth=1, title="SILA-line")
color13 = usetl == true ? trends < -3 ? black : na : na
plot(pricehi * (1 + 4 * per), color=color13, linewidth=1, title="SILA-line")
color14 = usetl == true ? trends < -4 ? black : na : na
plot(pricehi * (1 + 5 * per), color=color14, linewidth=1, title="SILA-line")
color15 = usetl == true ? trends < -5 ? black : na : na
plot(pricehi * (1 + 6 * per), color=color15, linewidth=1, title="SILA-line")
color16 = usetl == true ? trends < -6 ? black : na : na
plot(pricehi * (1 + 7 * per), color=color16, linewidth=1, title="SILA-line")
color17 = usetl == true ? trends < -7 ? black : na : na
plot(pricehi * (1 + 8 * per), color=color17, linewidth=1, title="SILA-line")
//background
col = usebgup == true and trends >= sensup ? 1 : usebgdn == true and trends <= (-1 * sensdn) ? -1 : usealw == true ? col[1] : 0
bgcolor = col == 1 ? lime : col == -1 ? red : na
//bgcolor(bgcolor, transp=70)
//arrows
posi = trends >= sensup ? 1 : trends <= (-1 * sensdn) ? -1 : posi[1]
arr = usearr == true ? posi == 1 and posi[1] < 1 ? 1 : posi == -1 and posi[1] > -1 ? -1 : na : na
//plotarrow(arr == 1 ? 1 : na, title="UpArrow", colorup=blue, maxheight=60, minheight=50, transp=0)
//plotarrow(arr == -1 ? -1 : na, title="DnArrow", colordown=blue, maxheight=60, minheight=50, transp=0)
//locomotive
bar = close > open ? 1 : close < open ? -1 : 0
locotop = bar == -1 and bar[1] == 1 and bar[2] == 1 ? 1 : 0
locobot = bar == 1 and bar[1] == -1 and bar[2] == -1 ? 1 : 0
entry = useloco == false ? 1 : posi == posi[1] ? (locotop == 1 and posi == -1) or (locobot == 1 and posi == 1) ? 1 : entry[1] : 0
//plotarrow(locobot == 1 and entry[1] == 0 and posi == 1 ? 1 : na, title="UpLocomotive", colorup=yellow, maxheight=60, minheight=50, transp=0)
//plotarrow(locotop == 1 and entry[1] == 0 and posi == -1 ? -1 : na, title="DnLocomotive", colordown=yellow, maxheight=60, minheight=50, transp=0)
longCondition = arr == 1
if (longCondition)
strategy.entry("Long", strategy.long)
shortCondition = arr == -1
if (shortCondition)
strategy.entry("Short", strategy.short)