이 전략은 이치모쿠 클라우드, 단기 (55) 및 장기 (200) 단순 이동 평균 (SMA) 을 결합하여 잠재적 인 구매 및 판매 신호를 식별합니다. 구매 신호는 가격이 클라우드 및 장기 SMA 위에 있어야하고 그 위에 넘어가면 단기 SMA를 다시 테스트해야합니다. 판매 신호는 가격이 클라우드 및 장기 SMA 아래에 있어야하고 그 아래에 넘어가면 단기 SMA를 다시 테스트해야합니다. 이 전략은 1 시간 및 2 시간 시간 프레임에서 전략이 가장 잘 수행되는 것을 보여줍니다.
이 전략은 다음과 같은 원칙에 기초합니다.
이 코드는 먼저 필요한 이치모쿠 클라우드 구성 요소 (변환 라인, 베이스 라인, 리딩 스판 A 및 B), 그리고 단기 및 장기 SMA를 계산합니다. 다음에는 클라우드와 이동 평균에 대한 가격 위치를 식별하기 위해 여러 조건을 정의합니다. 모든 구매 / 판매 조건이 충족되면 코드는 각각 구매 및 판매 신호를 생성합니다.
이치모쿠 클라우드 및 이동 평균 전략은 기존 트렌드 내에서 이치모쿠 클라우드와 간단한 이동 평균을 결합하여 낮은 위험 진입 기회를 추구합니다. 시장의 범위 및 주요 뉴스 이벤트 중 거래를 필터링함으로써 전략은 가짜 위험을 줄이고 전반적인 성능을 향상시킵니다. 주로 중장기 거래자에게 적합하며 1 시간 및 2 시간 시간 프레임에서 잘 수행합니다. 그러나 더 강력한 전략 성능을 달성하기 위해 명확한 스톱 손실을 도입하고 신호 조합을 최적화하고 매개 변수를 조정하는 것과 같은 추가 최적화에 대한 여지가 있습니다.
/*backtest start: 2023-05-11 00:00:00 end: 2024-05-16 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Ichimoku Cloud and Moving Average Strategy", shorttitle="ICMA", overlay=true) // Input parameters shortMA = input.int(55, title="Short-term Moving Average Length") longMA = input.int(200, title="Long-term Moving Average Length") // Calculate moving averages shortSMA = ta.sma(close, shortMA) longSMA = ta.sma(close, longMA) // Ichimoku Cloud settings conversionPeriod = input.int(9, title="Conversion Line Period") basePeriod = input.int(26, title="Base Line Period") spanBPeriod = input.int(52, title="Span B Period") displacement = input.int(26, title="Displacement") // Calculate Ichimoku Cloud components conversionLine = ta.sma(high + low, conversionPeriod) / 2 baseLine = ta.sma(high + low, basePeriod) / 2 leadSpanA = (conversionLine + baseLine) / 2 leadSpanB = ta.sma(high + low, spanBPeriod) / 2 // Plot Ichimoku Cloud components plot(leadSpanA, color=color.blue, title="Leading Span A") plot(leadSpanB, color=color.red, title="Leading Span B") // Entry conditions aboveCloud = close > leadSpanA and close > leadSpanB belowCloud = close < leadSpanA and close < leadSpanB aboveShortMA = close > shortSMA aboveLongMA = close > longSMA belowShortMA = close < shortSMA belowLongMA = close < longSMA // Buy condition (Price retests 55 moving average after being above it) buyCondition = aboveCloud and aboveLongMA and close[1] < shortSMA and close > shortSMA // Sell condition (Price retests 55 moving average after being below it) sellCondition = belowCloud and belowLongMA and close[1] > shortSMA and close < shortSMA // Strategy entry and exit strategy.entry("Buy", strategy.long, when = buyCondition) strategy.entry("Sell", strategy.short, when = sellCondition) // Plot moving averages plot(shortSMA, color=color.green, title="Short-term SMA") plot(longSMA, color=color.red, title="Long-term SMA") // Plot buy and sell signals plotshape(series=buyCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal") plotshape(series=sellCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal")