Williams %R ajuste dynamiquement la stratégie stop-profit et stop-loss

EMA TP SL
Date de création: 2024-06-07 15:52:55 Dernière modification: 2024-06-07 15:52:55
Copier: 10 Nombre de clics: 783
1
Suivre
1617
Abonnés

Williams %R ajuste dynamiquement la stratégie stop-profit et stop-loss

Aperçu

La stratégie est basée sur l’indicateur Williams %R, qui optimise la performance des transactions en ajustant dynamiquement les niveaux de stop-loss. Elle génère un signal d’achat lorsque Williams %R traverse la zone de survente (−80) et un signal de vente lorsque Williams %R traverse la zone de survente (−20). Elle utilise également l’indicateur des moyennes mobiles (EMA) pour lisser les valeurs de Williams %R afin de réduire le bruit.

Principe de stratégie

  1. Calculer la valeur de l’indicateur Williams %R pour une période donnée.
  2. Calculer la moyenne mobile indicielle de Williams %R
  3. Un signal d’achat est déclenché lorsque Williams %R franchit le niveau 80 de bas en haut; un signal de vente est déclenché lorsque Williams %R franchit le niveau 20 de haut en bas.
  4. Après avoir acheté, définissez des niveaux de stop-loss et de stop-loss, puis déposez jusqu’à ce que vous atteigniez le prix de stop-loss ou que le signal de retour de Williams %R soit déclenché.
  5. Après avoir vendu, définissez des niveaux de stop-loss et de stop-loss, puis déposez jusqu’à ce que vous atteigniez le prix stop/stop-loss ou que le signal de retour de Williams %R soit déclenché.
  6. Vous pouvez choisir de négocier dans une plage de temps spécifiée (par exemple, de 9h00 à 11h00) et si vous souhaitez négocier à proximité d’un point entier (par exemple, de X minutes avant à Y minutes après).
  7. Les options de négociation sont les suivantes: faire seulement plus, faire seulement moins ou négocier dans les deux sens.

Analyse des avantages

  1. Stop loss dynamique: le niveau de stop loss est ajusté dynamiquement en fonction des paramètres de l’utilisateur pour mieux protéger les bénéfices et contrôler les risques.
  2. Paramètres flexibles: les utilisateurs peuvent définir des paramètres en fonction de leurs préférences, tels que la période de l’indicateur, le niveau de stop loss, le temps de négociation, etc., pour s’adapter à différentes conditions du marché.
  3. Indicateur de lissage: introduire la valeur de lissage Williams %R de l’EMA pour réduire efficacement le bruit de l’indicateur et améliorer la fiabilité du signal.
  4. Limiter le temps de négociation: vous pouvez choisir de négocier dans un certain laps de temps, éviter les périodes de forte volatilité du marché et réduire les risques.
  5. Vous pouvez choisir d’effectuer des transactions en plus, en plus ou en double, en fonction des tendances du marché et de votre propre jugement.

Analyse des risques

  1. Les paramètres sont mal réglés: les paramètres de stop-loss trop lâches ou trop stricts peuvent entraîner des pertes de profit ou des pertes fréquentes.
  2. Erreur de détection de tendance: l’indicateur Williams %R ne fonctionne pas bien dans les marchés instables, ce qui peut générer de faux signaux.
  3. Les contraintes de temps ont un effet limité: les contraintes de temps de négociation peuvent faire rater de bonnes opportunités de négociation.
  4. Sur-optimisation: les paramètres sur-optimisés peuvent entraîner une mauvaise performance de la stratégie dans les transactions réelles futures.

Direction d’optimisation

  1. En combinaison avec d’autres indicateurs, tels que les indicateurs de tendance, les indicateurs de volatilité, etc., améliorez la précision de la reconnaissance du signal.
  2. Optimisation des paramètres dynamiques: ajustement des paramètres en temps réel en fonction de la situation du marché, par exemple en utilisant des paramètres différents dans les marchés tendanciels et les marchés de choc.
  3. Améliorer les méthodes de stop-loss: par exemple, adopter des méthodes de stop-loss suivi, de stop-loss partiel, etc. pour mieux protéger les bénéfices et contrôler les risques.
  4. Adhésion à la gestion des fonds: Adaptez dynamiquement la taille de la position de chaque transaction en fonction du solde du compte et de vos préférences en matière de risque.

