
ダイナミック・ブレイクストラテジーは,リチャード・ブックスタバーが1984年に提唱した概念に基づいています.大きな波動が発生すると,市場はその方向で継続的に動作する傾向があります.
この戦略は,まず,市場の変動を測定するためにATR指標を計算し,その後,毎日の閉盘価格の変化の絶対値を計算します.閉盘価格の変化がATR指標値の数倍を超えると,取引シグナルを生成します.具体的には,閉盘価格の上昇幅がATR上位よりも大きい場合は,多めに行います.
この戦略はATR指標を使用して,突破値を動的に決定する.市場の変動が大きくなる時,値が上昇し,誤った取引を減らすことができる.市場の変動が小さくなる時,値が低下し,突破の機会を間に合うように捕捉することができる.
他の指標と組み合わせて取引のタイミングを選し,効率を上げることを考えることができる。また,品種特性に合わせて優越したパラメータを選択することもできる。マーティンゲルアルゴリズムなどの技術を使用して取引の頻度を制御する。
ダイナミック・ブレイク戦略はシンプルで直接で,ブレイクを利用して取引シグナルを生成する。ATRの止損により,市場の波動性に対応できる。この戦略はパラメータ最適化に依存して良い効果を得ることができる。しかし,最初のブレイクを逃す,頻繁に取引するなど,いくつかの問題もある。これは,複雑な市場で安定した利益を得るために,他の技術との組み合わせでさらに改善する必要がある。全体的に,ダイナミック・ブレイク戦略の構想は明確であり,さらなる研究と応用に値する。
/*backtest
start: 2022-10-26 00:00:00
end: 2023-11-01 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/
// © EduardoMattje
//@version=5
strategy("Volatility System", overlay=false, margin_long=0, margin_short=0, default_qty_type=strategy.percent_of_equity,
default_qty_value=100, process_orders_on_close=true, initial_capital=20000)
// Inputs
var averageLength = input.int(14, "Average length", 2)
var multiplier = input.float(2.0, "Multiplier", 0.0, step=0.1)
// Calculations
atr = ta.atr(averageLength) * multiplier
closingChange = ta.change(close, 1)
atrPenetration(int signal) =>
res = closingChange * signal > atr[1]
longCondition = atrPenetration(1)
shortCondition = atrPenetration(-1)
// Order calls
if (longCondition)
strategy.entry(strategy.direction.long, strategy.long)
if (shortCondition)
strategy.entry(strategy.direction.short, strategy.short)
// Visuals
plot(atr, "ATR", color.white, 2)
plot(math.abs(closingChange), "Absolute close change", color.red)