
この戦略の名前は双輪駆動戦略. この戦略の主要な考え方は,SupertrendとRSIの2つの強力な技術指標を組み合わせ,それぞれの優位性を発揮し,より優れた量的な取引を実現することです.
この戦略の核心は,Change関数を使用してSupertrend指標の方向の変化を判断し,取引信号を生成することです.Supertrend指標の方向が上から下へと変化すると,買入信号を生成します.Supertrend指標が下から上へと変化すると,売り信号を生成します.
同時に,戦略は,RSI指標を導入し,いつ平仓すべきかを判断するのに補助する. RSI上の設定された超買線を穿ったとき,多額の注文は平らげられる. RSIの下の設定された超売り線を穿ったとき,多額の注文は平らげられる.
この戦略は,スーパートレンドとRSIを組み合わせたもので,最大の利点は以下の通りです.
Supertrendは,市場トレンドの変化を判断し,購入と売却の正確な決定を実現します.
RSIは,正規のストップ・ローズ位置を判断するのに役立ちます.
この2つの利点は互いを補完し,市場機会を掴みやすく,より安定した利益を得ることができます.
戦略は明確で簡潔で,理解し,追跡しやすく,様々なレベルの投資家に適しています.
収益の安定性を確保し,回収のリスクを制御し,安定した収益を容易に得ることができる.
自動車の2輪走行には多くの利点がありますが,注意すべきリスクがあります.
スーパートレンドとRSIは,誤った信号を生じ,不必要な損失を引き起こす可能性があります. 適切なパラメータを調整するか,他の指標を導入して検証することができます.
多空双方向取引はよりリスクが高く,より厳格な資金管理とリスク管理が必要である.
市場が異常な波動を起こすと,ストップは破られる可能性があり,他の手段でリスクをコントロールする必要があります.
スーパートレンド指数は,パラメータに対して高い感度があり,異なる市場ではATR周期と因子の大きさを調整する必要がある.
リスクを考えると,この戦略は以下の点で最適化できる:
VolumeやMACDなどの指標を追加して偽信号をフィルターし,入場をより正確にする.
ダイナミック・ストップを設定し,突破を追跡し,異常の危険に対応する.
SupertrendのパラメータとRSIのパラメータを最適化して,異なる市場の特性に適したものにします.
機械学習アルゴリズムを追加し,指標効果とパラメータ選択を補助する.
期貨,オプションなどのデリバティブを使用し,オフショーのリスクを軽減します.
ポジション管理の戦略を設定し,単一損失と最大撤収を制御する.
双輪駆動戦略は,スーパートレンドとRSIの2つの指標の優位性を統合し,効率的なトレンドキャプチャとストップストロスを実現する.この戦略は,単一の指標に比べて,シグナルがより信頼性が高く,リターンがより制御可能であり,実行しやすい,収益が安定したアルゴリズム取引戦略である.パラメータ設定の継続的な最適化,シグナルフィルタリングとリスク管理モジュールの追加により,この戦略はより優れたパフォーマンスを期待する.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
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/
// © alorse
//@version=5
strategy("Supertrend + RSI Strategy [Alose]", overlay=true )
stGroup = 'Supertrend'
atrPeriod = input(10, "ATR Length", group=stGroup)
factor = input.float(3.0, "Factor", step = 0.01, group=stGroup)
[_, direction] = ta.supertrend(factor, atrPeriod)
// RSI
rsiGroup = 'RSI'
src = input(title='Source', defval=close, group=rsiGroup)
lenRSI = input.int(14, title='Length', minval=1, group=rsiGroup)
RSI = ta.rsi(src, lenRSI)
// Strategy Conditions
stratGroup = 'Strategy'
showLong = input.bool(true, title='Long entries', group=stratGroup)
showShort = input.bool(false, title='Short entries', group=stratGroup)
RSIoverbought = input.int(72, title='Exit Long', minval=1, group=stratGroup, tooltip='The trade will close when the RSI crosses up this point.')
RSIoversold = input.int(28, title='Exit Short', minval=1, group=stratGroup, tooltip='The trade will close when the RSI crosses below this point.')
entryLong = ta.change(direction) < 0
exitLong = RSI > RSIoverbought or ta.change(direction) > 0
entryShort = ta.change(direction) > 0
exitShort = RSI < RSIoversold or ta.change(direction) < 0
if showLong
strategy.entry("Long", strategy.long, when=entryLong)
strategy.close("Long", when=exitLong)
if showShort
strategy.entry("Short", strategy.short, when=entryShort)
strategy.close("Short", when=exitShort)