適応型ボラティリティブレイクアウト戦略


作成日: 2024-01-08 14:38:31 最終変更日: 2024-01-08 14:38:31
コピー: 0 クリック数: 755
1
フォロー
1617
フォロワー

適応型ボラティリティブレイクアウト戦略

概要

適応的変動性突破策は,トレンド追跡策である.それは,強烈な上昇が一定の水平を超えた突破信号を識別し,多頭ポジションを確立し,上昇傾向を継続的に追跡し,翌日の開場時に利益を得て終了する.

この戦略は,著名な先物と株式のトレーダーであるLarry R. Williamsによって提唱された.この戦略は,価格の突破点を捕まえようとする.これらのポイントは,しばしばトレンドの転換を予告する.これらのシグナルを早期に認識し,ポジションを構築することで,新しいトレンドのトレンドを追跡して利益を得ることができる.

戦略原則

この戦略の核心指標は,一定水平であり,以下の式で計算される.

一定水平 = 收盘价 + k * (最高价 - 最低价)

kは経験系数で,0.6である.この公式には最高価格と最低価格の変動成分が加えられ,突破点をより柔軟に,市場の反転に適応させることができる.

当日の最高価格が計算されたの一定レベルを超えると,価格が突破したことを示し,このとき戦略は多頭ポジションを確立する.翌日の開場時に全ポジションが閉じて利益を得る.

損失拡大を防ぐため,ストップ・ロズレベルは前日の最低価格と入場価格の半分に設定されます.

優位分析

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

  1. 変動を捉え,順位を把握する: 戦略は,最高価格と最低価格の計算突破点を加え,突破シグナルをより柔軟に,価格変化のペースを捉えるようにする.

  2. タイムリーで市場に入り,トレンドを追跡する:毎日のブレイクシグナルを計算することで,新しいトレンドをタイムリーに認識し,価格上昇のペースを把握できます.

  3. リスクコントロール:合理的なストップポジションを設定し,単一の損失を効果的に制御する.

リスク分析

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

  1. 突破失敗リスク: 価格突破は継続的に上昇する必要はありません.短期的な偽突破である可能性があります. この場合,損失が生じます.

  2. 極端な状況のリスク: 株価災害,突発的な出来事などの極端な状況では,価格が断層し,飛躍し,ストップダメージが引き起こされ,大量の損失が生じることがあります.

  3. 過剰取引リスク: 取引頻度や手数料の負担を増加させるため,毎日倉庫を建設する.

戦略の最適化

この戦略は以下の観点から最適化できます.

  1. 倍数を加える:突破計算公式に倍数を加え,市場波動が大きくなる時に適当に小さくし,市場が安定する時に適当に大きくし,戦略をより弾力的にする.

  2. ポジション保持期間を延長する:短期間の偽ブレイクをフィルタリングするために,ポジション保持期間を2日または3日延長する.

  3. ストップポジションを最適化:ストップポジションを,ブリン帯の下限,前日の閉店価格などより深いサポート位置に設定する.

要約する

適応性変性突破戦略は,価格の変動とペースをリアルタイムで追跡することによって,トレンド追跡を実現する.従来の突破戦略に比べて,より弾力的で捕捉能力がある.しかし,極端な状況でストップが突破される可能性があるリスクにも注意する必要があります.ポジションの保持時間とストップポジションの最適化により,よりよい結果が得られます.

ストラテジーソースコード
/*backtest
start: 2023-01-01 00:00:00
end: 2024-01-07 00:00:00
period: 1d
basePeriod: 1h
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/
// © Dicargo_Beam

//@version=5
strategy("Volatility Breakout Strategy", overlay=true, default_qty_type= strategy.percent_of_equity, default_qty_value=100,process_orders_on_close=false)

k = input.float(0.6)


[o,h,l,c] = request.security(syminfo.tickerid,"D",[open,high,low,close])

lp = math.log(c[1])+(math.log(h[1])-math.log(l[1]))*k
_lp = math.pow(2.718,lp)

longcond = _lp < high
exit = hour==0 or  math.log(close) < (math.log(l[1])+lp)/2



plot(_lp,"Entry",color=color.yellow)
//plot(l,"Yesterday's Low")
plot((_lp+l[1])/2,"StopLoss",color=color.red)


strategy.entry("Long", strategy.long,comment = "Long", when = longcond and strategy.opentrades == 0)

strategy.close("Long", comment="Exit", when = exit)


var bg = 0
bg := if hour == 0
    bg + 1
else
    bg[1]

bgcolor(bg/2== math.floor(bg/2) ? color.new(color.blue,95):na)