이치모쿠 엔트리는 이치모쿠 클라우드 차트를 사용하여 트렌드 방향을 식별하고 볼링거 밴드 및 RSI 지표와 결합하여 거래 신호를 생성하는 양적 전략입니다. 이 전략은 주로 시장이 현재 텐칸 라인과 키준 라인의 황금 십자가 또는 죽음의 십자가에 따라 상승 추세 또는 하락 추세에 있는지 여부를 결정하고 따라서 긴 및 짧은 포지션에 대한 엔트리 신호를 생성합니다.
이 전략의 핵심은 이치모쿠 클라우드 차트의 두 가지 중요한 라인 - 텐칸 라인과 키준 라인 - 에 있다. 텐칸 라인은 최근 9일 동안 가장 높은 최고와 가장 낮은 최저의 평균이며, 단기 트렌드를 나타낸다. 키준 라인은 지난 26일 동안 가장 높은 최고와 가장 낮은 최저의 평균이며, 중장기 트렌드를 나타낸다. 텐칸 라인이 키준 라인의 위를 넘을 때, 그것은 긴 진입을 신호한다. 텐칸 라인이 키준 라인의 아래로 떨어지면, 그것은 짧은 진입을 신호한다. 이것은 현재의 트렌드 방향을 판단한다.
이치모쿠 클라우드 외에도 전략은 거래 신호를 생성하기 위해 볼링거 밴드 (Bollinger Bands) 및 RSI 지표 (RSI indicator) 를 살펴본다. 폐쇄 가격이 상부 또는 하부 볼링거 밴드를 넘어서면 비정상적인 가격 활동의 징후로 간주됩니다. 과잉 구매 또는 과잉 판매 조건을 결정하기 위해 RSI 지표를 통합하여 일부 잘못된 브레이크오웃을 필터링하여 유효한 입시 신호를 생성 할 수 있습니다.
출구 논리에서는 볼링거 밴드 브레이크오웃이 성공했는지, 트레이드 근접 오시레이터가 0축을 통과하는지 확인하여 수익을 차단하거나 손실을 중단하기로 결정합니다.
이 전략의 가장 큰 장점은 트렌드 결정과 비정상적인 가격 변동을 결합하여 거래 방향을 확인한다는 것입니다. 이치모쿠 클라우드는 트렌드를 명확하게 드러내며 볼링거 밴드는 이상성을 포착합니다. RSI는 잘못된 브레이크오웃을 효과적으로 필터합니다. 여러 개의 조정된 지표의 사용은 거래 신호를 더 신뢰할 수있게 만듭니다. 또한, 스톱 로스와 취득 로직은 이익을 잠금하고 큰 손실을 피하는 데 도움이됩니다.
트렌드 및 변칙을 식별 할 수있는 우위를 가지고 있음에도 불구하고 전략은 여전히 몇 가지 위험을 초래합니다. 트렌드와 함께 거래하기 때문에 범위 시장에서 많은 잘못된 신호가 나타날 수 있습니다. 잘못된 매개 변수 설정은 전략의 성능을 악화시킬 수 있습니다. 다양한 매개 변수 조합을 테스트하고 최적의 값을 찾기 위해 단계적 최적화가 권장됩니다.
이 전략은 다음과 같은 측면에서 업그레이드 될 수 있습니다.
이치모쿠 엔트리 전략은 다중 지표 통합 트렌드 거래 전략이다. 트렌드 방향과 가격 이상성을 판단함으로써 시장 리듬을 상당히 안정적으로 포착합니다. 개선할 여지가 있지만 전반적으로 이것은 일관된 성과와 제어 가능한 위험에 대한 전략입니다. 매개 변수 조정 및 기계 학습의 도입은이 전략을 더욱 탁월하게 만들 수 있습니다.
/*backtest start: 2023-01-30 00:00:00 end: 2024-01-30 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("ichi strategy", overlay=true) // Input parameters rsiLength = input(14, title="RSI Length") bbLength = input(20, title="Bollinger Bands Length") bbMultiplier = input(2, title="Bollinger Bands Multiplier") stopLossPct = input(1, title="Stop Loss Percentage") takeProfitPct = input(2, title="Take Profit Percentage") // Calculate Ichimoku Cloud components tenkan = ta.sma(high + low, 9) / 2 kijun = ta.sma(high + low, 26) / 2 senkouA = (tenkan + kijun) / 2 senkouB = ta.sma(high + low, 52) / 2 // Bollinger Bands basis = ta.sma(close, bbLength) upperBB = basis + bbMultiplier * ta.stdev(close, bbLength) lowerBB = basis - bbMultiplier * ta.stdev(close, bbLength) // RSI rsiValue = ta.rsi(close, rsiLength) // Trade Proximity Oscillator length = input(14, title="Channels Length") multiplier = input(2, title="Channels Multiplier") atr_length = input(14, title="ATR Length") threshold_percentage = input(1.5, title="Threshold Percentage (%)") ma = ta.sma(close, length) std_dev = ta.stdev(close, length) upper_band = ma + multiplier * std_dev lower_band = ma - multiplier * std_dev distance_upper = close - upper_band distance_lower = lower_band - close atr_value = ta.atr(atr_length) threshold = atr_value * threshold_percentage oscillator = distance_upper - distance_lower // Strategy logic longCondition = close > upperBB and tenkan > kijun and ta.crossover(close, basis) and rsiValue < 70 shortCondition = close < lowerBB and tenkan < kijun and ta.crossunder(close, basis) and rsiValue > 30 strategy.entry("Long", strategy.long, when = longCondition) strategy.entry("Short", strategy.short, when = shortCondition) // Exit logic longExitCondition = close < upperBB and ta.crossover(oscillator, 0) shortExitCondition = close > lowerBB and ta.crossunder(oscillator, 0) strategy.exit("Take Profit/Stop Loss", from_entry="Long", loss=close - close * stopLossPct / 100, profit=close + close * takeProfitPct / 100, when = longExitCondition) strategy.exit("Take Profit/Stop Loss", from_entry="Short", loss=close + close * stopLossPct / 100, profit=close - close * takeProfitPct / 100, when = shortExitCondition) // Plotting plot(senkouA, color=color.green, title="Senkou A") plot(senkouB, color=color.red, title="Senkou B") plot(upperBB, color=color.blue, title="Upper Bollinger Band") plot(lowerBB, color=color.blue, title="Lower Bollinger Band") // Additional Plots plot(tenkan, color=color.orange, title="Tenkan") plot(kijun, color=color.purple, title="Kijun")