
この戦略は,市場動的区間の中間点をベースにした高精度取引方法であり,特定の時間帯における価格の波動特性を捉え,正確な入場と出場のタイミングを実現する.戦略の核心は,設定可能な回帰周期を利用し,価格区間の高点,低点,中点を動的に計算し,ニューヨーク証券取引所の取引時間帯内で制限価格取引を実行することである.
戦略の基本は以下の主要なメカニズムに基づいています.
この戦略は,正確な区間の中間突破点と制限価格取引機構によって,トレーダーに体系化され,規則が明確な取引方法を提供します.その核心的な優点は,高精度の入場,リスクの制御性,時間選択性にあります.将来の最適化の方向は,戦略の自己適応性と安定性の向上に焦点を当てます.
価格区間を動的に計算し,中間点の近くで限値取引を行い,短期的な価格傾向と逆転の機会を厳格な時間とリスク管理の枠組みで捉えます.
この戦略は参考にのみ,実際の取引は,個人のリスク承受能力と市場環境に応じて調整する必要があります.
安定した,体系的な取引戦略を追求する中短線投資家,特に期貨と流動性の高い品種取引を専門とするトレーダーに適しています.
量化取引の核心は,常に最適化と適応であり,この戦略は,トレーダーに研究と改善に値する取引の枠組みを提供します.
/*backtest
start: 2024-03-31 00:00:00
end: 2025-03-29 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Midpoint Crossing Strategy", overlay=true)
// Input for lookback period
lookback = input.int(30, title="Lookback Period", minval=1)
// Input for NYSE trading hours
startHour = 9
startMinute = 30
endHour = 15
endMinute = 0
// Variables to store high, low, and midpoint of the lookback period
var float rangeHigh = na
var float rangeLow = na
var float rangeMid = na
// Calculate high, low, and midpoint based on lookback period
if (bar_index >= lookback)
rangeHigh := ta.highest(high, lookback)
rangeLow := ta.lowest(low, lookback)
rangeMid := (rangeHigh + rangeLow) / 2
// Plot high, low, and midpoint for reference
plot(rangeHigh, color=color.red, title="Range High")
plot(rangeLow, color=color.green, title="Range Low")
plot(rangeMid, color=color.blue, title="Range Mid")
// Time condition for NYSE hours
currentTime = timestamp("GMT-5", year, month, dayofmonth, hour, minute)
startTime = timestamp("GMT-5", year, month, dayofmonth, startHour, startMinute)
endTime = timestamp("GMT-5", year, month, dayofmonth, endHour, endMinute)
// Check if the current time is within NYSE hours
isNYSEHours = currentTime >= startTime and currentTime <= endTime
// Entry conditions (only during NYSE hours)
longCondition = ta.crossover(close, rangeMid) and isNYSEHours
shortCondition = ta.crossunder(close, rangeMid) and isNYSEHours
// Define stop loss and take profit levels based on the range
longStopLoss = rangeLow
longTakeProfit = rangeHigh
shortStopLoss = rangeHigh
shortTakeProfit = rangeLow
// Place limit order at mid-price
if (longCondition and not strategy.opentrades)
strategy.order("Long Limit", strategy.long, limit=rangeMid)
strategy.exit("Take Profit", "Long Limit", limit=longTakeProfit, stop=longStopLoss)
if (shortCondition and not strategy.opentrades)
strategy.order("Short Limit", strategy.short, limit=rangeMid)
strategy.exit("Take Profit", "Short Limit", limit=shortTakeProfit, stop=shortStopLoss)
// Close open positions at 4:00 PM to avoid overnight risk
if (currentTime >= endTime)
strategy.close_all(comment="Close All at 4:00 PM")
// Add a check for open positions
if (strategy.opentrades > 0)
// Ensure no recalculation while a position is open
rangeHigh := na
rangeLow := na
rangeMid := na