
Cette stratégie est une méthode de trading de haute précision basée sur le milieu des zones de dynamique du marché, permettant d’obtenir un entrée et une sortie précises en capturant les caractéristiques de fluctuation des prix dans une période donnée. Le cœur de la stratégie est d’utiliser des cycles de rétroaction configurables, de calculer dynamiquement les hauts, les bas et les moyennes des zones de prix et d’exécuter des transactions limitées dans les heures de négociation de la Bourse de New York.
La stratégie est basée sur les mécanismes clés suivants:
La stratégie offre aux traders une méthode de trading systématique et réglementée grâce à des points de rupture intermédiaires précis et à des mécanismes de négociation à prix limité. Ses principaux avantages sont l’entrée de haute précision, la maîtrise des risques et la sélectivité temporelle. Les orientations d’optimisation futures se concentreront sur l’amélioration de l’adaptabilité et de la stabilité de la stratégie.
Il permet de capturer les tendances de prix à court terme et les opportunités de renversement dans un cadre de gestion rigoureuse du temps et des risques, en calculant dynamiquement les fourchettes de prix et en effectuant des transactions à prix limite à proximité des points moyens.
La présente politique est à titre indicatif et doit être adaptée en fonction de la capacité de prise de risque individuelle et de l’environnement du marché.
Convient aux investisseurs de courte et moyenne ligne qui recherchent des stratégies de négociation stables et systématiques, en particulier pour les traders qui se concentrent sur la négociation de futures et de variétés à forte liquidité.
L’optimisation et l’adaptation sont au cœur de la négociation quantitative. Cette stratégie offre aux traders un cadre de négociation qui mérite d’être étudié et amélioré.
/*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