
Une stratégie de trading basée sur une rupture de prix en hausse ou en baisse est une stratégie de trading basée sur une rupture de prix en hausse ou en baisse. La stratégie consiste à établir un cycle de hausse ou de baisse de prix en hausse ou en baisse et à effectuer une opération de reprise après la formation d’une certaine tendance.
La stratégie est principalement réalisée par les éléments suivants:
La longueur des cycles de hausse et de baisse des prix, appelés consecutiveBarsUp et consecutiveBarsDown, est définie pour déclencher un signal de transaction lorsque la tendance des prix du cycle actuel atteint la longueur définie.
Calculer la hausse ou la baisse du prix actuel par rapport au prix du cycle précédent, calculer la longueur du cycle actuel de hausse ou de baisse consécutive en fonction de la baisse ou de la baisse des prix.
Réglez le temps de répétition, en limitant le temps de répétition par la stratégie time_cond.
Réglez les heures de négociation quotidiennes et limitez les signaux de négociation à une période donnée partimetobuy.
Lorsque les cycles de hausse ou de baisse sont longs, un signal de reprise est émis via strategy.long.
Il est possible de définir des prix de stop loss et de stop stop. Lors d’une action en cours, définissez un stop short, lors d’une action en cours, définissez un stop long. Lors d’une action en cours, définissez un stop long, lors d’une action en cours, définissez un stop short.
Vous pouvez configurer des notifications pour envoyer des signaux de transaction.
En fonction des paramètres et des prix ci-dessus, un signal de plus ou de moins est émis lorsque les conditions sont remplies.
Cette stratégie de percée en arrière-plan présente les avantages suivants:
Capturez les points de retournement des prix, les opérations inverses permettent de réaliser de meilleurs profits. Lorsque les prix sont en tendance, effectuez des opérations inverses, vous pouvez profiter de la reprise des prix.
Les paramètres sont flexibles et peuvent être ajustés en fonction du marché. Le nombre de cycles de hausse et de baisse consécutifs peut être réglé, le point d’arrêt et de perte peut être ajusté, la période de négociation peut être limitée et les paramètres peuvent être optimisés en fonction de la situation réelle.
Il est possible d’ajouter un stop-loss et un stop-loss pour contrôler le risque. Après avoir effectué un shorting supplémentaire, le stop-loss et le stop-loss peuvent être prédéfinis, ce qui permet de contrôler le risque de transaction.
Il est possible de configurer des alertes de transaction pour faciliter l’automatisation des transactions. Il est possible de configurer des alertes de transaction lors de l’envoi d’un signal de transaction, en conjonction avec l’utilisation du système de trading automatique.
Une plage de temps de rétroaction peut être définie pour faciliter le test de la stratégie. Une plage de temps de rétroaction a été ajoutée pour faciliter l’observation de l’efficacité de la stratégie dans différentes conditions de marché.
Cette stratégie comporte également des risques à prendre en compte:
Il faut éviter les événements d’importance majeure. Il n’est pas possible de juger de la tendance des prix lors de la publication des informations importantes. La stratégie émet simultanément plusieurs signaux de courtage, ce qui entraîne des pertes.
L’effet de la réversion n’est pas significatif lorsque la tendance n’est pas évidente. L’effet de la réversion est faible lorsque la tendance n’est pas évidente et doit être utilisé avec prudence.
Risque d’adéquation des données de retracement. Les stratégies d’optimisation doivent éviter une dépendance excessive aux données de retracement, car les données de retracement ne représentent pas les tendances futures. Les paramètres doivent être ajustés de manière appropriée en temps réel.
Une fréquence de négociation trop élevée est susceptible d’entraîner des pertes de marché. Si le cycle est trop court, la fréquence de négociation est trop élevée et ne favorise pas la stabilité des bénéfices à long terme.
Il est possible d’optimiser les stratégies de stop-loss pour réduire le risque. Les stop-loss fixes existants peuvent être optimisés pour suivre les tendances.
Cette stratégie peut être optimisée dans les domaines suivants:
Augmentation du mécanisme de jugement de tendance, pour éviter les retournements de marché non tendance. Les indicateurs tels que la volatilité des prix, les canaux peuvent être détectés, pour juger de l’ampleur de la tendance et éviter de manquer le point de retournement des prix.
Optimiser les stratégies de stop-loss pour qu’elles s’ajustent automatiquement en fonction des fluctuations du marché. Des méthodes telles que le stop-loss en pourcentage d’équilibre et le stop-loss ATR peuvent être utilisées pour rendre les paramètres de stop-loss plus intelligents.
L’ajout d’indicateurs quantitatifs permet d’évaluer les fluctuations du volume des transactions et d’éviter les signaux erronés qui peuvent être générés par la simple forme de la ligne K.
Combinaison multivariée. Appliquer des stratégies à différentes variétés pour les combiner afin de disperser les risques d’une seule variété.
Optimisation des paramètres et apprentissage automatique: collectez plus de données historiques, utilisez des méthodes d’apprentissage automatique pour optimiser automatiquement les paramètres et rendre la stratégie plus stable.
Les stratégies de trading de rupture inverse permettent d’obtenir de bons signaux de trading en capturant les points de retournement des prix. L’avantage de cette stratégie réside dans sa configuration flexible, son contrôle des risques et son adaptation à l’automatisation des transactions. Cependant, il existe également un certain risque, car les paramètres et les stratégies doivent être constamment optimisés et améliorés pour obtenir des bénéfices stables à long terme.
/*backtest
start: 2023-10-17 00:00:00
end: 2023-10-24 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
// Strategy
strategy("Up/Down Strategy - Contrarian", overlay=true, initial_capital = 10000, default_qty_value = 10000, default_qty_type = strategy.cash)
consecutiveBarsUp = input(1, title='Consecutive Bars Up')
consecutiveBarsDown = input(1, title='Consecutive Bars Down')
price = close
ups = 0.0
ups := price > price[1] ? nz(ups[1]) + 1 : 0
dns = 0.0
dns := price < price[1] ? nz(dns[1]) + 1 : 0
// Strategy Backtesting
startDate = input(timestamp("2021-01-01T00:00:00"), type = input.time, title='Backtesting Start Date')
finishDate = input(timestamp("2021-12-31T00:00:00"), type = input.time, title='Backtesting End Date')
time_cond = true
//Time Restriction Settings
startendtime = input("", title='Time Frame To Enter Trades')
enableclose = input(false, title='Enable Close Trade At End Of Time Frame')
timetobuy = true
timetoclose = true
// Stop Loss & Take Profit Tick Based
enablesltp = input(false, title='Enable Take Profit & Stop Loss')
stopTick = input(5.0, title='Stop Loss Ticks', type=input.float) / 100
takeTick = input(10.0, title='Take Profit Ticks', type=input.float) / 100
longStop = strategy.position_avg_price - stopTick
shortStop = strategy.position_avg_price + stopTick
shortTake = strategy.position_avg_price - takeTick
longTake = strategy.position_avg_price + takeTick
plot(strategy.position_size > 0 and enablesltp ? longStop : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Long Fixed SL")
plot(strategy.position_size < 0 and enablesltp ? shortStop : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Short Fixed SL")
plot(strategy.position_size > 0 and enablesltp ? longTake : na, style=plot.style_linebr, color=color.green, linewidth=1, title="Long Take Profit")
plot(strategy.position_size < 0 and enablesltp ? shortTake : na, style=plot.style_linebr, color=color.green, linewidth=1, title="Short Take Profit")
// Alert messages
message_enterlong = input("", title="Long Entry message")
message_entershort = input("", title="Short Entry message")
message_closelong = input("", title="Close Long message")
message_closeshort = input("", title="Close Short message")
// Strategy Execution
if (dns >= consecutiveBarsDown) and time_cond and timetobuy
strategy.entry("Long", strategy.long, stop = high + syminfo.mintick, alert_message = message_enterlong)
if (ups >= consecutiveBarsUp) and time_cond and timetobuy
strategy.entry("Short", strategy.short, stop = low + syminfo.mintick, alert_message = message_entershort)
if strategy.position_size < 0 and timetoclose and enableclose
strategy.close_all(alert_message = message_closelong)
if strategy.position_size > 0 and timetoclose and enableclose
strategy.close_all(alert_message = message_closeshort)
if strategy.position_size < 0 and enablesltp and time_cond
strategy.exit(id="Close Long", stop=longStop, limit=longTake, alert_message = message_closelong)
if strategy.position_size > 0 and enablesltp and time_cond
strategy.exit(id="Close Short", stop=shortStop, limit=shortTake, alert_message = message_closeshort)