最初のキャンドルブレイクアウト - ストップロスまたは自動ポジションクローズ戦略

ATR EMA SMA MACD RSI FIBONACCI BREAKOUT momentum volatility TREND FOLLOWING OHLC
作成日: 2025-04-01 13:51:36 最終変更日: 2025-04-01 13:51:36
コピー: 0 クリック数: 431
2
フォロー
319
フォロワー

最初のキャンドルブレイクアウト - ストップロスまたは自動ポジションクローズ戦略 最初のキャンドルブレイクアウト - ストップロスまたは自動ポジションクローズ戦略

概要

最初のの突破-ストップまたはクローズアップ自動平仓戦略は,取引日の最初の線の高低点を基に潜在的な入場信号を識別する日内取引戦略である.この戦略は,価格が最初の線の範囲を突破した時の動きを捉え,その日の終わりまでにまたは停止の位置に触れたときに平仓を立て,短期的な波動の利益を実現する.この戦略は簡潔に設計されており,日中の価格動向の初期方向的な突破に焦点を当てており,明確なストップ・ピースポジション規則を設け,リスクを効果的に制御しています.

戦略原則

この戦略の核心原則は,取引日の初期段階の価格動力と突破シグナルを利用して,その後の動きを予測することである.具体的操作の流れは以下の通りである.

  1. まず,戦略は取引日の開始時刻を定義し (デフォルト9:15),最初の線の最高値と最低値を記録します.
  2. 価格が最初の線の最高値を破るとき,戦略は多信号を触発する.価格が最初の線の最低値を破るとき,空白信号を触発する.
  3. この戦略は厳格な単一取引の仕組みを採用し,取引日ごとに1回の取引のみを実行することを保証しています.
  4. 複数取引の場合,最初の線の最低点にストップ・ロスを設定します.空白取引の場合,最初の線の最高点にストップ・ロスを設定します.
  5. 取引が止損に触れたか否かにかかわらず,すべての未平衡の取引は,取引日の終了時間 ((デフォルト15:30) に自動的に平衡されます.

変数による戦略tradeTaken“日”回の取引のみを保証し,tradeDirection現在の取引方向を記録する ((1は多,-1は空),取引状態とストップ・ロスの条件を効果的に管理する.

戦略的優位性

  1. 簡潔で効率的な戦略の論理は単純でわかりやすく,複雑な技術指標やパラメータの最適化を必要としない.
  2. 明らかに入口信号価格の突破を基に明確な取引シグナルを提供し,主観的な判断要因を減らす.
  3. リスクのコントロール: 取引ごとに最大損失を制限するために,最初の線の逆極値をストップポイントとして設定します.
  4. 定期決済メカニズム取引は日中に完了し,夜間のリスクは回避されます.
  5. 適応性が高い: 戦略は,様々な取引品種と時間枠に適用され,開始と終了時間のパラメータを調整することで,異なる市場に適応することができます.
  6. 感情的中立性自動化された取引シグナルにより,トレーダーの感情の変動が意思決定に影響を及ぼすのを減らせます.
  7. 動きを捉える市場開設後の初期動力と方向性の突破を有効活用する.

戦略リスク

  1. 偽の突破の危険性: 市場が突破後に迅速に反転し,ストップが引き出されることがあります. このリスクを軽減するために,取引量確認や複数時間枠分析などの確認指標の追加を検討することができます.
  2. スライドポイントと実行遅延: 波動性の高い市場では,注文の実行は滑り点や遅延に直面し,実際の入場価格とストロップの実行に影響を与える可能性があります.市場価格の代わりに制限価格のリストを使用し,より緩やかなストロップの設定を検討することをお勧めします.
  3. 単一の基準点のリスク: 判断基準として最初の線のみに頼り,より広範な市場環境とトレンドを無視する. 取引シグナルをフィルターするには,市場トレンドとサポートレジスタンス位分析を組み合わせることをお勧めする.
  4. 固定時間枠の制限: 戦略は,固定された開始と終了時間に基づいて,他の時間帯の良い機会を逃す可能性があります. 異なる時間帯の反省を考慮して,最適な取引時間ウィンドウを見つけることができます.
  5. 利益目標の欠如戦略には明確なストップ目標が設定されていないため,有利な市場状況の利益を最大化することができない. 動的ストップ目標を歴史の変動に基づいて設定することが推奨されている.
  6. 日中の変動制限: 低波動性市場は,最初の線区間が小さすぎ,ストップポイントが近くすぎ,容易に誘発される可能性が増加する可能性があります.

戦略最適化の方向性

  1. フィルタリング条件を追加:トレンド指標 ((平均線システムなど) と組み合わせて取引方向を出し,トレンド方向が一致する時にのみ入場し,成功率を上げます.
  2. ダイナミック・ストップ・ダメージ設定:ATR (平均真波幅) によるダイナミック・ストップダメージの設定を考慮し,単に最初の線の高低点を使用せず,異なる波動環境に対応する.
  3. 停止装置を導入する: リスク・リターン比率に基づく設計のストップルール,例えば,利益がストップロスの1.5倍または2倍に達したときに自動的に平仓部分ポジション.
  4. 取引時間を最適化: 異なる市場と品種の最適な取引時間窓を分析し,最適な結果を得るために開始と終了時間を調整する.
  5. 貯蔵庫の建設: 単一の取引を複数のバッチに分けて実行し,異なる価格レベルでポジションと平和ポジションを構築し,タイミング選択のリスクを低減する.
  6. 添付量確認: 突破シグナルがトリガーされると,取引量確認の要求を増やし,取引量の低い偽の突破をフィルターする.
  7. 適応性パラメータの調整市場状況 (変動率,取引量など) に応じて戦略のパラメータを動的に調整し,戦略の適応性を向上させる.
  8. 市場環境のフィルターに: 極端な市場状況 (例えば,異常な波動や重大ニュースリリースの日) で,不必要なリスクを避けるために,戦略の実行を一時停止する.

要約する

最初の突破 - ストップまたはクローズアップ自動平仓戦略は,市場開封後の方向的な突破を捕捉して利益を得る簡潔で効率的な日内取引方法である.この戦略の主要な優点は,操作が簡単で,リスクが制御可能であり,日内トレーダーが使用するものである.しかし,戦略には偽の突破リスクと単一の参照点の限界もある.フィルタリング条件を追加し,ストップ・ロスの仕組みを最適化し,市場環境分析などと組み合わせることで,戦略の安定性と収益性を大幅に向上させることができる.量化取引の分野に入りたい新手にとって,これは良い出発点戦略であり,より複雑な取引システムの基礎構成要素としても使用できます.最も重要なことは,トレーダーは,自らのリスク承受能力と取引目標に基づいて,戦略を適切に調整し,最適化して,最適な取引効果を達成することです.

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

//@version=5
strategy("First Candle Breakout - Close on SL or EOD", 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)")

// 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

// 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

// 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")
    tradeTaken := true  // Mark trade as taken
    tradeDirection := 1  // Mark trade as long

// 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")
    tradeTaken := true  // Mark trade as taken
    tradeDirection := -1  // Mark trade as short

// Stop loss for long trades (first candle low)
if (tradeDirection == 1 and close <= firstCandleLow)
    strategy.close("Buy", comment="SL Hit")

// Stop loss for short trades (first candle high)
if (tradeDirection == -1 and close >= firstCandleHigh)
    strategy.close("Sell", comment="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")