
A estratégia é uma estratégia de rastreamento de tendências auto-adaptáveis, impulsionada por modelos multifatorial. Integra vários indicadores, como RSI, MACD e Stochastics, para construir modelos multifatoriais para determinar a direção da tendência.
A estratégia usa vários indicadores para construir um modelo de tendência. Primeiro, ele combina o RSI e o MACD para determinar a direção da tendência; em seguida, ele combina o Stochastics para determinar se há excesso de compra ou venda, filtrando parte do sinal. Após a entrada de ordens, ele usa o ATR para calcular os parâmetros de risco e realizar um stop loss adaptativo.
Especificamente, quando o RSI é superior a 52 e o MACD Gold Fork produz um sinal de compra; quando o RSI é inferior a 48 e o MACD Dead Fork produz um sinal de venda. Para filtrar os falsos sinais, ele também detecta se o Stochastics está sobrecomprando ou sobrevendendo. No que diz respeito ao stop loss, ele se adapta ao stop loss com base nos parâmetros calculados pelo ATR, o que permite controlar efetivamente o risco de um único stop loss.
A maior vantagem da estratégia é a capacidade de controle de risco forte. Através de um modelo multifator para determinar a direção da tendência, pode filtrar parte do ruído, melhorar a qualidade do sinal. Ao mesmo tempo, o mecanismo de parada de perda adaptável pode ajustar a amplitude de parada de perda de acordo com a volatilidade do mercado, para controlar eficazmente a perda individual.
Além disso, a configuração dos parâmetros da estratégia é razoável e a retrospectiva é melhor. Os ativos de diferentes períodos podem ser otimizados através do ajuste dos parâmetros. Pode ser adaptado a mais condições de mercado através da otimização dos parâmetros.
O principal risco da estratégia reside na qualidade da construção do modelo multifator. Se o modelo for construído inadequadamente, não será possível determinar as tendências de forma eficaz, o que gerará uma grande quantidade de sinais errados. Além disso, a estratégia de parada de prejuízo em si corre o risco de ser arbitragem.
Para reduzir esses riscos, pode-se fazer melhorias, como ajustar o peso do modelo, otimizar a configuração dos parâmetros e combinar outras estratégias de parada de perdas. Intervenções manuais também são necessárias quando surgem mercados anormais.
A estratégia pode ser melhorada em vários aspectos:
Ajustar os pesos dos indicadores em modelos multifatoriais para encontrar a combinação de pesos ideal
Testar mais indicadores, como CCI, oscilação, etc., em modelos multifatoriais
Optimizar a configuração dos parâmetros para mais variedades e ciclos
Tentar diferentes estratégias de stop loss para encontrar a melhor combinação
Adição de módulos de treinamento de modelos e avaliação de estratégias para a implementação de aprendizado de máquina
A estratégia integra um modelo multifatorial e um mecanismo de parada de perda adaptativo, realizando uma combinação orgânica de julgamento de tendências e controle de risco. É bem retrospectiva e escalável. Com otimização contínua, pode se tornar uma estratégia quantitativa que vale a pena manter a longo prazo.
/*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)