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

作者: リン・ハーンチャオチャン,日付: 2023-11-13 10:09:48
タグ:

img

概要

この戦略は,主要技術指標としてトレーダーダイナミックインデックス (TDI) を利用し,異なるタイムフレームにおける移動平均値と組み合わせて取引信号を生成します.これは,過剰購入および過剰販売状況下で平均逆転機会を把握することを目的としています.

戦略の論理

この戦略は,まず13の期間で閉じるRSIを計算し,その後,RSIの34期間の単純な移動平均を計算し,RSIの34期間の標準偏差の1.6185倍を上部と下部帯として使用する.上部帯は移動平均プラスオフセット,下部帯は移動平均マイナスオフセットである.移動平均は中間帯である.

RSIの速度のMAを2期で計算し,RSIの速度のMAを7期で計算し,これらの指標の歴史的値をより高い時間枠から取得する.速度のMAが緩やかなMAを下回ると,購入信号が生成される.速度のMAが緩やかなMAを下回ると,販売信号が生成される.

利点分析

この戦略は,RSIの平均逆転特性を利用し,逆転取引を実施するためにモメンタム指標を組み合わせます.RSIの上下帯は過買い・過売状態を反映し,中間帯は平均価格レベルを反映しています.高速・遅いMAのクロスオーバーはモメンタム変化と逆転機会を反映しています.全体として,この戦略は理想的な引き下げ制御で逆転点を正確に捉えています.

RSI帯は,異常を迅速に検出するために,合理的な過剰購入および過剰販売の値を設定する.中間帯は均衡価格レベルを把握する.高速MAは短期間のノイズをフィルタリングし,遅いMAは中期トレンドを決定する.一緒に作業することで,逆転の機会を効果的に特定することができる.また,異なる時間枠の指標の組み合わせにより,戦略は複数の時間軸で確認することができ,誤った信号のリスクを軽減する.

リスク分析

この戦略は主に平均逆転に基づいている.これは固有のタイミングリスクを有する.市場が短い絞り込みなどの長期的不合理な拡大を経験した場合,連続的な損失が発生する可能性があります.また,高速および遅いMAを適切に設定できなければ,見逃した逆転機会または誤った信号を引き起こす可能性があります.いくつかのパラメータ最適化が必要です.

上記のリスクを制御するために,MA期間を合理的に調整するか,ストップロスのメカニズムを追加することが推奨されます.市場は不合理な状態に入ると,ポジションサイズを減らすか,取引を完全に停止する必要があります.全体として,特定の市場環境に戦略を適応することが重要です.

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

戦略は以下の側面で最適化できます.

  1. 異なる長さの RSI 期間をテストし,現在の市場状況に適した設定を見つけます.

  2. 速くて遅いMAsの長さを最適化して 逆転を捉え 音をフィルタリングするバランスをとる

  3. ストップ・ロスは,最大引き上げを制御するために,変動に基づくストップ・ロスを追加します.

  4. 精度を向上させるため 音量変化のような要素を追加してみてください

  5. 複数のタイムフレームで同じ取引シグナルを再利用する効果をテストする.

  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")

もっと