Estratégia de acompanhamento da tendência baseada num modelo multifatorial com paralisação de perdas subsequentes adaptativa

Autora:ChaoZhang, Data: 2023-12-19 11:04:27
Tags:

img

Resumo

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.

Princípios

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.

Vantagens

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.

Riscos

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.

Orientações de otimização

Esta estratégia pode ser otimizada a partir dos seguintes aspectos:

  1. Ajustar os pesos dos indicadores no modelo multifator para encontrar a combinação ideal

  2. Testar mais indicadores como o CCI, a volatilidade, etc., para enriquecer o modelo multifator

  3. Otimizar as configurações dos parâmetros para se adequar a mais produtos e ciclos

  4. Tente diferentes estratégias de stoploss para encontrar a combinação ideal

  5. Adicionar módulos de treinamento de modelos e avaliação de estratégias para permitir a condução de aprendizado de máquina

Resumo

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)

Mais.