
Strategi ini adalah metode perdagangan presisi tinggi yang didasarkan pada titik tengah dari zona dinamis pasar, dengan menangkap karakteristik pergerakan harga dalam rentang waktu tertentu, untuk mencapai waktu masuk dan keluar yang tepat. Inti dari strategi ini adalah menggunakan siklus regresi yang dapat dikonfigurasi, menghitung secara dinamis titik tinggi, titik rendah dan tengah dari zona harga, dan melakukan perdagangan harga batas selama periode perdagangan di Bursa Efek New York.
Prinsip-prinsip strategi didasarkan pada mekanisme kunci berikut:
Strategi ini menyediakan pedagang dengan sistematis, aturan yang jelas metode perdagangan melalui titik tengah penembusan dan mekanisme perdagangan harga yang tepat. Keunggulan utamanya adalah masuk yang tinggi presisi, risiko yang dapat dikontrol dan waktu selektif.
Perdagangan harga terlarang dilakukan dengan cara menghitung rentang harga secara dinamis dan di dekat titik tengah, untuk menangkap tren harga jangka pendek dan peluang pembalikan dalam kerangka waktu dan manajemen risiko yang ketat.
Strategi ini hanya untuk referensi dan perlu disesuaikan dengan kemampuan pribadi untuk menanggung risiko dan kondisi pasar dalam transaksi yang sebenarnya.
Cocok untuk investor short-medium yang mencari strategi perdagangan yang stabil dan sistematis, terutama pedagang yang berfokus pada perdagangan futures dan varietas yang sangat likuid.
Inti dari trading kuantitatif adalah terus-menerus mengoptimalkan dan beradaptasi, dan strategi ini memberikan trader sebuah kerangka trading yang layak untuk penelitian dan perbaikan yang lebih dalam.
/*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