
La stratégie est un système de trading basé sur plusieurs niveaux de prix clés. Il suit principalement six points clés : le plus haut intrajournalier (HOD), le plus bas intrajournalier (LOD), le plus haut pré-marché (PMH), le plus bas pré-marché (PML), le plus haut de la veille (PDH) et le plus bas de la veille (PDL). niveaux, les signaux de trading sont générés par la rupture des prix à travers ces niveaux. La stratégie utilise le trading automatisé pour exécuter des opérations d’achat et de vente en fonction des franchissements de prix de niveaux clés.
La logique fondamentale de la stratégie comprend les éléments clés suivants :
Cette stratégie permet de saisir les opportunités du marché en surveillant et en utilisant plusieurs niveaux de prix clés, et se caractérise par une logique claire et un degré élevé d’automatisation. Mais il existe aussi certains risques, qu’il faut optimiser en ajoutant des filtres d’indicateurs techniques, en améliorant les mécanismes de gestion des risques, etc. L’avantage principal de la stratégie réside dans son système de référence de prix multidimensionnel, qui lui permet de mieux saisir les tendances du marché, mais dans l’application réelle, des ajustements de paramètres ciblés sont nécessaires en fonction des différents environnements de marché.
/*backtest
start: 2024-12-06 00:00:00
end: 2025-01-04 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tradingbauhaus
//@version=6
strategy("HOD/LOD/PMH/PML/PDH/PDL Strategy by tradingbauhaus ", shorttitle="HOD/LOD Strategy", overlay=true)
// Daily high and low
dailyhigh = request.security(syminfo.tickerid, 'D', high)
dailylow = request.security(syminfo.tickerid, 'D', low)
// Previous day high and low
var float previousdayhigh = na
var float previousdaylow = na
high1 = request.security(syminfo.tickerid, 'D', high[1])
low1 = request.security(syminfo.tickerid, 'D', low[1])
high0 = request.security(syminfo.tickerid, 'D', high[0])
low0 = request.security(syminfo.tickerid, 'D', low[0])
// Yesterday high and low
if (hour == 9 and minute > 30) or hour > 10
previousdayhigh := high1
previousdaylow := low1
else
previousdayhigh := high0
previousdaylow := low0
// Premarket high and low
t = time("1440", "0000-0930") // 1440 is the number of minutes in a whole day.
is_first = na(t[1]) and not na(t) or t[1] < t
ending_hour = 9
ending_minute = 30
var float pm_high = na
var float pm_low = na
if is_first and barstate.isnew and ((hour < ending_hour or hour >= 16) or (hour == ending_hour and minute < ending_minute))
pm_high := high
pm_low := low
else
pm_high := pm_high[1]
pm_low := pm_low[1]
if high > pm_high and ((hour < ending_hour or hour >= 16) or (hour == ending_hour and minute < ending_minute))
pm_high := high
if low < pm_low and ((hour < ending_hour or hour >= 16) or (hour == ending_hour and minute < ending_minute))
pm_low := low
// Plotting levels
plot(dailyhigh, style=plot.style_line, title="Daily high", color=color.white, linewidth=1, trackprice=true)
plot(dailylow, style=plot.style_line, title="Daily low", color=color.purple, linewidth=1, trackprice=true)
plot(previousdayhigh, style=plot.style_line, title="Previous Day high", color=color.orange, linewidth=1, trackprice=true)
plot(previousdaylow, style=plot.style_line, title="Previous Day low", color=color.blue, linewidth=1, trackprice=true)
plot(pm_high, style=plot.style_line, title="Premarket high", color=color.green, linewidth=1, trackprice=true)
plot(pm_low, style=plot.style_line, title="Premarket low", color=color.red, linewidth=1, trackprice=true)
// Strategy logic
// Long entry: Price crosses above PMH or PDH
if (ta.crossover(close, pm_high) or ta.crossover(close, previousdayhigh)) and strategy.opentrades == 0
strategy.entry("Long", strategy.long)
// Short entry: Price crosses below PML or PDL
if (ta.crossunder(close, pm_low) or ta.crossunder(close, previousdaylow)) and strategy.opentrades == 0
strategy.entry("Short", strategy.short)
// Exit long: Price reaches HOD
if strategy.position_size > 0 and ta.crossover(close, dailyhigh)
strategy.close("Long")
// Exit short: Price reaches LOD
if strategy.position_size < 0 and ta.crossunder(close, dailylow)
strategy.close("Short")