
이 전략은 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")