
A estratégia é baseada em BTCUSDT 4 horas de tempo. A sua principal idéia é emissão de sinais de negociação quando o indicador RSI ultrapassar a zona de sobrevenda de forma a se desviar. Em seguida, adotar o método de acompanhamento da tendência DCA, realizar várias adições de posição, dispersar as posições para reduzir o risco.
A estratégia usa o indicador RSI para determinar o sinal de sobrevenda. RSI maior do que 70 é um sinal de sobrevenda e menor do que 30 é um sinal de sobrevenda. Quando o RSI cai para baixo da área de sobrevenda ou rebota da área de sobrevenda, indica que pode formar um topo e emitir um sinal de falta.
Mas, para determinar ainda mais o sinal, a estratégia também é auxiliada por um julgamento de forma de linha K inclusiva. Assim, quando o RSI inverter, se houver uma inversão de overbought para o lado negativo e uma inversão de oversold para o lado positivo, então será emitido um sinal de negociação definido. Isso pode reduzir ainda mais a probabilidade de um sinal errado.
Uma vez que o sinal de negociação aparece, se for um sinal de cabeça de mais, abra mais posições de acordo com uma determinada proporção do preço de liquidação, e depois continue a seguir a configuração contínua de comprar e parar para implementar o efeito DCA, a estratégia permite até 5 posições; Se o sinal de cabeça de mais aparecer, todos os lotes de posições atuais serão completamente liquidados.
A maior vantagem desta estratégia é o controle do risco. Primeiro, o indicador RSI combinado com a filtragem de forma K-line pode reduzir significativamente a taxa de falhas e garantir a confiabilidade do sinal. Segundo, adotar uma estratégia de DCA de construção em lotes pode dispersar o risco e controlar a perda de posições individuais, mesmo que a tendência seja desfavorável.
O maior risco dessa estratégia é que o tempo de manutenção da posição pode ser longo. A adoção da estratégia DCA e do método de rastreamento de tendências pode levar à manutenção da posição por um longo tempo, especialmente quando o mercado está em um movimento negativo. Isso pode aumentar o custo da posição e até mesmo o risco de perda de reversão.
Além disso, a lógica de construção de posição é mais complexa e aumenta o risco de erro de operação. É necessário compreender os sinais RSI e os sinais de linha K. A operação é mais difícil, uma vez que o erro de julgamento pode facilmente formar uma posição errada.
A estratégia pode ser melhorada em vários aspectos:
Aumentar a lógica de stop-loss. Pode forçar o stop-loss em determinadas condições de perda, evitando que uma única posição cause grandes perdas.
Otimizar a proporção de posições. Pode testar diferentes tamanhos de posições para encontrar configurações de posições com um risco superior ao lucro.
Teste outros indicadores. Pode-se testar diferentes indicadores como MACD, KD e outros RSI alternativos ou auxiliares, para ver se pode melhorar a precisão do sinal.
Otimizar o ciclo de tempo. Você pode testar diferentes parâmetros de ciclo de tempo para encontrar a combinação de parâmetros de ciclo que melhor se encaixam na lógica da estratégia.
Esta estratégia de negociação de tendência de DCA de baixo risco baseia-se no RSI, auxiliada por sinais de linha K, para implementar posições de DCA usando o método de rastreamento de paradas. O risco da estratégia é controlado e é adequado para investidores com fraca capacidade de risco do mercado.
/*backtest
start: 2023-01-15 00:00:00
end: 2024-01-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Phil's Pine Scripts - low risk long DCA Trend trade", overlay=true)
////
//// trade on BTCUSDT 4H chart
//// $500 balance = $50 per trade, max 5 positions
//// backtested 54% profit over 3 years (~270)
////
//// define $ amount per trade
position_size = 50000
//// Plot short / long signals
// Get user input
rsiSource = input(title="RSI Source", type=input.source, defval=close)
rsiLength = input(title="RSI Length", type=input.integer, defval=14)
rsiOverbought = input(title="RSI Overbought Level", type=input.integer, defval=70)
rsiOversold = input(title="RSI Oversold Level", type=input.integer, defval=30)
// Get RSI value
rsiValue = rsi(rsiSource, rsiLength)
rsiOB = rsiValue >= rsiOverbought
rsiOS = rsiValue <= rsiOversold
// Identify engulfing candles
bullishEC = close > open[1] and close[1] < open[1]
bearishEC = close < open[1] and close[1] > open[1]
tradeSignal = ((rsiOS or rsiOS[1]) and bullishEC) or ((rsiOB or rsiOB[1]) and bearishEC)
// Plot signals to chart
plotshape(tradeSignal and bullishEC, title="Long", location=location.belowbar, color=color.green, transp=0, style=shape.triangleup, text="Long")
plotshape(tradeSignal and bearishEC, title="Short", location=location.abovebar, color=color.red, transp=0, style=shape.triangledown, text="Short")
//// DCA long trade when there is a bullish signal
if tradeSignal and bullishEC
strategy.entry("OL", strategy.long, qty=position_size / close)
//// Close all positions when there is a bearish signal
if tradeSignal and bearishEC
strategy.close_all()