最初のキャンドルブレイクアウト - ダイナミックトレーリングストップロスとポジションクローズ戦略

ATR ADR SL TP EOD RANGE BREAKOUT Trailing Stop
作成日: 2025-04-01 11:06:47 最終変更日: 2025-04-01 11:06:47
コピー: 0 クリック数: 378
2
フォロー
319
フォロワー

最初のキャンドルブレイクアウト - ダイナミックトレーリングストップロスとポジションクローズ戦略 最初のキャンドルブレイクアウト - ダイナミックトレーリングストップロスとポジションクローズ戦略

最初のの突破 - 動的追跡ストップとクローズオフの平仓戦略は,市場開設後の最初の線の価格区間を重要なサポートとレジスタンス位置として利用する一日の取引戦略である.この戦略は,最初のが形成された後に,価格がその高点または低点を破った後に再入場するのを待つ.同時に,最初のの価格区間に基づく動的追跡ストップの仕組みを採用し,一日の特定の時間に平仓を強制し,夜間のリスクを回避する.

戦略原則

この戦略は,市場開設後の最初の線によって形成される価格区間がしばしば重要な技術的意味を持つという市場観察に基づいている.戦略の核心論理は以下のとおりである.

  1. ユーザが設定した特定の時間点 (デフォルト9時15分) で,その日の最初の線の最高価格と最低価格を識別し,記録する.
  2. 最初の線の価格区間を計算する.
  3. 策略は,最初のが形成された後,価格が最初のの最高値を破るとき,多信号を行うことを誘発する.
  4. 策略は,価格が最初のの形成後に最初のの最低値を破るとき,空白信号を誘発します.
  5. 入場後に動的な追跡ストップを設定し,ストップ距離は最初の価格区間の1.5倍 ((パラメータで調整できます) 。
  6. 複数頭ポジションでは,価格が上昇するにつれて,ストップロッドレベルも相応に上昇し,現在の価格との距離を固定したストップロッド距離を維持する.
  7. 空頭ポジションでは,価格が下がるにつれて,ストップロスのレベルも相応に低下し,現在の価格との距離を固定したストップロスの距離を維持する.
  8. 毎日の特定の時間 (デフォルトは15時30分) に平仓の所有を強制し,夜間リスクを回避する.

この戦略は,価格が最初のの高点や低点を実際に突破した後に取引を開始する確認後のエントリーメカニズムを採用し,価格がこれらのレベルに触れたときすぐにエントリーするのではなく,偽の突破のリスクを軽減するのに役立ちます.

戦略的優位性

  1. 明らかに入口信号この戦略は,明確な価格突破シグナルの入場に基づいています.
  2. ダイナミックなリスク管理: 市場の波動に基づくダイナミック・トラッキング・ストップ・メカニズムを採用し,ストップ・ディスタンスが,その日の第1根の波動範囲に応じて自動的に調整され,リスク管理をより適応的にする.
  3. 偽の突破を避ける: 価格の閉塞が最初のの高点や低点を突破するのを待つことで,価格がこれらのレベルに触れたばかりで入場するのではなく,部分的な偽の突破信号をフィルターするのに役立ちます.
  4. 危険を避けるために: 固定時間帯で毎日の平仓を強制し,夜間持仓で発生する不確実性や開口リスクを回避する.
  5. 市場変動に適応する: 戦略のエントリーポイントとストップレベルは,当日の市場の波動程度に応じて自動的に調整され,波動が大きい日のストップ距離はより広く,波動が少ない日のストップ距離はより狭く,それによって異なる市場環境によりうまく適応します.
  6. 取引は1回だけ取引コストを減らすため,一日1回の取引のみが許可されています.
  7. 完全に自動化戦略は完全に自動化され,人間の介入を必要とせず,市場をリアルタイムで監視する時間がないトレーダーに適しています.

戦略的リスク

この戦略には多くの利点がありますが,いくつかの潜在的なリスクがあります.

  1. 偽の突破の危険性: 策略は,価格の閉塞突破を待って再入場するにもかかわらず,偽の突破が発生する可能性は依然としてあります.つまり,価格の突破後に迅速に引き戻し,ストップが引き起こされます. 解決策は,取引量確認またはトレンド確認などの追加の確認指標を追加することを考えることができます.
  2. ストップダメージ距離が大きすぎる: 波動が大きい日,最初のの区間が広い場合があるため,止損距離が大きすぎて,単一の損失が多くなる. 解決策は,最大止損距離の絶対値の上限を設定できるということです.
  3. ストップ距離が小さすぎる逆に,波動が少ない日では,最初のの区間は狭くなり,止損距離が小さすぎて,市場騒音に触発されやすい. 解決策は,最小止損距離の絶対値の下限を設定することができる.
  4. ギャップを逃した: 策略は1日1回の取引のみを許可し,固定時間に平仓を強制するので,継続的な大市場を見逃す可能性があります. 解決策は,特定の条件で,ポジションを夜間保持することを考慮することができます.
  5. 時間の依存性策略:第一根の形成時間と強制平仓時間の厳格な要求があり,時間への依存性が強く,異なる市場または異なるタイムゾーンでパラメータの調整が必要になる可能性があります. 解決策は,特定の市場の取引時間に応じてパラメータの調整です.
  6. 非営利目的戦略:明確な利益目標が設定されず,取引を終了するためにストップまたは終日平仓を追跡することに完全に依存し,最適な位置で利益を得ることができない可能性があります. 解決策は,サポート/レジスタンスレベルまたは技術指標に基づく利益を得るために,利益を得るために,追加するメカニズムを考慮することができます.
  7. パラメータ感度: 戦略のパフォーマンスは,パラメータ設定 (例えば,開始時間,終了時間,ストップダスト倍数追跡など) に非常に敏感であり,徹底した反測と最適化が必要である.

戦略最適化の方向性

この戦略は,上記のリスクに対して,以下の方向から最適化できます.

  1. フィルタリング条件を追加: 市場トレンド指数または取引量指数と組み合わせて,トレンドの方向が一致している場合または取引量が確認されている場合にのみ入場し,偽の突破のリスクを軽減します.例えば,移動平均をトレンドフィルターとして追加したり,突破時に取引量を明らかに増幅するよう要求したりできます.
  2. 損失防止の最適化: ストップ距離を絶対値の上下限に設定し,極端な波動のある日でも合理的なリスクレベルを維持できます.よりダイナミックなストップ距離を設定するためにATR (真波幅の平均値) の指標と組み合わせることを考慮することができます.
  3. 部分的利益の仕組みを導入する: 価格が特定の目標に達したとき (例えば,最初の区間の2倍または3倍) は,部分的な平仓の利益を考慮し,残ったポジションは,追跡ストップ・マネジメントを使用し続けることができる.
  4. オーバーナイト条件の追加特定の条件下では (トレンドが強い場合や入場点から遠ざかっている場合など) 部分的または全的ポジションを夜間保持することを許可し,大トレンドの状況を把握する.
  5. タイムフィルターを追加する市場波動が低い時や不確実性が高い時に取引を避ける. 例えば,重要な経済データが出る前後に入場を避ける.
  6. 最適化パラメータの自己適応機構: 戦略が近年の市場状況に応じて自動的にパラメータを調整できるようにする.例えば,近年の数日の平均波動性に基づいて追跡ストップ・ロスの倍数を調整する.
  7. 市場環境の認識に参加する戦略の適応性を高めるために,異なる取引パラメータまたは異なる取引論理を異なる市場環境 (例えば,波動市場,トレンド市場) に適用する.
  8. 複数の時間枠分析を考慮する: 市場構造をより大きな時間枠に組み込み,主動トレンドの方向に一致する取引を行い,逆転取引を避ける.
  9. 資金管理モジュールを追加: 市場の変動や過去のパフォーマンス動向に応じてポジションの大きさを調整し,不確実性の高い時期にポジションを減らす,戦略が良い時期にポジションを増やす.

要約する

最初の突破 - ダイナミック・トラッキング・ストップ・ロズとクローズ・オフ・平仓戦略は,市場開設後の最初の線価格区間に基づく日中取引戦略である.それは,確認された価格突破シグナルを活用して入場し,市場波動に基づくダイナミック・トラッキング・ストップ・ロズメカニズムを採用してリスクを管理し,毎日の固定時間に平仓を強制して,夜間のリスクを回避する.

この戦略の利点は,入場信号の明瞭性,リスク管理の動態化,偽突破と夜間リスクの回避,市場の変動に適応し,過度の取引を制限し,完全に自動化できるものである.しかしながら,偽突破のリスク,不合理なストップ距離,大市場を見逃し,時間依存性,利潤目標の欠如,パラメータの感受性などの課題にも直面している.

フィルタリング条件の追加,ストップ・ローズ・メカニズムの最適化,部分利益メカニズムの導入,オーバーナイト・条件の追加,時間フィルタリングの追加,パラメータの最適化,自己適応メカニズムの追加,市場環境認識の追加,マルチタイム・フレーム分析の考慮,資金管理モジュールの追加などにより,戦略の安定性と収益性をさらに向上させることができる.

全体として,これは明瞭で論理的な,合理的な日内取引戦略であり,自動化されたシステムで日内取引を希望し,リスクを厳格に制御するトレーダーに適しています. ターゲティングされた最適化と適切なパラメータ調整により,この戦略は,異なる市場環境で安定したパフォーマンスを期待しています.

ストラテジーソースコード
/*backtest
start: 2025-03-24 00:00:00
end: 2025-03-31 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"TRX_USDT"}]
*/

//@version=5
strategy("First Candle Breakout - Trailing Stop & EOD Close", overlay=true)

// User Inputs
startHour = input(9, "Start Hour (Exchange Time)")
startMinute = input(15, "Start Minute (Exchange Time)")
endHour = input(15, "End Hour (Exchange Time)")  // Market closing hour
endMinute = input(30, "End Minute (Exchange Time)")
trailStopMultiplier = input(1.5, "Trailing Stop Multiplier")  // 1.5x first candle range

// Variables to store the first candle's high & low
var float firstCandleHigh = na
var float firstCandleLow = na
var bool tradeTaken = false  // Ensures only one trade per day
var int tradeDirection = 0   // 1 for long, -1 for short
var float trailStopLevel = na  // Trailing stop level

// Identify first candle's high & low
if (hour == startHour and minute == startMinute and bar_index > 1)
    firstCandleHigh := high
    firstCandleLow := low
    tradeTaken := false  // Reset trade flag at start of day
    tradeDirection := 0   // Reset trade direction
    trailStopLevel := na  // Reset trailing stop

// Calculate first candle range
firstCandleRange = firstCandleHigh - firstCandleLow
trailStopDistance = firstCandleRange * trailStopMultiplier

// Buy condition: Close above first candle high AFTER the first candle closes
longCondition = not na(firstCandleHigh) and close > firstCandleHigh and not tradeTaken and hour > startHour
if (longCondition)
    strategy.entry("Buy", strategy.long, comment="Buy")
    trailStopLevel := close - trailStopDistance  // Set initial trailing stop
    tradeTaken := true
    tradeDirection := 1

// Sell condition: Close below first candle low AFTER the first candle closes
shortCondition = not na(firstCandleLow) and close < firstCandleLow and not tradeTaken and hour > startHour
if (shortCondition)
    strategy.entry("Sell", strategy.short, comment="Sell")
    trailStopLevel := close + trailStopDistance  // Set initial trailing stop
    tradeTaken := true
    tradeDirection := -1

// Update trailing stop for long trades
if (tradeDirection == 1 and not na(trailStopLevel))
    trailStopLevel := nz(trailStopLevel, close - trailStopDistance)  // Initialize if na
    trailStopLevel := math.max(trailStopLevel, close - trailStopDistance)  // Adjust trailing stop up
    if (close <= trailStopLevel)  // Stop loss hit
        strategy.close("Buy", comment="Trailing SL Hit")

// Update trailing stop for short trades
if (tradeDirection == -1 and not na(trailStopLevel))
    trailStopLevel := nz(trailStopLevel, close + trailStopDistance)  // Initialize if na
    trailStopLevel := math.min(trailStopLevel, close + trailStopDistance)  // Adjust trailing stop down
    if (close >= trailStopLevel)  // Stop loss hit
        strategy.close("Sell", comment="Trailing SL Hit")

// Close trade at end of day if still open
if (tradeTaken and hour == endHour and minute == endMinute)
    strategy.close_all(comment="EOD Close")