Esta estratégia é uma estratégia de rastreamento de tendências impulsionada por um modelo multifator com stoploss de rastreamento adaptativo. Incorpora múltiplos indicadores como RSI, MACD, Estocásticos para construir um modelo multifator para determinar a direção da tendência. Enquanto isso, apresenta um mecanismo de stoploss de rastreamento adaptativo que ajusta dinamicamente o preço do stoploss com base no ATR para realizar o controle de risco.
Esta estratégia utiliza vários indicadores para construir um modelo para julgar a tendência. Primeiro, combina o RSI e o MACD para determinar a direção da tendência; em seguida, usa o Estocástico para filtrar sinais excessivamente sobrecomprados ou sobrevendidos. Depois de inserir ordens, utiliza o ATR para calcular o parâmetro de risco e implementar o stoploss adaptativo.
Especificamente, ele gera sinal de compra quando o RSI está acima de 52 e ocorre o cruzamento dourado do MACD; ele gera sinal de venda quando o RSI está abaixo de 48 e ocorre o cruzamento morto do MACD. Para filtrar sinais falsos, ele também detecta se o Stochastic está sobrecomprado ou sobrevendido.
A maior vantagem desta estratégia reside em sua forte capacidade de controle de risco. Ao julgar a direção da tendência com modelo multifator, ele pode filtrar algum ruído e melhorar a qualidade do sinal. Enquanto isso, o mecanismo de stop loss adaptativo pode ajustar a faixa de stop loss com base na volatilidade do mercado para controlar efetivamente a perda única.
Além disso, os parâmetros desta estratégia são razoavelmente definidos com bons resultados de backtesting.
O principal risco desta estratégia é a qualidade da construção de modelos multifatores. Se o modelo não conseguir determinar efetivamente a tendência, geraria sinais falsos maciços. Além disso, as estratégias de stop loss carregam inerentemente o risco de serem caçadas.
Para mitigar esses riscos, as melhorias podem ser feitas a partir de aspectos como ajustar o peso do modelo, otimizar as configurações de parâmetros, combinando-se com outras estratégias de stoploss.
Esta estratégia pode ser otimizada a partir dos seguintes aspectos:
Ajustar os pesos dos indicadores no modelo multifator para encontrar a combinação ideal
Testar mais indicadores como o CCI, a volatilidade, etc., para enriquecer o modelo multifator
Otimizar as configurações dos parâmetros para se adequar a mais produtos e ciclos
Tente diferentes estratégias de stoploss para encontrar a combinação ideal
Adicionar módulos de treinamento de modelos e avaliação de estratégias para permitir a condução de aprendizado de máquina
Esta estratégia integra um modelo multifator e um mecanismo de stop loss adaptativo para alcançar uma combinação orgânica de julgamento de tendências e controle de riscos.
/*backtest start: 2022-12-12 00:00:00 end: 2023-12-18 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title="TradersAI_UTBot", overlay = true) // CREDITS to @HPotter for the orginal code. // CREDITS to @Yo_adriiiiaan for recently publishing the UT Bot study based on the original code - // I just added some simple code to turn it into a strategy so that you all can backtest it to see the results for yourself! // Use this strategy on your favorite instrumnet and timeframe, with your favorite settings // While @Yo_adriiiiaan mentions it works best on a 4-hour timeframe or above, // I am happy to share here this working on a 15-minute chart on e-mini S&P 500 Index (using the KeyValue setting at 10) // I am sure different people would discover different settings that work best for their preferred instrumnet/timeframe etc. // Play with it and enjoy! And, don't forget to share any positive results you might get! Good luck with your trading! SOURCE = input(hlc3) RSILENGTH = input(14, title = "RSI LENGTH") RSICENTERLINE = input(52, title = "RSI CENTER LINE") MACDFASTLENGTH = input(7, title = "MACD FAST LENGTH") MACDSLOWLENGTH = input(12, title = "MACD SLOW LENGTH") MACDSIGNALSMOOTHING = input(12, title = "MACD SIGNAL SMOOTHING") a = input(10, title = "Key Vaule. 'This changes the sensitivity'") SmoothK = input(3) SmoothD = input(3) LengthRSI = input(14) LengthStoch = input(14) RSISource = input(close) c = input(10, title="ATR Period") xATR = atr(c) nLoss = a * xATR xATRTrailingStop = iff(close > nz(xATRTrailingStop[1], 0) and close[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), close - nLoss), iff(close < nz(xATRTrailingStop[1], 0) and close[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), close + nLoss), iff(close > nz(xATRTrailingStop[1], 0), close - nLoss, close + nLoss))) pos = iff(close[1] < nz(xATRTrailingStop[1], 0) and close > nz(xATRTrailingStop[1], 0), 1, iff(close[1] > nz(xATRTrailingStop[1], 0) and close < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0))) color = pos == -1 ? red: pos == 1 ? green : blue ema= ema(close,1) above = crossover(ema,xATRTrailingStop ) below = crossover(xATRTrailingStop,ema) buy = close > xATRTrailingStop and above sell = close < xATRTrailingStop and below barbuy = close > xATRTrailingStop barsell = close < xATRTrailingStop plotshape(buy, title = "Buy", text = 'Buy', style = shape.labelup, location = location.belowbar, color= green,textcolor = white, transp = 0, size = size.tiny) plotshape(sell, title = "Sell", text = 'Sell', style = shape.labeldown, location = location.abovebar, color= red,textcolor = white, transp = 0, size = size.tiny) barcolor(barbuy? green:na) barcolor(barsell? red:na) alertcondition(buy, title='Buy', message='Buy') alertcondition(sell, title='Sell', message='Sell') if(buy) strategy.entry("UTBotBuy",strategy.long) if(sell) strategy.entry("UTBotSell",strategy.short)