RSI追跡 ADX 戦略

作者: リン・ハーンチャオチャン,日付: 2023年10月10日 10:32:48
タグ:

概要

RSIトラッキングADX戦略は,RSI指標とADX指標を組み合わせたトレンドフォロー戦略である.RSI指標を使用して過買い・過売り状況,ADX指標を使用してトレンド強さを測定し,トレンドが弱くなったり過買いになったりするとエントリーを許可し,トレンドが弱くなったり過買いになったりすると終了する.

戦略の論理

この戦略は主にRSI指標とADX指標の組み合わせを使用して入口と出口を決定します.

入国条件:

  1. 20日間のSMA上昇

  2. ADXは前日より0.2以上上昇し 強化傾向を示しています

  3. RSIは85を下回る.過剰購入を避けるため.

あるいは

  1. 20日間のSMA上昇

  2. ADX が上昇しているが,0.2未満で,穏やかな傾向を示している.

  3. RSIは50以下で リバウンドする余地がある

出口条件:

  1. RSIが75を超えると,過剰購入状態.

  2. ADXは軽い上昇,傾向は弱

あるいは

  1. RSIが75を超えると,過剰購入状態.

  2. ADXが急上昇し 強い傾向

あるいは

20日間のSMAが下がる

この戦略は,過買い/過売りのRSIと,過買いが起こらない場合の上昇傾向に入ると,過買いまたは傾向が弱くなった場合の脱出を意味するADXを使用します.これは中長期の上昇傾向を追跡することを可能にします.

利点

この戦略の主な利点は以下の通りです.

  1. RSIとADXを組み合わせると,より正確なトレンドと過買い/過売値が読み取られ,より良いエントリーと出口が可能になります.

  2. ADXは,統合中にウィップソー出口を避けるためにトレンド強さを測定します.

  3. RSIは中長期のトレンドを追跡し,過剰な取引を減らすために緩いパラメータを使用します.

  4. シンプルな論理と簡単な実装で 長期投資に適しています

  5. 設定可能なパラメータは柔軟性を可能にします

リスク

主なリスクは以下のとおりです.

  1. ADXの遅延は,トレンドターニングポイントを逃し,より大きな損失につながる可能性があります.

  2. ストップ・ロスは,急激な価格下落の際に遅刻して発生し,損失を拡大する可能性があります.

  3. RSIのパラメータが太りすぎると 持分が長期間 過剰に買い上げられる可能性があります

  4. ADX パラメータが敏感すぎると,弱気勢で誤って出口が起こる可能性があります.

  5. 市場体制の変動により ストックが異常な振る舞いをすることがあります

リスク管理

  1. 敏感性のために ADX 期間を短くします.

  2. ストップ・ロスを絞り込み 損失を制限する

  3. 長期にわたる買い過ぎを避けるために RSI 期間を短縮する.

  4. ADX パラメーターが敏感すぎないように

  5. 市場が大きく動いた時に 手動でオーバーライドする

改良

戦略を最適化するには

  1. RSI期間をテストして より良いパラメータを

  2. ADX 期間を最適化して 傾向を把握する

  3. 確認のためにMACDのような他の指標を追加します.

  4. 移動平均の組み合わせをテストして エントリを改善します

  5. リスク・リターン比を高めるため 利益を引き上げ ストップ損失を加える

  6. ターニングポイントで手動でオーバーライドする 市場システムを判断します

結論

RSIトラッキングADX戦略は,効果的だがシンプルなトレンドフォロー戦略である.正確なトレンドとオーバーバイト/オーバーセール分析のためにRSIとADXの強みをシネージ化する.論理は,最適化柔軟性で直接的で簡単に実装できる.ADX遅延とストップ損失設定に対して注意が必要です.全体として,中長期トレンドトラッキングに適しており,安定した利益をもたらすことができます.


/*backtest
start: 2022-10-03 00:00:00
end: 2023-10-09 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Copyright by Reed Asset Management registered in Shanghai, China
//该策略为上海蘆田资产管理有限公司制
//@version=2
strategy("[蘆田策略]ADX+RSI", overlay=true)

//ADX
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
dirmov(len) =>
	up = change(high)
	down = -change(low)
	truerange = rma(tr, len)
	plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, len) / truerange)
	minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, len) / truerange)
	[plus, minus]

adx(dilen, adxlen) => 
	[plus, minus] = dirmov(dilen)
	sum = plus + minus
	adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)

sig = adx(dilen, adxlen)

plot(sig, color=red, title="ADX")

//ADX+RSI Strategy Long Entry
longEntry1 = sma(close, 20) > sma(close, 20)[1] //check if the ADX is rising
longEntry2 = (adx(14, 14) - adx(14, 14)[1]) > 0.2
longEntry3 = rsi(close, 14) < 85
longEntry4 = (adx(14, 14) - adx(14, 14)[1]) > 0
longEntry5 = (adx(14, 14) - adx(14, 14)[1] ) < 0.2
longEntry6 = rsi(close, 14) < 50

longCondition1 = longEntry1 and longEntry2 and longEntry3
longCondition2 = longEntry1 and longEntry4 and longEntry5 and longEntry6
if(longCondition1 or longCondition2)
    strategy.entry("long", strategy.long)

//ADX+RSI Strategy Long Exit
longExit1 = rsi(close, 9) > 75
longExit2 = (adx(14, 14) - adx(14, 14)[1]) > 0
longExit3 = (adx(14, 14) - adx(14, 14)[1] ) < 0.2
longExit4 = (adx(14, 14) - adx(14, 14)[1]) > 0.2
longExit5 = sma(close, 20) < sma(close,20)[1]

longExitCondition1 = longExit1 and longExit2 and longExit3
longExitCondition2 = longExit1 and longExit4
longStop1 = strategy.position_avg_price + 4 * tr
longExitCondition3 = longExit5
longStop2 = sma(close, 20)

strategy.close_all(when = longExitCondition1)
if (longExitCondition2)
    strategy.exit("exit", "long", stop = longStop1)
if (longExitCondition3)
    strategy.exit("exit", "long", stop = longStop2)
    

//Strategy


もっと