資源の読み込みに... 荷物...

日々の範囲のブレイク・シングルダイレクト・トレーディング・戦略

作者: リン・ハーンチャオチャン,日付: 2024-12-11 15:23:37
タグ:OHLCADXATRマルチRSIBB

img

概要

この戦略は,前日の高値と低値に基づいたレンジブレイクトレード戦略である.この戦略は,前日の高値や低値を超えて価格ブレイクや破綻を特定し,ブレイクまたは破綻方向ごとに1取引のみを実行することによって,取引機会を探します.この戦略は,固定50ポイントの利益とストップロスの設定を採用し,規則的な取引を確保するために,各取引日の初めにトレードフラグをリセットします.この戦略の核心は,厳格な取引管理を通じてリスクを制御しながら,一方向の価格ブレイク動きを1日以内に捕捉することです.

戦略の原則

戦略の基本論理には以下の側面が含まれます.

  1. 取引シグナル生成: システムは,現在の閉値が前日の高値または低値を突破するかどうかを確認することによって取引方向を決定します.価格が前日の高値を超えて閉ざされると,システムはロング信号を生成します.価格が前日の低値を下回ると,システムはショート信号を生成します.
  2. 取引頻度制御:この戦略は,毎日1つの方向に1つの取引のみを確保するためにフラグを使用します.このデザインは,同じ価格帯で繰り返し取引を防止し,取引コストを削減します.
  3. リスク管理:各取引には固定50ポイントの利益とストップ損失があり,単一の取引リスクを効果的に制御する対称的なリスク管理を提供します.
  4. 日々のリセットメカニズム:システムは,新しい取引機会に備えて,各取引日の開始時に取引フラグをリセットします.このメカニズムは,戦略が新しい取引機会を把握できるようにします.

戦略 の 利点

  1. 明確な取引論理: 戦略は単純な価格ブレイク理論を基礎にしており,理解し実行しやすい明確な取引ルールがあります.
  2. 厳格なリスク管理: 決まった利益とストップ・ロスのポイントと単方向取引制限を通じて,各取引のリスクを効果的に制御する.
  3. 過剰取引を防ぐ: 1 日あたり 1 つの方向での取引を許可することは,不安定な市場での頻繁な取引による損失を避けるのに役立ちます.
  4. 高自動化: 戦略は人間の介入なしに完全に自動化することができます.
  5. 高い適応性:この戦略は,異なる市場環境に適用され,特にトレンド市場ではうまく機能します.

リスク分析

  1. 誤ったブレイクリスク: 市場は,誤ったブレイクが発生し,取引損失につながる可能性があります.他の技術指標で確認することを検討してください.
  2. 乱雑市場リスク: 変動市場における頻繁なブレイクや崩壊は,連続的なストップにつながる可能性があります. フィルタリング条件を追加することで改善できます.
  3. 固定ストップ・ロスのリスク: 固定ストップ・ロスのポイントは,すべての市場条件に適合しない可能性があり,非常に不安定な市場では早すぎることがある.
  4. スリップリスク: 市場が急激に波動している場合,実際のストップ・ロスは,スリップにより予想値から逸脱する可能性があります.

オプティマイゼーションの方向性

  1. ダイナミックストップ・ロスの設定: 市場の変動 (例えばATR指標) に基づいて,ダイナミックに取利益とストップ・ロスのポイントを調整する.
  2. トレンドフィルターを追加:トレンド指標 (移動平均値やADXなど) を組み込み,トレード信号をフィルタリングします.
  3. ブレイクアウト確認を最適化: ブレイクアウトの信頼性を向上させるために,ボリューム確認または他の技術指標を追加する.
  4. 時間フィルタリング: 波動性の高い期間に取引を避けるために時間フィルタリング条件を追加します.
  5. ポジション管理の最適化: 市場の変動と口座のリスク容量に基づいてポジションサイズを動的に調整する.

結論

この戦略は,日々のレンジブレイクに基づいたクラシックな取引システムであり,厳格な取引管理とリスク管理を通じて単方向市場動向を追跡するのに適しています.固有のリスクがある一方で,合理的な最適化と強化によって戦略の安定性と収益性が向上できます.成功の鍵は,偽ブレイクリスクを適切に処理し,適切な利益とストップ損失レベルを設定し,さまざまな市場条件に適応性を維持することです.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-09 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("US 30 Daily Breakout Strategy (Single Trade Per Breakout/Breakdown, New York Time)", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, trim_orders = true)

// Set pip size for US 30 (1 pip = 1 point)
var float pip = 1.0

// Set take profit and stop loss in points (1 pip = 1 point)
take_profit_pips = 50
stop_loss_pips = 50

// Calculate the previous day's high and low (assumes chart timezone is set to New York)
prevDayHigh = request.security(syminfo.tickerid, "D", high[1])
prevDayLow = request.security(syminfo.tickerid, "D", low[1])

// Initialize flags to track if a breakout/breakdown trade has been taken
var bool breakout_traded = false
var bool breakdown_traded = false

// Reset flags at the start of a new day in New York timezone (as per chart setting)
if (ta.change(time("D")))
    breakout_traded := false
    breakdown_traded := false

// Condition for a long entry: candle closes above the previous day's high and no breakout trade has been taken
longCondition = close > prevDayHigh and strategy.opentrades == 0 and not breakout_traded

// Condition for a short entry: candle closes below the previous day's low and no breakdown trade has been taken
shortCondition = close < prevDayLow and strategy.opentrades == 0 and not breakdown_traded

// Execute long trade if the condition is met, and set the breakout flag
if (longCondition)
    strategy.entry("Long", strategy.long)
    strategy.exit("Take Profit/Stop Loss", "Long", limit=close + take_profit_pips * pip, stop=close - stop_loss_pips * pip)
    breakout_traded := true  // Set breakout flag

// Execute short trade if the condition is met, and set the breakdown flag
if (shortCondition)
    strategy.entry("Short", strategy.short)
    strategy.exit("Take Profit/Stop Loss", "Short", limit=close - take_profit_pips * pip, stop=close + stop_loss_pips * pip)
    breakdown_traded := true  // Set breakdown flag

// Plotting the previous day's high and low for visualization
plot(prevDayHigh, color=color.green, linewidth=1, title="Previous Day High")
plot(prevDayLow, color=color.red, linewidth=1, title="Previous Day Low")


関連性

もっと