
이 전략은 기술 분석 지표에 기반한 거래 시스템으로, RSI (상대적 강점 지수) 와 MACD (이동 평균 동향 및 반향) 이중 신호 확인 메커니즘을 결합하여, 오버 바이 오버 소매 영역에서 거래 기회를 찾고, 동적 스톱 스톱 로스를 사용하여 위험을 관리합니다. 전략은 주로 단선 거래를 대상으로 설계되어 있으며, 빠른 시장 환경에서 거래 기회를 잡을 수 있습니다.
이 전략은 RSI와 MACD의 두 가지 고전적인 기술 지표를 사용하여 거래 신호 시스템을 구축합니다. 구매 신호는 RSI가 35 이하 (오버소드 영역) 이며 MACD가 골드 포크가 발생했을 때 촉발됩니다. 판매 신호는 RSI가 70 이상 (오버소드 영역) 이며 MACD가 데드 포크가 발생했을 때 촉발됩니다. 시스템은 300 점의 중지 손실과 600 점의 중지 손실의 위험 관리 메커니즘을 사용합니다.
이 전략은 RSI와 MACD 지표를 결합하여 상대적으로 신뢰할 수있는 거래 시스템을 구축하고 합리적인 스톱 스톱 손실 설정을 지원하며 실제 시장 상황에 따라 최적화가 필요하지만, 특히 위험 제어 및 신호 필터링에서 더 많은 개선이 필요합니다. 전략의 성공적인 운영은 거래자가 시장을 깊이 이해하고 다양한 시장 환경에 적응하기 위해 매개 변수를 유연하게 조정할 수 있어야 합니다.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Scalping XAU/USD m5 (Protected)", overlay=true)
// Parâmetros do usuário
rsiPeriod = input(14, title="Período do RSI")
rsiOverbought = input(70, title="Nível de Sobrecompra do RSI") // Ajustado para aumentar trades
rsiOversold = input(35, title="Nível de Sobrevenda do RSI") // Ajustado para aumentar trades
macdFast = input(6, title="Média Rápida do MACD") // Ajustado para aumentar a frequência
macdSlow = input(13, title="Média Lenta do MACD") // Ajustado para aumentar a frequência
macdSignal = input(7, title="Sinal do MACD")
lotSize = input(1, title="Tamanho do Lote")
slPips = input(300, title="Stop-Loss (pips)") // Definido pelo usuário
tpPips = input(600, title="Take-Profit (pips)") // Definido pelo usuário
// Cálculos do RSI e MACD
rsi = ta.rsi(close, rsiPeriod)
[macdLine, signalLine, _] = ta.macd(close, macdFast, macdSlow, macdSignal)
// Condições de compra
buyCondition = (rsi < rsiOversold) and (macdLine > signalLine) and (ta.crossover(macdLine, signalLine))
// Condições de venda
sellCondition = (rsi > rsiOverbought) and (macdLine < signalLine) and (ta.crossunder(macdLine, signalLine))
// Executa a compra
if (buyCondition)
strategy.entry("Compra", strategy.long, qty=lotSize)
label.new(bar_index, close, "Compra", color=color.green, style=label.style_label_up, textcolor=color.white, size=size.small)
// Executa a venda
if (sellCondition)
strategy.entry("Venda", strategy.short, qty=lotSize)
label.new(bar_index, close, "Venda", color=color.red, style=label.style_label_down, textcolor=color.white, size=size.small)
// Saídas com Stop-Loss e Take-Profit
if (strategy.position_size > 0) // Para posições de compra
strategy.exit("Saída Compra", from_entry="Compra", stop=close - slPips * syminfo.mintick, limit=close + tpPips * syminfo.mintick)
if (strategy.position_size < 0) // Para posições de venda
strategy.exit("Saída Venda", from_entry="Venda", stop=close + slPips * syminfo.mintick, limit=close - tpPips * syminfo.mintick)
// Plota o RSI e suas linhas de sobrecompra/sobrevenda
hline(rsiOverbought, "Sobrecompra", color=color.red)
hline(rsiOversold, "Sobrevenda", color=color.green)
plot(rsi, "RSI", color=color.blue)
// Plota o MACD
macdHist = macdLine - signalLine
plot(macdHist, title="Histograma MACD", color=color.green, style=plot.style_histogram)