KDJとRSIに基づく買いと売りのポイント戦略


作成日: 2023-11-27 10:57:16 最終変更日: 2023-11-27 10:57:16
コピー: 0 クリック数: 2432
1
フォロー
1617
フォロワー

KDJとRSIに基づく買いと売りのポイント戦略

概要

この戦略は,KDJ指標とRSI指標を組み合わせて,買い/売却のタイミングを決定する.これは,KDJ指標とRSI指標が買い/売却のシグナルを発信するときに取引シグナルを発信する.

戦略原則

この戦略は,KDJ指数とRSI指数の交差点を用いて,買いと売却のタイミングを判断する.

具体的には,KDJのJ線が下からK線を横切るときは買入信号とみなされ,J線が上からK線を横切るときは売り出信号とみなされる.これは,株が超売り状態から超買い状態に変化したときの買入,超買い状態から超売り状態に変化したときの売り出である.

同時に,この戦略は,RSI指標と組み合わせて,強い信号を判断する. RSIが30未満は,オーバーセール,RSIが70以上は,オーバー買いである. KDJが買取シグナルを発信すると,RSI指標もオーバーセールとして表示されれば,買取シグナルの信頼性が強化されます.

この戦略は,以下のような状況で取引シグナルを発信します.

購入のサイン:

  1. KDJのJ線がK線を上向きに通過し,RSI (第6期) < RSI (第12期)
  2. KDJのJ線はK線を上向きに通過し,RSI (第6期) はRSI (第24期) を通過する
  3. RSI (期6期) はRSI (期24期) を通過し,RSI (期6期) は40未満である

信号を販売する:

  1. KDJのJ線はK線を下向きに通過し,RSI (第6期) > RSI (第12期)
  2. KDJのJ線は下向きにK線を通過し,RSI (第6期) はRSI (第24期) を通過する
  3. RSI (6期) はRSI (24期) を経由し,RSI (6期) は60を超えています.

戦略的優位性

  1. KDJ指標とRSI指標を組み合わせて,取引シグナルをより信頼性のあるものにします.

  2. KDJ指標は,超買い状態を判断し,RSI指標は,強弱状態を判断し,両者を組み合わせると,ターニングポイントをよりよく把握できます.

  3. 単一の指数でチャンスを逃さないように,複数の条件の組み合わせで購入/販売します.

  4. RSIのパラメータは,6期,12期および24期の3組のパラメータで設定されており,これらのパラメータは,異なる周期レベルに適用され,戦略の適用範囲を広げる.

リスク分析

  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)