この戦略は,ブレイクアウト理論に基づい,トレンドが逆転しているかどうかを判断するために,最高値と最低値の移動平均を比較し,ブレイクアウトが起こるときに潜在的なブレイクアウトポイントを見つけ,取引を行う.この戦略はシンプルで直接的で,急激な価格変化のシンボルを追跡するのに適しています.
この戦略は,最初にユーザーによって定義された期間中の最高値と最低値の移動平均を計算する.最高値移動平均は上位帯を表し,最低値移動平均は下位帯を表します.価格が上位帯を突破すると上向きのシグナルが表示され,戦略はロングポジションを開きます.価格が下位帯を突破すると下向きのシグナルが表示され,戦略はショートポジションを開きます.ユーザーはロングまたはショートのみに設定できます.
この戦略はオプションストップ損失と利益の設定も提供しています. ロングの場合,ストップ損失は上帯に設定され,ショートの場合,ストップ損失は下帯に設定されます. これにより損失が減少します. また,ユーザーはブレイクアウトポイントでストップ損失を設定することもできます. つまり,ロングの場合,ストップ損失は下帯で,ショートの場合,ストップ損失は上帯です. これによりより多くの利益の可能性が生まれます.
この戦略の利点は次のとおりです.
論理は単純で直ぐで 分かりやすく実行できます
傾向の逆転点を迅速に把握し その順にポジションを調整できます
選択可能なストップ・ロストと 利得の設定を 個人のリスクの好みに合わせて提供します
取引シグナルが明確で 誤った信号が多くありません
設定可能なパラメータは少ないし 使いやすい
柔軟性で長か短かだけ設定できます
この戦略のリスクは以下のとおりです.
突破信号は 偽突破信号で 維持できない
不適切なブレイク期間の設定は,長期的なトレンドを見逃す可能性があります.
突破時にボリュームを考慮しないため 高値を追いかけて低値を殺す可能性があります
遅延がある 移動の良い部分を見逃すかもしれない
不安定な市場では,ストップロスは影響を受ける可能性があります.
取引の際は 脱出のみに頼るので 利益は不確実です
戦略は以下の側面で強化できる:
誤ったブレイクを避けるためにボリュームインジケーターを組み込む.例えば,ブレイク信号の有効性についてボリュームを拡大する.
移動平均周期パラメータを最適化して,異なるサイクルにおけるトレンド変化にマッチします.また,異なる移動平均タイプを試してください.
突破後 引き戻し
より方向的なガイドのために,ブレイクアウトベースの上にボリンジャー帯などを追加します.
RSI,MACDなどの他のインジケーターを組み込み,追加の取引シグナルを表示し,正確性を向上させる.
ストップ・ロスを最適化し,利益戦略を講じることで,リスクをコントロールしながら市場の変動に よりうまく対応できる.
ブレイクアウト・トレーディング戦略は,エントリーと出口のための上下帯の価格ブレイクを追跡する明確な論理を持っています.戦略を強化するためにより多くの指標情報を組み込み,パラメータを最適化し,強化するための大きな余地があります.基本的な論理に慣れあうと,トレーダーはニーズに基づいてパラメータをカスタマイズし,良い取引結果を得ることができます.
/*backtest start: 2023-10-02 00:00:00 end: 2023-11-01 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=3 strategy(title = "Noro's Brakeout Strategy v2.0", shorttitle = "Brakeout str 2.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %") len = input(4, defval = 4, minval = 1, maxval = 1000, title = "Length") bod = input(false, defval = false, title = "Body mode") rev = input(false, defval = false, title = "Revers") showlines = input(true, defval = true, title = "Show Lines?") fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") //Extremums min = bod ? min(open, close) : low max = bod ? max(open, close) : high upex = highest(max, len) + syminfo.mintick * 10 dnex = lowest(min, len) - syminfo.mintick * 10 col = showlines ? blue : na plot(upex, color = col, linewidth = 2) plot(dnex, color = col, linewidth = 2) //Trading lot = 0.0 lot := strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1] if (not na(close[len])) and rev == false strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, stop = upex) strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, stop = dnex) if (not na(close[len])) and rev == true strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, limit = dnex) strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, limit = upex) if time > timestamp(toyear, tomonth, today, 23, 59) strategy.close_all()