Esta estratégia é uma estratégia de negociação de curto prazo que identifica a tendência com base em múltiplos indicadores.
A estratégia calcula e avalia primeiro a direcção da tendência dos 8 indicadores - WOW, BMA, BarColor, SuperTrend, DI, TTS, RSI e OMC.
O indicador WOW julga a tendência de alta ou baixa com base na localização do corpo.
O indicador BMA julga a tendência pela relação entre a SMA de aberto e fechado.
O indicador BarColor julga a tendência pela cor dos candelabros. Velas amarelas contínuas sugerem alta, enquanto as velas pretas sugerem baixa.
O indicador SuperTrend avalia a tendência com base na localização do preço em relação à faixa média.
O indicador de DI julga a tendência pela relação entre o movimento direcional positivo e negativo.
O indicador TTS avalia a tendência com base na localização dos preços em relação à média móvel.
O indicador RSI avalia a direção da tendência com base no nível do índice de força relativa.
O indicador da OMC avalia a direcção da tendência com base no oscilador de tendência da onda.
A estratégia conta, em seguida, o número de sinais de alta dos 8 indicadores e traça as linhas de suporte e resistência SILA em conformidade.
Quando múltiplos indicadores sugerem alta, o sinal de compra é gerado quando o fechamento está acima da linha de suporte mais baixa.
Além disso, a estratégia também utiliza padrões de velas para encontrar oportunidades de retração e melhorar os pontos de entrada.
A estratégia utiliza oito indicadores comuns de tendência para determinar a tendência a partir de múltiplos aspectos, melhorando assim a precisão e a fiabilidade do julgamento da tendência.
As linhas de suporte / resistência do SILA refletem o número de sinais de alta / baixa. Mais linhas indicam sinais mais fortes. Isso ajuda os traders a avaliar ainda mais a força dos sinais de negociação.
A estratégia procura oportunidades de retração baseadas em padrões de velas para encontrar melhores pontos de entrada quando a tendência se inverte.
Os múltiplos indicadores podem, por vezes, gerar sinais conflitantes, dificultando a tomada de decisões.
Os parâmetros padrão podem não ser ideais, podendo ser necessária uma otimização adicional para obter os melhores resultados.
Os eventos de cisne negro podem invalidar os sinais técnicos normais.
O seguimento da tendência pode resultar em maiores saques durante as correcções de mercado.
Testar e otimizar sistematicamente parâmetros como períodos e níveis de valor para encontrar a combinação ideal de parâmetros.
Considerar a adição de movimentação ou percentual de stop loss para controlar os drawdowns.
Combinar indicadores de tendência com indicadores de volume como MAVP e OBV para melhorar as decisões táticas.
Pesquise os tamanhos de posição ideais para diferentes estágios do mercado e aumente o tamanho quando a tendência se tornar mais aparente.
Em resumo, esta é uma tendência de múltiplos indicadores seguindo uma estratégia de negociação de curto prazo. Determina a direção da tendência usando vários indicadores e identifica a força dos sinais com o sistema SILA, complementado por padrões de velas para melhorias de entrada. A estratégia pode melhorar a precisão, mas o risco de sinais conflitantes deve ser observado.
/*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)