
La stratégie est basée sur la couleur du crépuscule retardée d’une heure, en analysant la couleur du crépuscule de 0 heures de minuit la veille pour juger de la direction de la transaction à 1 heures le lendemain. Faire plus lorsque le crépuscule de 0 est vert, faire moins lorsque le crépuscule est rouge.
La logique centrale de cette stratégie est basée sur l’effet de l’attraction de minuit sur le marché, c’est-à-dire que la couleur de l’aiguille 0 à minuit le jour précédent représente l’atmosphère globale du marché de la journée et peut être utilisée pour déterminer la direction du marché après le début du jour suivant.
En particulier, la stratégie commence par déterminer si la ligne K actuelle est à 0 points, et si oui, en indiquant le prix de clôture plus élevé que le prix d’ouverture en vert ou en rouge. Sur la barre suivante, soit la ligne K à 1 point, effectuez un overbought dans la direction correspondante en fonction de la couleur de la barre à 0 points de la veille, et définissez un stop loss.
En retardant ainsi l’ouverture de la position, on évite les effets de la forte volatilité de l’entrée à 0h00.
L’idée générale de la stratégie est claire et simple, la direction de la journée suivante est déterminée par la couleur de l’aiguille de 0 points et le risque de contrôle de l’aiguille d’arrêt est une stratégie de ligne courte d’entrée adaptée aux débutants. Mais il existe également une certaine incertitude, qui nécessite une optimisation et une vérification continues pour être vraiment opérationnelle.
/*backtest
start: 2023-12-28 00:00:00
end: 2024-01-04 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Midnight Candle Color Strategy with 1-Hour Delay and SL/TP", shorttitle="12AM +1H SL/TP Strat", overlay=true)
// Adjust for New York time (UTC-5 or UTC-4 for Daylight Saving Time)
// Assuming UTC-5 for now; adjust as necessary for Daylight Saving Time
nyHour(hour) => (hour - 5) % 24
// Function to check if the current bar is the 12:00 AM New York time bar
isMidnightBar() =>
nyHour(hour) == 0 and minute == 0
// Function to check if the current bar is the 1:00 AM New York time bar (1 hour after midnight)
is1AMBar() =>
nyHour(hour) == 1 and minute == 0
// Variable to store the color of the previous day's midnight candle
var color midnightCandleColorPrevDay = na
// Determine the color of the previous day's midnight candle
if isMidnightBar()
midnightCandleColorPrevDay := close[1] > open[1] ? color.green : color.red
// Strategy execution at 1:00 AM based on the color of the previous day's midnight candle
if is1AMBar()
if midnightCandleColorPrevDay == color.green
strategy.entry("Long", strategy.long)
strategy.exit("Take Profit", "Long", limit=close + 57 * syminfo.mintick, stop=close - 200 * syminfo.mintick)
if midnightCandleColorPrevDay == color.red
strategy.entry("Short", strategy.short)
strategy.exit("Take Profit", "Short", limit=close - 50 * syminfo.mintick, stop=close + 200 * syminfo.mintick)
// Optional: Plot a marker for visualization
plotshape(series=isMidnightBar(), style=shape.triangleup, location=location.belowbar, color=color.new(midnightCandleColorPrevDay, 90), size=size.small)
plotshape(series=is1AMBar(), style=shape.triangledown, location=location.abovebar, color=color.blue, size=size.small)