堅固なブレイクアウト戦略


作成日: 2024-01-03 11:34:34 最終変更日: 2024-01-03 11:34:34
コピー: 0 クリック数: 656
1
フォロー
1621
フォロワー

堅固なブレイクアウト戦略

概要

剛性突破戦略は,価格の剛性指標に基づく突破戦略である.それは,一定の周期で閉盘価格が上線を突破する回数を計算することによって,価格の剛性を判断する.剛性指標が設定された値を超えると,市場が突破すると判断し,買取操作を行う.剛性指標が値を下回ると,市場が下がると判断し,販売操作を行う.

戦略原則

  1. 平均線と標準差を計算する:まず,n周期の単純移動平均を基準上線として計算し,次に価格標準差の0.2倍を基準下線の緩衝として計算する.

  2. 硬性指数計算:統計 m サイクル内の閉盘価格が上線した日数より高い.m を 0-100 の値で割り,n サイクルEMA を平滑して,最終的な硬性値を得,価格が上線した確率を表す.

  3. 剛性と値の比較: 剛性指標の上の値が設定された値を突破すると,突破の可能性が増加し,買入シグナルが生じます. 剛性指標の下の値が突破すると,突破の可能性が低下し,売出シグナルが生じます.

  4. 入場と出場:閉盤価格が上位突破時に買い,突破が失敗して下落が始まる時に売る.複数の突破をすると同時に,空調することもできる.

優位分析

  1. 突破のタイミングを捉える: relativelは,トレンドが突破または回調のタイミングが迫っているかどうかを比較的に確実に判断し,早期にフィールドに入ります.

  2. 突破と逆調を兼ね備える:この戦略は,硬性指標の突破と逆調を同時に利用し,多額の機会と空白の機会を捕捉する.

  3. パラメータの柔軟性:ユーザーは,市場に応じて平均線長,剛性周期,値などのパラメータを調整して,異なる周期と市場の特徴に適応することができます.

  4. シンプルな実装: 硬性指数と値の比較のみを使用し,複雑な論理はありません.コードの実装は簡潔です.

リスク分析

  1. 突破失敗リスク: 硬さが値を超えると,価格が上線を突破することを完全に保証することはできません.偽突破のリスクがあります.

  2. 回収範囲のリスク:空き時に特定の回収範囲と位置を予測できないため,過度の損失のリスクがある.

  3. パラメータ最適化のリスク: 基準のパラメータは市場の変化に完全に適応できず,現実状況に応じて継続的にテストおよび最適化が必要である.

  4. 頻繁に取引するリスク:この戦略は取引頻度が高く,取引コストと滑り点の損失を増加させる.

最適化の方向

  1. 最適化パラメータ:異なる市場のパラメータ設定をテストして,最適なパラメータ組み合わせを探します.例えば,取引頻度を減らすために平均線長を増やすなどです.

  2. 追加ストップ:合理的なストップロジックを設定し,単一の損失を制御します.atrに基づいてストップポイントを設定できます.

  3. 他の指標と組み合わせる:MACD,KDなどの指標を組み合わせて,特定の入場ポイントを決定し,偽突破の確率を減らすことができる.

  4. 出場条件の最適化:トレンド指標などのトレンド逆転の特徴を特定し,より正確な出場条件を設定することができる.

要約する

剛性突破策は,全体的に比較的シンプルで実用的なものです. それは,価格が突破し,戻る可能性のあるタイミングを事前に判断できるので,一定の実用的な価値があります. しかし,偽突破と回調範囲の問題にも注意する必要があります. 参数最適化と他の技術的指標を追加することで,より正確な取引機会をロックすることができます.

ストラテジーソースコード
/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-02 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// Copyright (c) 2020-present, JMOZ (1337.ltd)
// Copyright (c) 2018-present, Alex Orekhov (everget)
// Stiffness Indicator script may be freely distributed under the MIT license.
strategy("Stiffness Strategy", overlay=false, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_value=0.075)


maLength = input(title="Moving Average Length", minval=1, defval=100)
stiffLength = input(title="Stiffness Length", minval=1, defval=60)
stiffSmooth = input(title="Stiffness Smoothing Length", minval=1, defval=3)
threshold = input(title="Threshold", minval=1, defval=90)
highlightThresholdCrossovers = input(title="Highlight Threshold Crossovers ?", type=input.bool, defval=false)


bound = sma(close, maLength) - 0.2 * stdev(close, maLength)
sumAbove = sum(close > bound ? 1 : 0, stiffLength)
stiffness = ema(sumAbove * 100 / stiffLength, stiffSmooth)


long_cond = crossover(stiffness, threshold)
long_close = stiffness > threshold and falling(stiffness, 1)
short_cond = crossunder(stiffness, threshold) or stiffness < threshold and falling(stiffness, 1)
short_close = stiffness < threshold and rising(stiffness, 1)


strategy.entry("Long", strategy.long, when=long_cond)
strategy.close("Long", when=long_close)
strategy.entry("Short", strategy.short, when=short_cond)
strategy.close("Short", when=short_close)


transparent = color.new(color.white, 100)

bgColor = highlightThresholdCrossovers ? stiffness > threshold ? #0ebb23 : color.red : transparent
bgcolor(bgColor, transp=90)

plot(stiffness, title="Stiffness", style=plot.style_histogram, color=#f5c75e, transp=0)
plot(threshold, title="Threshold", color=color.red, transp=0)