TAM 日中のRSI取引戦略

作者: リン・ハーンチャオチャン,日付: 2023年10月17日 16:58:46
タグ:

img

概要

TAM日中RSIトレーディング戦略は,日中エントリーとアウトシグナルを生成するために,異なる期間のRSI指標のクロスオーバーを利用する.この戦略は,RSIインジケーターによって明らかにされた過剰購入および過剰販売条件を効果的に資本化し,市場が逆転の兆候を示したときに反トレンド取引を行うことで,牛と熊の両方の環境で良好なパフォーマンスを発揮する.

戦略の論理

この戦略は,2つのRSIインジケーターを使用して購入・売却信号を生成する.購入信号は,短期間の2日間のRSIと中期間の14日間のRSIを使用し,短期または中期間のRSIが50を超えると購入を誘発する.販売信号は,短期間の7日間のRSIと中期間の50日間のRSIを使用し,短期または中期間のRSIが50を下回ると販売を誘発する.

この戦略では,RSIが50の値を超えて移動し,単にそれを越えてはならないことも求められ,多くの誤った信号をフィルターにします.特に,購入には以下の条件を満たす必要があります.

  • 2日間のRSIは50を超え
  • 2日間のRSIは50以上
  • 14日間のRSIは50を超え
  • 14日間のRSIは50以上

販売条件は類似しています

  • 7日間のRSIは50を下回る
  • 7日間のRSIは50未満です
  • 50日間のRSIは50を下回る
  • 50日間のRSIは50未満です

このような複数の層のフィルタリングは,RSIが明白な過買い/過売りの兆候を示したときにのみ信号が起動し,軽微な振動によって誤導されないことを保証します.

利点分析

TAM日中のRSI戦略には以下の利点があります.

  1. デュアルRSIを利用すると,多期分析が可能で,市場の騒音を効果的にフィルタリングし,重要なトレンド逆転点のみに入ります.

  2. RSIの実際の値がキードレッホを突破することを要求すると,誤ったブレイクシグナルが回避されます.

  3. 入口と出口の異なるパラメータの RSI を採用することで,逆転タイミングをより正確に特定できます.

  4. RSIは,日中取引窓内で比較的安定したパフォーマンスを示し,日中戦略に適しています.

  5. カスタマイズ可能なパラメータにより,異なる市場に対するRSIインプットを調整し,より良い結果を得ることができます.

  6. アルゴ取引の理解と実施を容易にする.

リスク分析

この戦略にはいくつかのリスクもあります:

  1. 日中取引は,ストップ・ロスの設定をスキップできる"日間のギャップリスクがあります.

  2. RSIの差異は頻繁に発生し,他の指標と検証する必要があります.

  3. 日中の波動性が高いため,ストップロスは幅広く,しかし幅が大きすぎない必要があります.

  4. パラメータの最適化により 過剰な適合が起こり 異なる市場でのテストが必要になります

  5. バックテストの制限は,実際の取引を完全に反映できないため,ライブパフォーマンスの調整が必要です.

オプティマイゼーションの方向性

戦略は以下の点で改善できる:

  1. KDJ,MACDなどの他の指標で確認を追加します.

  2. 音量フィルターを導入して 音量増加のシグナルのみを考慮します

  3. さらに短くイントラデイサイクルのパラメータを最適化します

  4. 機械学習モデルで決定を支援し,最適パラメータをアルゴリズム的に探す.

  5. 芸術的な触覚で S/Rのレベルを 組み合わせた技術分析のチャートパターン

  6. 動的ATR,波動性に基づく方法でストップロスを改善する.

結論

TAMイントラデイRSI戦略は,非常に実用的な量戦略である.マルチタイムフレームRSI評価を使用して,過剰購入および過剰販売状況を効果的に評価し,誤った信号をフィルターするために厳格なエントリー/エグジットルールと組み合わせると,堅固な信号を生成する.適切な最適化とリスク管理により,戦略は安定した取引信号を生成し,良い結果を達成することができます.その明確で直接的な論理は,アルゴトレーダーに実装しテストすることを容易にする.


/*backtest
start: 2023-09-16 00:00:00
end: 2023-10-16 00:00:00
period: 1h
basePeriod: 15m
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/
// © DvKel

//@version=5
strategy("TAM - RSI Strategy", overlay = true)

// Input parameters
useDateFilter = input.bool(true, title="Filter Date Range of Backtest",  group="Backtest Time Period")
startDate = input(timestamp("2020-01-01"), title = "Start date", group = "Backtest Time Period")
buyRsiLength1 = input(2, title = "RSI Buy Length 1 (default 2)", group="Buy configuration")
buyRsiLength2 = input(14, title = "RSI Buy Length 2 (default 14)", group="Buy configuration")
buyRsiValue = input(50, title = "RSI Buy Value Signal (default 50)", group="Buy configuration")
closeRsiLength1 = input(7, title = "RSI Close Length 1 (default 7)", group="Close configuration")
closeRsiLength2 = input(50, title = "RSI Close Length 2 (default 50)", group="Close configuration")
closeRsiValue = input(50, title = "RSI Close Value Signal (default 50)", group="Close configuration")

// Check timeframe
inTradeWindow = true

// Calculate RSI
rsiBuy1Value =  ta.rsi(close, buyRsiLength1)
rsiBuy2Value = ta.rsi(close, buyRsiLength2)
rsiClose1Value =  ta.rsi(close, closeRsiLength1)
rsiClose2Value = ta.rsi(close, closeRsiLength2)

// Strategy conditions
//(ta.crossover(rsiBuy1Value, buyRsiValue) or ta.crossover(rsiBuy2Value, buyRsiValue)) and 
//8ta.crossunder(rsiClose1Value, closeRsiValue) or ta.crossunder(rsiClose2Value, closeRsiValue)) and
buyCondition = (ta.crossover(rsiBuy1Value, buyRsiValue) or ta.crossover(rsiBuy2Value, buyRsiValue)) and rsiBuy1Value > buyRsiValue and rsiBuy2Value > buyRsiValue
closeCondition = (ta.crossunder(rsiClose1Value, closeRsiValue) or ta.crossunder(rsiClose2Value, closeRsiValue)) and rsiClose1Value < closeRsiValue and rsiClose2Value < closeRsiValue


// Strategy actions
if (inTradeWindow  and buyCondition) 
    strategy.entry("Buy", strategy.long)


if (inTradeWindow and closeCondition) 
    strategy.close("Buy")

// Plot RSI and overbought/oversold levels
plotchar(rsiBuy1Value, title = "RSI-Buy1", color = color.green)
plotchar(rsiBuy2Value, title = "RSI-Buy2", color = color.lime)
plotchar(rsiClose1Value, title = "RSI-Close1", color = color.red)
plotchar(rsiClose2Value, title = "RSI-Close2", color = color.fuchsia)




もっと