이 전략은 상대적으로 약한 지수 ((RSI), 거래량 ((Volume), 이동 평균 ((MA) 등과 같은 다중 기술 지표의 결합으로 트렌드 추적 거래 시스템입니다. 전략은 시장의 운동, 거래량 및 가격 경향과 같은 여러 차원의 데이터를 분석하여 시장이 명백한 상승 추세와 각 기술 지표가 공동으로 확인되면 구매 신호를 발송합니다. 전략은 엄격한 조건 필터를 사용하여 여러 지표가 동시에 충족되도록 요구합니다. 거래 신호를 유발하기 위해 거래의 정확성을 높이기 위해.
전략은 다음과 같은 핵심 조건에 따라 거래 결정을 내립니다.
이 전략은 여러 기술 지표를 통합하여 비교적 완벽한 트렌드 추적 거래 시스템을 구축한다. 전략의 여러 확인 메커니즘은 거래의 신뢰성을 높이는 데 도움이 되지만 동시에 약간의 뒤처짐을 가져온다. 전략의 실용성과 안정성은 손해 차단 메커니즘을 추가하고, 최적화 파라미터 설정을하고, 시장 환경 필터링을 추가함으로써 더욱 향상 될 것이다.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-28 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Estratégia Completa - Volume, RSI e Tendência", overlay=true)
// Definir médias móveis
ma14 = ta.sma(close, 14) // Média móvel de 14 períodos
ma200 = ta.sma(close, 200) // Média móvel de 200 períodos
// Calcular o RSI de 14 períodos
rsi = ta.rsi(close, 14)
// Média de volume de 20 períodos
volumeMA = ta.sma(volume, 20)
// Condição para volume ser acima da média de 20 períodos
volumeAboveAvg = volume > volumeMA
// Condição para o RSI cruzar acima de 50
rsiCrossover50 = ta.crossover(rsi, 50)
// Condição para o fechamento estar acima da média de 14 períodos
closeAboveMA14 = close > ma14
// Condição para candlestick forte de alta (bullish engulfing)
bullishEngulfing = close > open and close[1] < open[1] and close > open[1]
// Condição para o preço estar acima da média de 200 períodos
priceAboveMA200 = close > ma200
// Condição de compra: todos os critérios precisam ser atendidos
buyCondition = volumeAboveAvg and rsiCrossover50 and closeAboveMA14 and bullishEngulfing and priceAboveMA200
// Executar a compra quando a condição for atendida
if (buyCondition)
strategy.entry("Compra", strategy.long)
// Plotar as médias móveis no gráfico
plot(ma14, color=color.blue, linewidth=2, title="Média de 14 períodos")
plot(ma200, color=color.red, linewidth=2, title="Média de 200 períodos")
// Adicionar no gráfico o RSI
hline(50, "RSI 50", color=color.gray, linestyle=hline.style_dashed)
plot(rsi, color=color.green, linewidth=1, title="RSI (14)")
// Plotar a média de volume
plot(volumeMA, color=color.purple, linewidth=2, title="Média de Volume (20)")