アクティブボトムキャプチャ定量戦略


作成日: 2024-01-18 16:25:33 最終変更日: 2024-01-18 16:25:33
コピー: 3 クリック数: 557
1
フォロー
1617
フォロワー

アクティブボトムキャプチャ定量戦略

概要

この戦略は,下落傾向で判断された突出した取引量を短期底に定着させ,超売り状態で買い手操作を行うことで,積極的なショートライン取引戦略に属している.

戦略原則

取引量がSMAベースの平均の2倍標準差を超えると突破取引量と考えられ,RSIが30を下回ると超売り状態と考えられる.両条件が同時に満たされると,短期底と判断してすぐに多めにする.多めにすると一定時間後に (例えば10K線) ポジションを平らにして退場する.

この戦略の論理は以下の通りです.

  1. 最近の20Kラインの取引量SMAを基準として計算する
  2. 最近の20のK線取引量の2倍標準差を計算して,突出した量判断基準として
  3. K線のRSI判断を計算する.
  4. 取引量がベース量+2倍標準差を超え,RSIが30以下である場合,短期的な底値として判断する
  5. 短期的な底辺ではすぐに多めにします
  6. 10Kラインの後に自動平仓

優位分析

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

  1. シンプルで理解しやすく,最適化できます
  2. 短期的なターニングポイントを判断する際の取引量の特徴
  3. RSI指標は,超売れ筋の範囲で多額の取引を避けることを保証します.
  4. 自動ストップ,尾部リスク回避を最大化する

全体として,戦略は,短期的なトレンドの逆転を判断する量的な突破の特性を十分に利用し,リスクを厳格に管理し,高い信頼性の積極的な多重戦略である.

リスク分析

この戦略には以下のリスクがあります.

  1. 取引量とRSIによる取引シグナルの偽ブレークが起こり,誤って多額の損失を招く可能性;
  2. 固定ストップタイム設定は,市場が大きく反転したときにストップすることができないか,早めにストップすることがあります.
  3. パラメータ最適化が位につかないと,信号が頻度が高くなり,信号が不足する可能性があります.

このリスクに対して,以下の方法で最適化できます.

  1. 偽突破信号を防ぐために,他の指標をフィルターする.
  2. 固定のRoot K線ではなく,ダイナミック・トラッキング・ストップを設定する.
  3. パラメータを全面的にテストし,最適化して,その安定性を確保する.

最適化の方向

この戦略は,以下の点でさらに最適化できます.

  1. 機械学習モデルの判断の突破性向上,偽信号の回避
  2. 単に固定ルートK線設定ではなく,自律的な止損機構を追加
  3. 突出量パラメータに対する多次元データセットの最適化
  4. 機械学習の過売シグナルのフィルタリングの精度を向上させる
  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)