L'idée principale de cette stratégie est d'acheter à la clôture de la journée en cours et de vendre à l'ouverture le lendemain si le prix est supérieur au prix d'achat, sinon de continuer à détenir jusqu'à ce que l'arrêt des pertes ou la prise de profit.
La stratégie définit d'abord une moyenne mobile simple de 200 jours comme indicateur de l'état du marché, ne permettant de négocier que lorsque le prix est au-dessus de la ligne de 200 jours. Le temps d'achat est fixé à la dernière demi-heure avant la clôture chaque jour, et le temps de vente est fixé à la première demi-heure après l'ouverture suivante. Lorsque l'état du marché répond à l'exigence pendant le temps d'achat, il placera un ordre de marché à acheter. Pendant le temps de vente, il vérifiera si le prix est supérieur au prix d'achat, si oui, il placera un ordre de marché à vendre et à tirer profit, sinon, il continue à tenir jusqu'à ce que stop loss ou profit soit pris demain. Il définit également une ligne stop loss de 5% pour limiter les pertes.
La stratégie présente les avantages suivants:
Utilisez l'effet de clôture lorsque la fluctuation des prix et l'écart sont plus importants pendant la clôture.
La courte période de détention permet un stop-loss rapide et une prise de profit pour réduire les risques.
La logique est simple et facile à comprendre et à mettre en œuvre.
Configuration flexible sur la ligne de stop-loss et l'indicateur de l'état du marché pour contrôler les risques.
Il y a aussi des risques:
L'achat au prix de clôture peut entraîner des positions à des prix élevés, ce qui augmente le risque de perte.
La courte période d'attente facilite le piège et il n'y a pas de limite de montée ou de descente le lendemain.
Il repose sur de grands écarts, qui ne se forment pas toujours, ce qui entraîne des pertes ou des positions piégées.
Choisir le mauvais symbole, comme la consolidation de l'indice, peut entraîner de multiples pertes.
Les solutions:
Combiner les indicateurs techniques pour assurer des achats à un niveau relativement bas à la clôture.
Prolonger la période de détention à 2 à 3 jours.
Achetez uniquement à des moments de rupture valides.
Choisissez soigneusement les symboles avec une tendance haussière.
La stratégie peut être optimisée dans les aspects suivants:
Ajouter plus d'indicateurs techniques pour le signal d'achat pour améliorer la certitude.
Testez différentes périodes de détention pour trouver le temps optimal de prise de profit.
Optimiser la ligne de stop-loss pour trouver le point de stop-loss optimal.
Tester les performances sur différents symboles et environnements de marché, adopter une gestion dynamique des symboles et des positions.
La stratégie a une logique claire, en utilisant l'effet d'écart de fermeture pour le trading rapide stop loss / profit. Elle est facile à mettre en œuvre et à comprendre. Mais elle comporte également des risques de piège élevés.
/*backtest start: 2022-12-27 00:00:00 end: 2024-01-02 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // @version=4 // © HermanBrummer // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ strategy("M8 BUY @ END OF DAY", "", 1) /// BUYS AT THE END OF THE DAY /// SELLS THE NEXT MORNING IF PRICE IS HIGHER THEN THE ENTRY PRICE /// IF PRICE IS NOT HIGHER THEN IT WILL KEEP THE POSITION AND WAIT FOR EITHER A STOP OUT OR FOR PRICE TO BE HIGHER THAN THE ENTRY /// USES A 5% STOP LOSS ON THE REDLINE -- SETTABLE IN SETTINGS /// USES A 200 DAY MARKET FILTER -- SETTABLE IN SETTINGS -- IMPORTS DATA FROM HIGHER TIMEFRAME, BUT USES CLOSE[2] << SO THIS IS FIXED, NON-REPAITING DATA MarketFilterLen = input(200) StopLossPerc = input(.95, step=0.01) buyTime = time(timeframe.period, "1429-1500") sellTime = time(timeframe.period, "0925-0935") F1 = close > sma(security(syminfo.tickerid, "D", close[2]), MarketFilterLen) // HIGH OF OLD DATA -- SO NO REPAINTING enter = buyTime and F1 exit = sellTime StopLossLine = strategy.position_avg_price * StopLossPerc plot(StopLossLine, "StopLossLine", color.new(#FF0000, 50)) strategy.entry("L", true, when=enter) strategy.exit("StopLoss", stop=StopLossLine ) if close > strategy.position_avg_price strategy.close("L", when=exit) barcolor(strategy.opentrades != 0 ? color.new(color.yellow, 0) : na )