この戦略は,ストーカスティックRSIインジケーターと取引量を組み合わせます.ストーカスティックRSIインジケーターが横断したとき,購入・売却信号を生成し,過去7日の平均量よりもボリュームが高くなったときにのみ取引します.目標は,ストーカスティックRSIインジケーターを使用してオーバーバイトとオーバーセール条件を特定し,その後,ボリュームを使用して偽信号をフィルタリングし,強いトレンド中に取引機会を見つけることです.
まず,14期間のRSIが計算され,STOCHRSI KとD値を生成するためにRSIにストーカスティック指標が適用されます.STOCHRSIインジケーターは過剰購入および過剰販売の条件をシグナルします.
その後,K値とD値の差を計算します.差が0を超えると,指標レベルは1に設定され,0以下になると-1に設定されます.指標レベルはStockRSIの長/短状態を決定します.
次に,過去7日間の平均ボリュームが計算される.K値がD値 (インディケーターレベルがマイナスから正に変化する) を越えて,閉じる値はオープン値よりも高く,ボリュームは平均値よりも高くなった場合,それは購入をシグナル化する.K値がD値を下回り (インディケーターレベルがポジティブから負に変化する) 閉じる値はオープン値よりも低く,ボリュームが平均値よりも高くなった場合,それは販売をシグナルする.
ストックRSI指標を組み合わせて 過剰購入/過剰販売の状況と 偽信号をフィルターし 強いトレンドで取引します
StochRSIは,平均リバーション取引の過剰購入/過剰売却レベルを特定します. 範囲限定市場ではボリュームが誤った信号を回避します.
ボランスの条件は,低ボランスの偽ブレイクをフィルターします.高ボランスのトレンドの間に取引するだけで,収益性が向上します.
K/Dクロスオーバーとボリュームの組み合わせにより,強力な信号が提供され,偽信号は避けられます.
アルゴ取引の実装に適しています
StochRSIはK/Dクロスオーバーに遅れがみられる. センシビリティのためにパラメータを最適化する必要がある.
市場崩壊時 膨大な損失を起こす可能性があります リスクを制御するためにストップロスを必要とします
ストックRSIに過度依存すると 誤ったブレイクが起こる
取引の機会を逃す可能性があります. ティックの分析,最適化のためのティックのパワーを追加することができます.
StochRSI パラメータを最適化して,最もよいK,D値の感度を見つける.
ボリュームの移動平均を足し,ボリュームの傾向を決定し,ボリュームが落ちると誤った信号を避ける.
コンボ信号のためにMACD,RSIなどの他の指標を追加して精度を向上します.
動的ストップ損失管理のためにATRに基づくストップ損失を追加します.
対称体積と対照体積を分析し,対称体積による過剰なリスクを回避する.
適応性のあるストック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)