RSIをベースにした長期戦略,定量取引のTrailing Stop

作者: リン・ハーンチャオチャン開催日:2024-03-08 15:06:58
タグ:

img

概要

この記事では,相対強度指数 (RSI) とトレーリングストップに基づいてロングに行くための定量的な取引戦略を紹介しています.この戦略は,RSI指標を使用して,過剰購入および過剰販売の市場状況を決定し,市場が過剰販売されたときにロングポジションを入力し,過剰購入されたときにポジションを閉じます.同時に,この戦略はリスクを制御するためにパーセントベースのトレーリングストップを使用します.これは強い市場の上昇傾向を捉えるために設計された古典的なトレンドフォロー戦略です.

戦略の原則

この戦略の核心は相対強度指数 (RSI) である.RSIは,期間中の価格変動の大きさを測定するために使用されるモメントオシレーターである.その計算式は:

RS = Average gain over N days / Average loss over N days
RSI = 100 - 100 / (1 + RS) 

ここで N は RSI を計算する時間帯で,通常は 14 に設定されます.

戦略の論理は次のとおりです

  1. N期間のRSIを計算する.
  2. RSIが過売値 (例えば,30) を下から越えると,ロングポジションに入ります.
  3. RSIが上から過買い値 (例えば70) を下回ると,ロングポジションを閉じる.
  4. 入力時に,現在の価格と設定されたパーセントに基づいてストップ損失価格を計算します.
  5. ストップ・ロスの値に達すると,ロングポジションを閉じて損失をコントロールします.

この戦略は,市場が下落から上昇への移行の開始時にポジションを入力し,主要な上昇傾向を把握するために,上昇市場の終わりに退場しようとします.

利点分析

  1. シンプルさ:この戦略は1つの技術指標,RSIを使用し,論理が明確で,初心者が学習して使用するのに適しています.
  2. トレンドフォロー: トレンド投資の"低価格で低価格で高価格で高価格で"原則に従い,過剰販売領域にポジションを入れ,過剰購入領域からポジションを外す.
  3. リスク管理: 割合に基づくトレーリングストップは,投資家が各取引のリスク暴露を制御し,損失を許容範囲に制限するのに役立ちます.

リスク分析

  1. RSIは遅れの指標であり,レンジ・バインド市場では多くの誤った信号を生み出し,小さな損失を大きな損失に蓄積する頻繁なエントリーとアウトアウトにつながります.
  2. ストップロスの設定が不適切です.ストップロスがあまりにも幅広く設定された場合,取引毎の損失は大きくなります.狭すぎると,戦略は早すぎる段階で停止し,次のトレンドを見逃します.
  3. ポジション管理の欠如: 戦略にはポジションを動的に調整するメカニズムがないため,リスクリスク管理が柔軟ではない.

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

  1. トレンドフィルタリング: RSI信号を使用する前に,まず移動平均値や他のトレンド指標を使用して長期トレンドを決定し,主要なトレンドが上昇したときのみRSIロング信号を使用します.
  2. ストップ・ロスの最適化: トレイリング・ストップやATRなどのより高度なストップ・ロスの戦略を使用して,ストップ・ロスのポジションを動的に調整し,市場のリズムに適した状態にする.
  3. ポジション管理: 市場の変動や傾向強さなどの要因に基づいて,それぞれの取引のサイズを動的に調整し,リスクをよりよくコントロールします.
  4. 長期短期ヘッジ:長期戦略を使用する際に,戦略の全体的なリスクリスクを減らすため,短期戦略を導入します.

結論

この記事では,RSIとトレーリングストップに基づいてロングに行くための定量的な取引戦略を提示した.この戦略は,リスクを制御するためにパーセントベースのトレーリングストップを使用しながら,RSIオーバーバイトとオーバーセールシグナルを使用してポジションを入力および退出する.これは,初心者が学ぶのに適したシンプルで実践的なトレンドフォロー戦略である.しかし,レンジバインド市場でのパフォーマンスが悪いことやストップ損失とポジション管理の柔軟性の欠如などのいくつかの制限もあります.これらの欠点を解決するために,我々は,より強力なリターンを得るためにトレンドフィルタリング,ダイナミックストップ損失,ポジション管理,ロングショートヘッジなどの側面で戦略を最適化することができます.定量的な取引戦略の開発は,継続的な最適化と繰り返しのプロセスであり,投資家は実践で戦略を常に要約し,磨く必要があります.


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

//@version=5
strategy("RSI Strategy (Long)", overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
length = input( 14 )
overSold = input( 30 )
overBought = input( 70 )
price = close
vrsi = ta.rsi(price, length)
co = ta.crossover(vrsi, overSold)
cu = ta.crossunder(vrsi, overBought)

// *** Signals ***
enter_long = ta.crossover(vrsi, overSold)
enter_short = ta.crossunder(vrsi, overBought)
close_long = ta.crossunder(vrsi, overBought)
close_short = ta.crossunder(vrsi, overBought)


// *** Risk management *** 
entry_price = close
percent_diff = input(5)
stop_loss_price_long = (1 - percent_diff / 100.) * entry_price 
stop_loss_price_short = (1 + percent_diff / 100.) * entry_price 


// *** Positions *** 
if enter_long and strategy.position_size == 0
    strategy.entry("Long", strategy.long)
    strategy.exit("SL Long", "Long", stop = stop_loss_price_long)

if enter_short and strategy.position_size == 0
    strategy.entry("Short", strategy.short, qty=.001)
    strategy.exit("SL short", "Short", stop = stop_loss_price_short)

if close_long 
    strategy.close("Long", "Exit Long")

if close_short
    strategy.close("Short", "Exit Short")

もっと