이 전략은 KDJ 지표와 이동평균 (MA) 을 활용하여 시장 트렌드를 식별하고 거래 신호를 생성합니다. KDJ 지표가 과잉 구매 수준을 초과하고 가격이 MA 이하로 떨어지면 짧은 신호가 생성됩니다. KDJ 지표가 과잉 판매 수준 이하이고 가격이 MA 이상으로 떨어지면 긴 신호가 생성됩니다. KDJ 지표와 MA 트렌드 확인을 결합함으로써이 전략은 시장 트렌드를 더 잘 파악하고 범위 시장에서 잘못된 신호를 피할 수 있습니다.
이 전략은 KDJ 지표와 이동 평균을 결합함으로써 시장 추세를 효과적으로 파악하고 거래 신호를 생성할 수 있다. 과잉 구매/ 과잉 판매 정보와 트렌드 방향의 합리적인 활용은 견고한 거래 성과로 이어질 수 있다. 그러나, 전략의 견고성과 수익성을 더욱 향상시키기 위해 더 많은 필터링 조건, 동적 위치 관리, 스톱-로스 및 취리 수익 등 최적화의 여지가 남아 있다. 실제 적용에서는 전략의 효과와 적용성을 확인하기 위해 다양한 시장 환경과 도구에 대해 세밀하게 조정하고 테스트해야 한다.
/*backtest start: 2024-04-01 00:00:00 end: 2024-04-30 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("KDJ Trending View with Signals and MA Strategy", overlay=true) // KDJ Settings kdjLength = input.int(9, title="KDJ Length") kdjSignal = input.int(3, title="KDJ Signal") kdjOverbought = input.int(80, title="KDJ Overbought Level") kdjOversold = input.int(20, title="KDJ Oversold Level") // Margin Settings longMargin = input.float(2.0, title="Long Margin", step=0.01) shortMargin = input.float(2.0, title="Short Margin", step=0.01) // MA Settings maLength = input.int(20, title="MA Length") maType = input.string("SMA", title="MA Type (SMA, EMA, etc.)") // Calculate KDJ kdj_highest = ta.highest(high, kdjLength) kdj_lowest = ta.lowest(low, kdjLength) kdjRSV = 100 * ((close - kdj_lowest) / (kdj_highest - kdj_lowest)) kdjK = ta.sma(kdjRSV, kdjSignal) kdjD = ta.sma(kdjK, kdjSignal) kdjJ = 3 * kdjK - 2 * kdjD // Calculate Moving Average ma = ta.sma(close, maLength) // SMA kullanarak ortalama hesaplama // Determine MA Direction maCrossUp = ta.crossover(close, ma) maCrossDown = ta.crossunder(close, ma) // Plot MA with Direction Color Change maColor = maCrossUp ? color.green : maCrossDown ? color.red : color.gray plot(ma, color=maColor, title="Moving Average") // Plot Trading Signals plotshape(kdjJ >= kdjOverbought ? low : na, style=shape.triangleup, location=location.belowbar, color=color.red, size=size.small, title="Short Signal") plotshape(kdjJ <= kdjOversold ? high : na, style=shape.triangledown, location=location.abovebar, color=color.green, size=size.small, title="Long Signal") // Trading Strategy with Manual Margin and MA Strategy if (kdjJ >= kdjOverbought and maCrossDown) strategy.entry("Short", strategy.short, qty=1, comment="Short Entry") if (kdjJ <= kdjOversold and maCrossUp) strategy.entry("Long", strategy.long, qty=1, comment="Long Entry")