攻撃的な底部狙撃量的な戦略

作者: リン・ハーンチャオチャン,日付: 2024-01-18 16:25:33
タグ:

img

概要

この戦略は,下落傾向における残高のボリュームを検出することによって短期的な底部を特定し,過売り状況下でロングポジションを取ります.これは積極的な短期的取引戦略です.

戦略の原則

SMAベースの平均ボリュームより2標準偏差を超えると,残高ボリュームとみなされる.一方,30未満のRSIは過売り状態を示す.両方の条件が満たされた場合,短期底と判断され,すぐにロングポジションを取られる.ポジションは一定の時間 (例えば10バー) の後に閉鎖される.

この戦略の論理は単純です

  1. バランス基準としてボリュームの20バーSMAを計算する
  2. 流出量のための限界値として20barの体積の標準偏差2を計算する.
  3. 過剰販売状態を判断するために20バーのRSIを計算します.
  4. 値が基準値 + 2 標準偏差と RSI < 30 を超えると,短期底値として判断する.
  5. すぐ底にロングポジションを
  6. 10バー後,自動で閉じる位置

利点分析

この戦略の利点は以下の通りです.

  1. シンプルな論理,理解し最適化しやすい
  2. 短期的な転換点を検知するために残ったボリュームを利用する
  3. RSIは,オーバーセールゾーンでのロングを取ることを保証し,トップを追いかけるのを避けます
  4. 自動ストップ損失は底辺でのリスク回避を最大化します

要するに,この戦略は,トレンドの逆転を捉えるためにボリュームブレイクを利用し,リスクを厳格にコントロールする.これは信頼性の高い攻撃的な長期戦略です.

リスク分析

この戦略の主なリスクは以下のとおりです.

  1. ボリュームとRSIは誤ったブレイクシグナルを生成し,誤ったロングと損失を引き起こす可能性があります.
  2. 固定ストップ・ロスは,市場が大きく逆転するときに,ストップ・ロスを遅すぎたり,ストップ・ロスを遅すぎたりすることがあります.
  3. 適正でないパラメータチューニングは,信号が少ないか多すぎる可能性があります.

これらのリスクに対処するために,最適化は次の側面で行うことができます.

  1. 偽の突破信号をフィルタリングするために他の指標を追加します.
  2. 動的ストップ損失を固定数のバーではなく設定する.
  3. パラメータを徹底的にテストし 安定性を確保します

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

この戦略は,次の側面でさらに最適化できます.

  1. 誤った信号を避けるため,ボリュームブレイクの信頼性を判断するためにMLモデルを追加する
  2. 固定バーの代わりに適応ストップ損失メカニズムを追加
  3. 未定のボリュームパラメータのための多次元データセットの最適化
  4. MLスクリーニングを用いて過剰販売信号の精度を高める
  5. アルファを改善するために感情分析を組み込む

より高度な技術導入により,安定性,アルファ,シャープ比率の著しい改善が達成できます.

結論

概要すると,これは非常にシンプルで,直接的で,論理的な短期間のブレイクアウト戦略です.トレンド逆転を検出するためにボリュームを適切に活用し,リスクを厳格に制御することで,堅調なパフォーマンスを達成することができます.しかし,誤った信号とパラメータ強さのリスクは存在します.これらのことは,戦略をさらに改善するためにより高度な技術を導入することによって段階的に対処できます.


/*backtest
start: 2024-01-10 00:00:00
end: 2024-01-17 00:00:00
period: 1m
basePeriod: 1m
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/
// © footlz

//@version=4
strategy("Bottom catch strategy", overlay=true)

v_len = input(20, title="Volume SMA Length")
mult = input(2)
rsi_len = input(20, title="RSI Length")
oversold = input(30, title="Oversold")
close_time = input(10, title="Close After")

v = volume
basis = sma(v, v_len)
dev = mult * stdev(v, v_len)
upper_volume = basis + dev

rsi = rsi(close, rsi_len)

long = v > upper_volume and rsi < oversold

strategy.entry("Long", true, when=long)

passed_time = 0.0
if strategy.position_size != 0
    passed_time := 1
else
    passed_time := 0

if strategy.position_size != 0 and strategy.position_size[1] != 0
    passed_time := passed_time[1] + 1

if passed_time >= close_time
    strategy.close_all()

// If want to enable plot, change overlay=false.
v_color = close >= close[1] ? color.new(#3eb370, 0) : color.new(#e9546b, 0)

// plot(v, title="volume", color=v_color, style=plot.style_columns)
// plot(upper_volume, title="Threshold", color=color.aqua)

もっと