取引シンボル ローソク足サイズ 閾値 取引戦略

TICKS CST ES NQ CL
作成日: 2025-02-21 10:17:23 最終変更日: 2025-02-27 17:17:35
コピー: 1 クリック数: 277
2
フォロー
319
フォロワー

取引シンボル ローソク足サイズ 閾値 取引戦略 取引シンボル ローソク足サイズ 閾値 取引戦略

概要

この戦略は,重要な価格動向を識別し,取引するための線サイズに基づいています. それは,特定のポイントの値,取引時間ウィンドウ,および1日の取引回数制限を設定することにより,正確な制御を実現します. この戦略は,期貨市場のために特別に最適化され,流動性の高い時期に顕著な価格変動を捕捉することができます.

戦略原則

策略の核心的な論理は,各線の高低点差を計算し,それを既定の値と比較することである.線が値を超えて指定された取引時間ウィンドウ内にあるとき,システムは線の方向に応じて多空取引信号を誘発する.リスクを制御するために,策略は1日1回の取引のみを実行することを制限し,ストップ・ロスの位置を設定する.

戦略的優位性

  1. 精密な点数制御 - 取引の実行の精度を保証するために,点数レベルを計算する
  2. タイムフィルター - 市場活動が最も活発な時間に集中して取引する
  3. リスクマネジメント - 資金の保護のためには 明確なストップ・ストラップ・ポイントを設定する
  4. 取引頻度管理 - 取引を一日1回に制限し,過剰取引を避ける
  5. ビジュアル提示 - 取引を誘発する線は,分析を容易にするために明るく表示されます.
  6. 復元互換性 - 日付フィルタリングや時間実行などの機能を含む,履歴復元を便利にする

戦略リスク

  1. 市場波動の危険性 - 激しい波動期に誤ったシグナルを誘発する可能性がある
  2. スライドポイントリスク - 期貨市場の高速取引は,実際の取引価格の偏差を引き起こす可能性があります.
  3. 機会コスト - 一日一回の取引制限により,他の良い取引機会が逃れること
  4. 時間の依存性 - 戦略の効果は選択された取引時間ウィンドウに大きく依存する

戦略最適化の方向性

  1. 動的値 - 市場の変動に応じて自動的に調整される値
  2. 複数のタイムサイクル - 複数のタイムサイクルを追加する確認信号
  3. 取引量フィルター - 取引量指標を補助判断として追加する
  4. 市場情緒指標 - 変動率などの指標を組み合わせて市場環境を評価する
  5. 適応ストップ・ストラップ - 市場変動の動態に基づくストップ・ストラップ

要約する

この戦略は,精密な点数制御と厳格な時間フィルタリングにより,期貨取引のための信頼性の高い取引システムを提供する.その優点は,実行の精度とリスク制御にあるが,また,特定の品種と市場の状況に応じてトレーダーによるパラメータの最適化も必要である.提案された最適化の方向によって,戦略は,その適応性と安定性をさらに向上させることができる.

ストラテジーソースコード
/*backtest
start: 2025-02-15 01:00:00
end: 2025-02-20 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"DOGE_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © omnipadme

//@version=5
strategy("Futures Candle Size Strategy (Start Trading on Jan 1, 2025)", overlay=true)

// Input for candle size threshold in ticks
candleSizeThresholdTicks = input.float(25, title="Candle Size Threshold (Ticks)", minval=1)

// Input for take profit and stop loss in ticks
takeProfitTicks = input.float(50, title="Take Profit (Ticks)", minval=1)
stopLossTicks = input.float(40, title="Stop Loss (Ticks)", minval=1)

// Time filter for trading (e.g., 7:00 AM to 9:15 AM CST)
startHour = input.int(7, title="Start Hour (CST)", minval=0, maxval=23)
startMinute = input.int(0, title="Start Minute (CST)", minval=0, maxval=59)
endHour = input.int(9, title="End Hour (CST)", minval=0, maxval=23)
endMinute = input.int(15, title="End Minute (CST)", minval=0, maxval=59)

// Tick size of the instrument (e.g., ES = 0.25)
tickSize = syminfo.mintick

// Convert tick inputs to price levels
candleSizeThreshold = candleSizeThresholdTicks * tickSize
takeProfit = takeProfitTicks * tickSize
stopLoss = stopLossTicks * tickSize

// Time range calculation
startTime = timestamp("GMT-6", year(timenow), month(timenow), dayofmonth(timenow), startHour, startMinute)
endTime = timestamp("GMT-6", year(timenow), month(timenow), dayofmonth(timenow), endHour, endMinute)
inTimeRange = (time >= startTime and time <= endTime)

// Filter to start trading only from January 1, 2025
startTradingDate = timestamp("GMT-6", 2025, 1, 1, 0, 0)
isValidStartDate = time >= startTradingDate

// Calculate the candle size for the current candle
candleSize = math.abs(high - low)

// Track whether a trade has been executed for the day
var hasTradedToday = false
isNewDay = dayofweek != dayofweek[1]  // Detect new day

// Reset `hasTradedToday` at the start of a new day
if isNewDay
    hasTradedToday := false

// Trigger condition for futures trading (only if no trade has been executed today)
triggerCondition = isValidStartDate and inTimeRange and candleSize >= candleSizeThreshold and not hasTradedToday

// Entry logic: If condition is met, enter a trade
if triggerCondition
    hasTradedToday := true  // Mark as traded for the day
    if close > open  // Bullish candle
        strategy.entry("Buy", strategy.long)
    if close < open  // Bearish candle
        strategy.entry("Sell", strategy.short)

// Set take profit and stop loss
strategy.exit("Exit Long", from_entry="Buy", limit=close + takeProfit, stop=close - stopLoss)
strategy.exit("Exit Short", from_entry="Sell", limit=close - takeProfit, stop=close + stopLoss)

// Alerts for triggered condition
if triggerCondition
    alert("Candle size is " + str.tostring(candleSizeThresholdTicks) + " ticks or greater. Trade initiated.", alert.freq_once_per_bar)

// Color the alert candle white
barcolor(triggerCondition ? color.white : na)

// Visual aids for backtesting
bgcolor(isValidStartDate and inTimeRange ? color.new(color.green, 90) : na, title="Time and Date Range Highlight")