ダイナミックトレーダーインデックス戦略


作成日: 2023-11-13 10:09:48 最終変更日: 2023-11-13 10:09:48
コピー: 1 クリック数: 668
1
フォロー
1617
フォロワー

ダイナミックトレーダーインデックス戦略

概要

この戦略は,ダイナミックトレーダー指数 (TDI) を主要な技術指標として使用し,異なる周期の移動平均を組み合わせて取引シグナル生成を行う.その目的は,オーバーバイ・オーバーセルの場合の反転機会を発見することである.

戦略原則

この策略は,まず,13周期の長さで,closeのRSI値を計算します. 次に,RSIの34周期のシンプル移動平均を計算し,その後,RSIの34周期標準差を1.6185倍で上下軌道として計算します. 上上線は移動平均に偏移を加え,下線は移動平均に偏移を減算します.

その後,2サイクル長さの急速MAと7サイクル長さの緩慢MAを計算し,より高い周期からこれらの指標の歴史的値を取得します. 急速MAが上方から緩慢MAを横切ると,買入シグナルが生成され,急速MAが下方から緩慢MAを横切ると,売り込みシグナルが生成されます.

優位分析

この戦略は,RSI指標の平均逆転特性を利用し,動量指標と組み合わせて逆転取引を実装する.RSIの上下線は,超買超売領域を反映し,中線は,平均価格を反映する.高速と遅いMAの交差は,変動量の変化と逆転の機会を反映する.全体的に,この戦略は,逆転の精度,逆転の制御を捉える.

具体的には,RSIの上下は,合理的な超買超売の値を設定し,異常を早期に発見するのに役立ちます.中道は,均衡の値を把握しています.急速なMAは,短期的なノイズをフィルターし,遅いMAは,中期的なトレンドを判断しています.両者は,反転の機会を効果的に識別できます.さらに,異なる周期指標の組み合わせを使用することで,戦略は,複数の時間尺度で確認され,誤判のリスクを軽減します.

リスク分析

この戦略は主に逆転取引に基づいているため,一定の時効性リスクがある.空位走行などの長期にわたる不合理な市場拡大が発生した場合,この戦略は連続的な損失を生じます.また,速やかにMAを不適切に設定した場合,逆転の機会の一部を逃したり,誤判を起こす可能性があります.一定程度のパラメータ最適化は必要である.

上記のリスクを制御するために,MAサイクルを適切に調整するか,または停止メカニズムを増加させるなどが推奨されます. 市場は不合理な段階に入ると,ポジションを低下させ,さらには取引を停止する必要があります. 全体的に,特定の市場状況に合わせて戦略的調整を行うことが重要です.

最適化の方向

この戦略は以下の点で最適化できます.

  1. RSIサイクルパラメータを異なる長さでテストし,現在の市場に最も適した設定を見つける

  2. 速いMAと遅いMAの長さを最適化し,反転とフィルターノイズをバランスさせる

  3. 変動率に基づくストップを増やし,最大撤退を制御する

  4. 取引量の変化などの他の要因を下位命令論理に組み込むことで,成功率を向上させようと試みる

  5. 複数の時間枠でREUSEの同じ取引シグナルセットの効果をテストする

  6. 戦略のパラメータを動的に調整する最適化メカニズムに適応するパラメータを開発する

要約する

このRSI反転戦略の全体的な構造は合理的で,取引の論理は明確に説明できる。カスタマイズ可能な空間と最適化の可能性がある。パラメータ調整とリスク制御が置かれた場合,反転機会を捕捉する能力は期待に値する。次のステップは,より多くの反射とパラメータ調整によって戦略を最適化し,戦略のリスク抵抗性と収益レベルを向上させる。

ストラテジーソースコード
/*backtest
start: 2022-11-06 00:00:00
end: 2023-11-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2

strategy("TDI - Traders Dynamic Index [Mehdi]", shorttitle="TDIMEHDI")

rsiPeriod = input(13, minval = 1, title = "RSI Period")
bandLength = input(34, minval = 1, title = "Band Length")
lengthrsipl = input(7, minval = 0, title = "Fast MA on RSI")
lengthtradesl = input(2, minval = 1, title = "Slow MA on RSI")
p1 = input("15", title = "Signal Timeframe")

src = close                                                             // Source of Calculations (Close of Bar)

r = rsi(src, rsiPeriod)                                                 // RSI of Close
ma = sma(r, bandLength)                                                 // Moving Average of RSI [current]
offs = (1.6185 * stdev(r, bandLength))                                  // Offset
up = ma + offs                                                          // Upper Bands
dn = ma - offs                                                          // Lower Bands
mid = (up + dn) / 2                                                     // Average of Upper and Lower Bands
fastMA = sma(r, lengthrsipl)                                            // Moving Average of RSI 2 bars back
slowMA = sma(r, lengthtradesl)                                          // Moving Average of RSI 7 bars back

hline(20)                                                               // ExtremelyOversold
hline(30)                                                               // Oversold
hline(50)                                                               // Midline
hline(70)                                                               // Overbought
hline(80)                                                               // ExtremelyOverbought

up1 = request.security(syminfo.tickerid, p1, up)
dn1 = request.security(syminfo.tickerid, p1, dn)
mid1 = request.security(syminfo.tickerid, p1, mid)
slowMA1 = request.security(syminfo.tickerid, p1, slowMA)
fastMA1 = request.security(syminfo.tickerid, p1, fastMA)

plot(up1, "Upper Band", color = #3286c3, linewidth = 2)               // Upper Band
plot(dn1, "Lower Band", color = #3286c3, linewidth = 2)               // Lower Band
plot(mid1, "Middle of Bands", color = yellow, linewidth = 2)      // Middle of Bands
plot(slowMA1, "Slow MA", color=green, linewidth=2)                       // Plot Slow MA
plot(fastMA1, "Fast MA", color=red, linewidth=1)                         // Plot Fast MA

if (crossover(slowMA1, fastMA1))
    strategy.entry("Buy", strategy.long, comment="Buy")

if (crossunder(slowMA1, fastMA1))
    strategy.entry("Sell", strategy.short, comment="Sell")