Résumer

La stratégie Williams %R d’arrêt-stop d’ajustement dynamique capture les conditions de survente et de survente des prix de manière simple et efficace, tout en offrant des paramètres flexibles pour s’adapter à différents environnements de marché et styles de négociation. La stratégie d’arrêt-stop d’ajustement dynamique permet de mieux contrôler les risques et de protéger les bénéfices.

Code source de la stratégie
/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Williams %R Strategy defined buy/sell criteria with TP / SL", overlay=true)

// User inputs for TP and SL levels
tp_level = input.int(defval=60, title="Take Profit (ticks)", minval=10, maxval=500, step=10)
sl_level = input.int(defval=60, title="Stop Loss (ticks)", minval=10, maxval=200, step=10)

// Williams %R calculation
length = input.int(defval=21, title="Length", minval=5, maxval=50, step=1)
willy = 100 * (close - ta.highest(length)) / (ta.highest(length) - ta.lowest(length))

// Exponential Moving Average (EMA) of Williams %R
ema_length = input.int(defval=13, title="EMA Length", minval=5, maxval=50, step=1)
ema_willy = ta.ema(willy, ema_length)

// User inputs for Williams %R thresholds
buy_threshold = -80
sell_threshold = -20

// User input to enable/disable specific trading hours
use_specific_hours = input.bool(defval=false, title="Use Specific Trading Hours")
start_hour = input(defval=timestamp("0000-01-01 09:00:00"), title="Start Hour")
end_hour = input(defval=timestamp("0000-01-01 11:00:00"), title="End Hour")

// User input to choose trade direction
trade_direction = input.string(defval="Both", title="Trade Direction", options=["Buy Only", "Sell Only", "Both"])

// User input to enable/disable "Minutes Before" and "Minutes After" options
enable_minutes_before_after = input.bool(defval=true, title="Enable Minutes Before/After Options")
minutes_before = enable_minutes_before_after ? input.int(defval=10, title="Minutes Before the Top of the Hour", minval=0, maxval=59, step=1) : 0
minutes_after = enable_minutes_before_after ? input.int(defval=10, title="Minutes After the Top of the Hour", minval=0, maxval=59, step=1) : 0

// Condition to check if the current minute is within the user-defined time window around the top of the hour
is_top_of_hour_range = (minute(time) >= (60 - minutes_before) and minute(time) <= 59) or (minute(time) >= 0 and minute(time) <= minutes_after)

// Condition to check if the current time is within the user-defined specific trading hours
in_specific_hours = true
if use_specific_hours
    in_specific_hours := (hour(time) * 60 + minute(time)) >= (hour(start_hour) * 60 + minute(start_hour)) and (hour(time) * 60 + minute(time)) <= (hour(end_hour) * 60 + minute(end_hour))

// Buy and Sell conditions with time-based restriction
buy_condition = ta.crossover(willy, buy_threshold) and is_top_of_hour_range and in_specific_hours
sell_condition = ta.crossunder(willy, sell_threshold) and is_top_of_hour_range and in_specific_hours

// Strategy entry and exit with TP and SL
if (trade_direction == "Buy Only" or trade_direction == "Both") and buy_condition
    strategy.entry("Buy", strategy.long)

if (trade_direction == "Sell Only" or trade_direction == "Both") and sell_condition
    strategy.entry("Sell", strategy.short)

// If a buy entry was taken, allow the trade to be closed after reaching TP and SL or if conditions for a sell entry are true
if (strategy.opentrades > 0)
    strategy.exit("TP/SL", profit=tp_level, loss=sl_level)

// Plot Williams %R and thresholds for visualization
hline(-20, "Upper Band", color=color.red)
hline(-80, "Lower Band", color=color.green)
plot(willy, title="%R", color=color.yellow, linewidth=2)
plot(ema_willy, title="EMA", color=color.aqua, linewidth=2)