
이 전략은 KDJ 지표와 RSI 지표를 결합하여 매매 시점을 결정한다. KDJ 지표와 RSI 지표가 매매/매매 신호를 내면 거래 신호를 내린다.
이 전략은 KDJ 지수와 RSI 지수의 교차를 사용하여 구매 및 판매 시간을 판단합니다.
구체적으로, KDJ의 J선이 K선을 하향에서 가로질러 오는 것은 구매 신호로 간주되며, J선이 K선을 상향에서 가로질러 오는 것은 판매 신호로 간주된다. 이것은 주식이 과매도 상태에서 과매도 상태로 전환할 때 구매하고, 과매도 상태에서 과매도 상태로 전환할 때 판매하는 것을 의미한다.
한편, 이 전략은 RSI 지표와 결합하여 약한 신호를 판단한다. RSI가 30보다 작으면 과매매, RSI가 70보다 크면 과매매이다. KDJ가 구매 신호를 내면 RSI 지표가 과매로 표시되면 구매 신호의 신뢰성이 강화된다. 반대로, KDJ가 판매 신호를 내면 RSI가 과매로 표시되면 판매 신호의 신뢰성이 강화된다.
전체적으로, 이 전략은 다음과 같은 경우에 거래 신호를 발산합니다.
구매 신호:
신호를 팔아:
KDJ 지표와 RSI 지표가 결합되어 거래 신호를 더욱 신뢰할 수 있게 한다.
KDJ 지표는 과매매 상태를 판단하고, RSI 지표는 강약 상태를 판단하며, 둘을 결합하면 전환점을 더 잘 잡을 수 있다.
여러 가지 구매/판매 조건의 조합으로, 단일 지표 때문에 기회를 놓치지 않도록하십시오.
RSI의 파라미터는 6기, 12기, 24기 세 그룹으로 설정되어 있으며, 이러한 파라미터는 다른 주기적 수준에 적용되며, 전략의 적용 범위를 넓히고 있다.
KDJ 지표와 RSI 지표 모두 가짜 신호가 발생할 수 있으며, 이로 인해 불필요한 거래가 발생할 수 있습니다.
다중 거래 조건은 전략적 동작의 복잡성을 증가시키고, 신중한 검증이 필요합니다.
이 전략은 또한 다양한 시장에서 테스트 및 최적화를 필요로 하며, 또한 매개 변수들에 대한 조정이 필요하다.
다른 지표를 추가하여 테스트할 수 있습니다. 예를 들어, 브린 라인, 강화 거래 신호 등이 있습니다.
KDJ 지표와 RSI 지표의 매개 변수를 최적화하여 다른 주기적 수준에 더 적합하게 만들 수 있습니다.
위험은 더 높은 스포드 스탠더드를 통해 조절할 수 있습니다.
가격 역전시 자동으로 중단되는 자동 손실 메커니즘을 추가할 수 있습니다.
이 전략은 KDJ 지표와 RSI 지표의 장점을 결합하여 쌍방향 지표의 교차를 통해 구매 및 판매 시기를 판단하여 거래 신호의 정확성을 향상시킵니다. 동시에 다양한 매개 변수와 결합된 RSI 지표는 다공간 상태를 판단하여 전략의 적용 범위를 넓히고 있습니다. 이 전략은 단일 지표가 가져올 수있는 가짜 신호 위험을 효과적으로 방지합니다.
/*backtest
start: 2022-11-20 00:00:00
end: 2023-11-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © innocentChart76064
//@version=5
strategy(title = "buy/sell KDJ RSI", overlay=true)
//Define KDJ parameter
kdj_length = input(9, title = "KDJ length")
signal = input(3,title="signal")
// Calculate KDJ values
bcwsma(s,l,m) =>
_bcwsma = float(na)
_s = s
_l = l
_m = m
_bcwsma := (_m*_s+(_l-_m)*nz(_bcwsma[1]))/_l
_bcwsma
c = close
h = ta.highest(high, kdj_length)
l = ta.lowest(low,kdj_length)
RSV = 100*((c-l)/(h-l))
kdj_k = bcwsma(RSV, signal, 1)
kdj_d = bcwsma(kdj_k, signal, 1)
kdj_j = 3 * kdj_k-2 * kdj_d
//Define RSI parameter
rsi_length_1 = input(6)
rsi_length_2 = input(12)
rsi_length_3 = input(24)
price = close
//Calculate RSI values
rsi_1 = ta.rsi(price, rsi_length_1)
rsi_2 = ta.rsi(price, rsi_length_2)
rsi_3 = ta.rsi(price, rsi_length_3)
// Trading conditions
longCondition = ta.crossover(kdj_j,kdj_k) and rsi_1 > rsi_2 or ta.crossover(kdj_j,kdj_k) and ta.crossover(rsi_1,rsi_3) or ta.crossover(rsi_1,rsi_3) and rsi_1<40
shortCondition = ta.crossunder(kdj_j,kdj_k) and rsi_1 < rsi_2 or ta.crossunder(kdj_j,kdj_k) and ta.crossunder(rsi_1,rsi_3) or ta.crossunder(rsi_1,rsi_3) and rsi_1>60
// Enter long trade
strategy.entry("Long", strategy.long, when=longCondition)
// Enter short trade
strategy.entry("Short", strategy.short, when=shortCondition)