波動性ブレイク・トレード戦略

作者: リン・ハーンチャオチャン開催日:2023年12月11日 (日) 14時20分48秒
タグ:

img

概要

波動性ブレイクアウト取引戦略は,単一の価格アクションベースの戦略である. 価格とボリュームの変化を分析することによって購入および販売信号を生成する. この戦略は,他の取引所またはシステムでの注文を誘発するためのアラートとも組み合わせることができる.

戦略の論理

この戦略は,価格動向と勢いを決定するために,キャンドルスタイルの閉店,開店,高値,低値を分析します.

具体的には,最新の3つのキャンドルスタイルの閉じる価格が開く価格より継続的に高くまたは低くなっているかどうかをチェックします.そうであれば,価格が連続して上昇または下落し,トレンド市場を生成することを示します.

さらに,この戦略は,特定の期間における最大ボリュームを追跡します.現在のキャンドルストイックのボリュームが最近の期間における最大値を超えると,取引量が急増し,強力な力が市場に参入することを示唆します.

3つの連続したキャンドルスタイクで価格が暴落し 取引量が拡大すると 戦略は買いや売れシグナルを生成します

利点

これは,価格アクションとボリューム信号を利用したシンプルで効果的な戦略です.主な利点は以下の通りです.

  1. 明確で理解し実行しやすい論理
  2. 市場変動に非常に敏感で,変化を素早く把握する
  3. 基本的なキャンドルスタイクとボリュームデータのみを必要とし,複雑なアルゴリズムはありません
  4. 柔軟なパラメータ 異なる製品と時間枠に適応可能
  5. 低コストで,小規模な投資家に適しています

リスク分析

また,いくつかの潜在的なリスクがあります:

  1. 価格予測はなく 盲点がある
  2. 誤った信号に易く 偶然に触れる
  3. 範囲限定市場では不適切な信号を生む可能性があります.
  4. ストップ・ロスのメカニズムがないため,損失を増やすリスクがある.

これらのリスクを軽減するために,移動ストップ損失を追加したり,パラメータの組み合わせを最適化したり,他の指標や戦略と組み合わせることを検討することができます.

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

基本的な戦略として,最適化のための大きな余地があります.

  1. 損失を制御するストップ損失メカニズムを追加する
  2. より多くの製品や期間に対応するパラメータを最適化
  3. フィルター信号に他の指標を追加する
  4. 自動的なトレンド調整のためのトレンド追跡戦略と組み合わせる
  5. 動的パラメータと信号最適化のための機械学習アルゴリズムを組み込む
  6. 継続的な進化のために定量的な研究とフィードバックモジュールを構築する

結論

結論として,これは非常に実用的な価格アクションベースの戦略です.直感的で,理解しやすく,低コストで実装するメリットがあります.一方,それはまた一定の盲点を持ち,パフォーマンスを向上させるためにさらなる最適化と組み合わせを必要とします.全体的にこれは深く研究および適用に値する貴重な戦略コンセプトです.


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

//@version=4
strategy("SPAS", overlay=true, pyramiding=5, calc_on_order_fills=true)

int signal_hh = 0
int signal_ll = 0

if close[1] >= open[1] and close[2] >= open[2] and close[3] >= open[3]
    signal_hh := 1

if close[1] <= open[1] and close[2] <= open[2] and close[3] <= open[3]
    signal_ll := 1

plotchar(signal_hh, char='H', size=size.tiny, location=location.abovebar)
plotchar(signal_ll, char='L', size=size.tiny, location=location.abovebar)

int signal_vol = 0
float max_volume = 0.0
int vol_length = input(title="Volume length", type=input.integer, defval=3)

for i = vol_length to 1
    if volume[i] > max_volume
        max_volume := volume[i]

if volume[0] > max_volume
    signal_vol := 1

plotchar(signal_vol, char='V', size=size.tiny, location=location.bottom)

int signal_buy = 0
int signal_sell = 0

if signal_hh and signal_vol
    signal_buy := 1
    label.new(bar_index, high, "B", color=color.green)
    strategy.entry("buy", strategy.long, 5)//, when=strategy.position_size <= 0)

if signal_ll and signal_vol
    signal_sell := 1
    label.new(bar_index, low, "S", color=color.red)
    strategy.entry("sell", strategy.short, 5)//, when=strategy.position_size > 0)

//plotchar(signal_buy, char='B', color=color.green, size=size.tiny, location=location.abovebar)
plotarrow(signal_buy, colorup=color.green, colordown=color.orange, transp=0, maxheight=20)

//plotchar(signal_sell, char='S', color=color.red, size=size.tiny, location=location.abovebar)
plotarrow(signal_sell * -1, colorup=color.green, colordown=color.orange, transp=0, maxheight=20)



もっと