KDJ RSI 크로스오버 구매 판매 신호 전략

저자:차오장, 날짜: 2023-11-27 10:57:16
태그:

img

전반적인 설명

이 전략은 KDJ 지표와 RSI 지표를 결합하여 구매 및 판매의 시기를 결정합니다. KDJ 지표와 RSI 지표가 구매 / 판매 신호를 발행 할 때 거래 신호를 생성합니다.

전략 원칙

이 전략은 KDJ 지표와 RSI 지표의 크로스오버를 사용하여 구매 및 판매 시기를 판단합니다.

특히, KDJ의 J 라인이 K 라인의 위에서 아래에서 위를 넘을 때, 그것은 구매 신호로 간주됩니다. 그리고 J 라인이 K 라인의 아래를 위에서 아래로 넘을 때, 그것은 판매 신호입니다. 이것은 주가가 과소매에서 과소매로 변할 때 구매하고 과소매에서 과소매로 변할 때 판매하는 것을 의미합니다.

동시에 전략은 신호의 강도를 판단하기 위해 RSI 지표를 포함합니다. RSI 30 이하는 과판되고 RSI 70 이상은 과반 매입입니다. KDJ가 구매 신호를 발행하면 RSI 지표가 과판을 표시하면 구매 신호의 신뢰성을 향상시킵니다. 반대로 KDJ가 판매 신호를 발행하면 RSI가 또한 과반 매입을 표시하면 판매 신호의 신뢰성을 향상시킵니다.

요약하자면, 이 전략은 다음과 같은 상황에서 거래 신호를 생성합니다.

구매 신호:

  1. KDJ의 J 선이 K 선과 RSI의 위를 가로질러 (6) < RSI의 12)
  2. KDJ의 J 선은 K 선 위에 넘어가고 RSI는 RSI 위에 넘어가고 있습니다.
  3. RSI ((6) 는 RSI ((24) 과 RSI ((6) < 40을 넘습니다.

판매 신호:

  1. KDJ의 J 선은 K 선 아래를 가로지르고 RSI는 (6) > RSI는 (12)
  2. KDJ의 J 선은 K 선 아래를 가로질러 그리고 RSI는 RSI 아래를 가로질러 (6)
  3. RSI ((6) 는 RSI ((24) 과 RSI ((6) > 60을 넘습니다.

장점

  1. KDJ 지표와 RSI 지표를 결합하면 거래 신호가 더 신뢰할 수 있습니다.

  2. KDJ 지표는 과잉 구매/ 과잉 판매 상태를 판단하고, RSI 지표는 강도를 판단합니다. 둘을 결합하면 전환점을 더 잘 파악할 수 있습니다.

  3. 여러 가지 구매/판매 조건은 하나의 지표로 인한 이유로 놓친 기회를 방지합니다.

  4. RSI 매개 변수는 6, 12 및 24 기간으로 설정되어 있으며, 이는 다른 사이클 레벨에 적합하므로 전략을 더 다양하게 만듭니다.

위험 분석

  1. KDJ와 RSI 모두 잘못된 신호를 주고 불필요한 거래를 할 수 있습니다.

  2. 여러 가지 거래 조건이 전략 작전을 복잡하게 만들고 신중한 검증을 요구합니다.

  3. 전략은 다른 시장에서 테스트되고 최적화되어야하며 매개 변수도 조정해야합니다.

개선 방향

  1. 거래 신호를 강화하기 위해 볼링거 밴드 같은 다른 지표를 추가하여 테스트하십시오.

  2. KDJ와 RSI의 매개 변수를 최적화하여 서로 다른 사이클 레벨에 맞게 합니다.

  3. 위험을 통제하기 위해 스톱 로스 기준을 높여라

  4. 자동 스톱 로스 메커니즘을 추가하여 가격이 역전될 때 손실을 중지합니다.

결론

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


더 많은