ストカスティックRSIとボリュームベースの取引戦略

作者: リン・ハーンチャオチャン,日付: 2023年11月2日 14:12:13
タグ:

img

概要

この戦略は,ストーカスティックRSIインジケーターと取引量を組み合わせます.ストーカスティックRSIインジケーターが横断したとき,購入・売却信号を生成し,過去7日の平均量よりもボリュームが高くなったときにのみ取引します.目標は,ストーカスティックRSIインジケーターを使用してオーバーバイトとオーバーセール条件を特定し,その後,ボリュームを使用して偽信号をフィルタリングし,強いトレンド中に取引機会を見つけることです.

戦略の論理

まず,14期間のRSIが計算され,STOCHRSI KとD値を生成するためにRSIにストーカスティック指標が適用されます.STOCHRSIインジケーターは過剰購入および過剰販売の条件をシグナルします.

その後,K値とD値の差を計算します.差が0を超えると,指標レベルは1に設定され,0以下になると-1に設定されます.指標レベルはStockRSIの長/短状態を決定します.

次に,過去7日間の平均ボリュームが計算される.K値がD値 (インディケーターレベルがマイナスから正に変化する) を越えて,閉じる値はオープン値よりも高く,ボリュームは平均値よりも高くなった場合,それは購入をシグナル化する.K値がD値を下回り (インディケーターレベルがポジティブから負に変化する) 閉じる値はオープン値よりも低く,ボリュームが平均値よりも高くなった場合,それは販売をシグナルする.

ストックRSI指標を組み合わせて 過剰購入/過剰販売の状況と 偽信号をフィルターし 強いトレンドで取引します

利点分析

  1. StochRSIは,平均リバーション取引の過剰購入/過剰売却レベルを特定します. 範囲限定市場ではボリュームが誤った信号を回避します.

  2. ボランスの条件は,低ボランスの偽ブレイクをフィルターします.高ボランスのトレンドの間に取引するだけで,収益性が向上します.

  3. K/Dクロスオーバーとボリュームの組み合わせにより,強力な信号が提供され,偽信号は避けられます.

  4. アルゴ取引の実装に適しています

リスク分析

  1. StochRSIはK/Dクロスオーバーに遅れがみられる. センシビリティのためにパラメータを最適化する必要がある.

  2. 市場崩壊時 膨大な損失を起こす可能性があります リスクを制御するためにストップロスを必要とします

  3. ストックRSIに過度依存すると 誤ったブレイクが起こる

  4. 取引の機会を逃す可能性があります. ティックの分析,最適化のためのティックのパワーを追加することができます.

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

  1. StochRSI パラメータを最適化して,最もよいK,D値の感度を見つける.

  2. ボリュームの移動平均を足し,ボリュームの傾向を決定し,ボリュームが落ちると誤った信号を避ける.

  3. コンボ信号のためにMACD,RSIなどの他の指標を追加して精度を向上します.

  4. 動的ストップ損失管理のためにATRに基づくストップ損失を追加します.

  5. 対称体積と対照体積を分析し,対称体積による過剰なリスクを回避する.

  6. 適応性のあるストックRSIパラメータを市場体制に基づいて使用する.

結論

この戦略は,主にストックRSIを使用してオーバーバイト/オーバーセールとK/Dクロスオーバーを決定する.誤った信号をフィルタリングし,強いトレンドの間にのみ取引するためにボリューム分析を追加する.インジケーターの単純な統合は,簡単に実装できるアルゴ戦略を作成する.さらなるテストと最適化は強度と収益性を向上させる.しかし,ボリューム増幅リスクは監視する必要があるし,リスクを制御するためにストップ損失を推奨する.


/*backtest
start: 2023-10-02 00:00:00
end: 2023-11-01 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("StochRSI Volume Strategy", overlay = true)

// StochRSI inputs
smoothK = input.int(3, title="K")
smoothD = input.int(3, title="D")
lengthRSI = input.int(14, "RSI Length")
lengthStoch = input.int(14, "Stochastic Length")

// Calculate StochRSI
rsiValue = ta.rsi(close, lengthRSI)
k = ta.sma(ta.stoch(rsiValue, rsiValue, rsiValue, lengthStoch), smoothK)
d = ta.sma(k, smoothD)

// Calculate difference between lines
lineDifference = k - d

// Calculate indicator level based on line positions
level = lineDifference >= 0 ? 1 : -1

// Calculate mean of last 7 volume bars
meanVolume = ta.sma(volume, 7)

// Determine buy and sell conditions
buyCondition = level > -1 and level[1] <= -1 and close > open and volume > meanVolume
sellCondition = level < 1 and level[1] >= 1 and close < open and volume > meanVolume

// Execute buy and sell signals
strategy.entry("Buy", strategy.long, when = buyCondition)
strategy.entry("Sell", strategy.short, when = sellCondition)

// Plot StochRSI levels
plot(level, title="Indicator Level", color=color.blue, linewidth=2)

もっと