
Strategi ini adalah kaedah perdagangan yang sangat tepat berdasarkan pada titik tengah dalam julat dinamik pasaran, dengan menangkap ciri-ciri turun naik harga dalam jangka masa tertentu, untuk mencapai masa masuk dan keluar yang tepat. Inti strategi adalah menggunakan kitaran pengulangan yang boleh dikonfigurasi, mengira secara dinamik titik tinggi, rendah dan tengah dalam julat harga, dan melakukan perdagangan harga terhad dalam tempoh perdagangan Bursa Saham New York.
Prinsip-prinsip strategi berasaskan mekanisme-mekanisme utama berikut:
Strategi ini menyediakan pedagang dengan cara perdagangan yang sistematik dan jelas dengan mekanisme perdagangan titik tengah dan harga terhad yang tepat. Kelebihan utamanya adalah kemasukan yang tinggi, risiko yang terkawal dan pilihan masa. Arah pengoptimuman masa depan akan memberi tumpuan kepada peningkatan kemampuan beradaptasi dan kestabilan strategi.
Perdagangan harga terhad dilakukan dengan mengira secara dinamik dalam julat harga dan berhampiran dengan titik tengah, untuk menangkap trend harga jangka pendek dan peluang pembalikan dalam rangka pengurusan masa dan risiko yang ketat.
Strategi ini hanya untuk rujukan dan perlu disesuaikan dengan kemampuan risiko individu dan keadaan pasaran dalam transaksi sebenar.
Sesuai untuk pelabur sederhana dan pendek yang mencari strategi perdagangan yang stabil dan sistematik, terutamanya peniaga yang memfokuskan diri pada perdagangan mata wang dan varieti yang sangat cair.
Strategi ini memberikan peniaga kerangka perdagangan yang bernilai kajian dan penambahbaikan yang mendalam.
/*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