이 전략은 초점 평형 도표 (Ichimoku Cloud), 상대적으로 강한 지표 (RSI) 및 이동 평균의 수렴 분산 지표 (MACD) 의 통합 트렌드 추적 거래 시스템입니다. 이 전략은 클라우드 도표를 통해 전체적인 트렌드 방향을 판단하고, RSI를 사용하여 가격 움직임을 확인하고, MACD 신호 선의 교차로와 결합하여 특정 거래 시기를 결정하여 다면적 시장 분석 및 거래 결정을 수행합니다.
전략의 핵심 논리는 다음과 같은 세 가지 기술 지표의 협동적 협력에 기반합니다.
전략의 거래 규칙은 다음과 같습니다. 더 많은 조건이 있습니다.
공백 조건:
추세 반전 위험: 추세 전환점에서 지속적인 손절매가 발생할 수 있습니다. 추천: 트렌드 확인의 시간 주기 요구 사항을 추가할 수 있습니다.
변동 시장 위험: 간격 변동 시장에서 자주 거래가 발생할 수 있습니다. 추천: 신호 필터링 조건을 추가하여 최소 진동폭을 요구한다.
지연 위험: 지표는 모두 지연되어 있고, 최적의 입시 지점을 놓칠 수 있습니다. 추천: 더 빠른 지표 또는 가격 행동 분석과 결합 할 수 있습니다.
매개 변수 민감성: 잘못된 매개 변수 설정으로 인해 정책이 제대로 작동하지 않을 수 있습니다. 추천: 피드백 최적화를 통해 적절한 파라미터 조합을 결정해야 한다.
이 전략은 일회성 차트, RSI 및 MACD의 세 가지 고전적 기술 지표를 결합하여 전체적인 트렌드 추적 거래 시스템을 구축한다. 전략의 주요 장점은 여러 가지 확인 장치와 명확한 거래 규칙에 있다. 그러나 동시에 트렌드 전환점과 진동 시장에서 가져오는 위험에 주의를 기울여야 한다. 동적 파라미터 조정, 시장 환경 필터링 및 위험 관리 최적화를 통해 전략의 안정성과 수익성은 더욱 향상될 것으로 보인다.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-10 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Ichimoku + RSI + MACD Strategy", overlay=true)
// Ichimoku Cloud parameters
tenkanPeriod = 9
kijunPeriod = 26
senkouSpanBPeriod = 52
displacement = 26
// RSI parameters
rsiLength = 14
rsiOverbought = 70
rsiOversold = 30
// MACD parameters
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
// Ichimoku calculations
tenkanSen = (ta.highest(high, tenkanPeriod) + ta.lowest(low, tenkanPeriod)) / 2
kijunSen = (ta.highest(high, kijunPeriod) + ta.lowest(low, kijunPeriod)) / 2
senkouSpanA = (tenkanSen + kijunSen) / 2
senkouSpanB = (ta.highest(high, senkouSpanBPeriod) + ta.lowest(low, senkouSpanBPeriod)) / 2
chikouSpan = close[displacement]
// Plotting Ichimoku Cloud
plot(tenkanSen, color=color.red, title="Tenkan-sen")
plot(kijunSen, color=color.blue, title="Kijun-sen")
plot(senkouSpanA[displacement], color=color.green, title="Senkou Span A")
plot(senkouSpanB[displacement], color=color.red, title="Senkou Span B")
fill(plot(senkouSpanA[displacement]), plot(senkouSpanB[displacement]), color=color.new(color.green, 90), title="Cloud")
// RSI calculation
rsi = ta.rsi(close, rsiLength)
// Long entry condition
longCondition = (close > senkouSpanA) and (close > senkouSpanB) and (rsi > rsiOversold) and (ta.crossover(macdLine, signalLine))
if (longCondition)
strategy.entry("Long", strategy.long)
// Short entry condition
shortCondition = (close < senkouSpanA) and (close < senkouSpanB) and (rsi < rsiOverbought) and (ta.crossunder(macdLine, signalLine))
if (shortCondition)
strategy.entry("Short", strategy.short)
// Exit conditions
if (ta.crossunder(macdLine, signalLine) and strategy.position_size > 0)
strategy.close("Long")
if (ta.crossover(macdLine, signalLine) and strategy.position_size < 0)
strategy.close("Short")
// Plot RSI
hline(rsiOverbought, "Overbought", color=color.red)
hline(rsiOversold, "Oversold", color=color.green)
plot(rsi, color=color.blue, title="RSI")