Les ressources ont été chargées... Je charge...

Williams %R Modification dynamique de la stratégie de blocage des pertes

Auteur:ChaoZhang est là., Date: 2024-06-07 15h52 et 55 min
Les étiquettes:Le taux d'intérêtTPSL

Williams %R 动态调整止盈止损策略

Résumé

La stratégie est basée sur l'indicateur Williams %R pour optimiser les performances des transactions en ajustant dynamiquement les niveaux de stop-loss. Elle génère un signal d'achat lorsque le Williams %R traverse la zone de survente (-80) et un signal de vente lorsqu'il traverse la zone de survente (-20). Elle utilise également une moyenne mobile (EMA) de l'indicateur pour aplanir les valeurs Williams %R afin de réduire le bruit. La stratégie offre des paramètres flexibles à configurer, y compris les cycles de l'indicateur, les niveaux de stop-loss (TP/SL), les temps de négociation et la direction des transactions, afin de s'adapter aux différents environnements du marché et aux préférences des traders.

Les principes stratégiques

  1. Calcule la valeur de l'indicateur Williams %R pour une période donnée.
  2. Calcul de l'EMA pour le Williams %R.
  3. Lorsque le Williams %R traverse le niveau 80 de bas en haut, il déclenche un signal d'achat; lorsqu'il traverse le niveau 20 de haut en bas, il déclenche un signal de vente.
  4. Une fois l'achat terminé, les niveaux de stop-loss et de stop-loss sont réglés jusqu'à ce que le prix de stop-loss ou Williams %R déclenche un signal inverse.
  5. Une fois vendu, le niveau stop-loss est mis en place jusqu'à ce qu'il atteigne le niveau stop-loss ou Williams %R déclenche un signal de rebond.
  6. Vous pouvez choisir de négocier dans une plage d'heures spécifiée (par exemple 9h00 à 11h00) et si vous souhaitez négocier près d'un point entier (de X minutes avant à Y minutes après).
  7. Vous pouvez choisir la direction de transaction pour les transactions à plus, à moins ou à double sens.

Analyse des avantages

  1. Stop-loss dynamique: le niveau de stop-loss peut être 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 configurer des paramètres tels que la durée de l'indicateur, le niveau de stop-loss, la durée de la transaction, etc. en fonction de leurs préférences, afin de s'adapter aux différentes conditions du marché.
  3. Indicateur de lissage: l'introduction d'un EMA pour lissage des chiffres Williams %R réduit efficacement le bruit de l'indicateur et améliore la fiabilité du signal.
  4. Limiter les heures de négociation: vous pouvez choisir de négocier dans une plage de temps spécifique, éviter les périodes de forte volatilité du marché et réduire les risques.
  5. Direction de négociation personnalisée: selon les tendances du marché et les jugements personnels, vous pouvez choisir de ne faire que beaucoup, de ne faire que peu ou de négocier dans les deux sens.

L'analyse des risques

  1. Les paramètres sont mal réglés: si les paramètres sont trop lourds ou trop stricts, cela peut entraîner une perte de profit ou des pertes fréquentes.
  2. Une erreur d'identification des tendances: l'indicateur Williams %R ne fonctionne pas bien dans les marchés turbulents et peut générer un mauvais signal.
  3. L'effet de la restriction de temps est limité: une restriction de temps de négociation peut faire perdre à la stratégie 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 futures transactions réelles.

Optimisation

  1. En combinaison avec d'autres indicateurs, tels que les indicateurs de tendance, les indicateurs de fréquence, etc., l'exactitude de la confirmation du signal est améliorée.
  2. Optimisation des paramètres dynamiques: ajuster les paramètres en temps réel en fonction des conditions du marché, par exemple en utilisant des paramètres différents dans les marchés tendance et volatile.
  3. Améliorer les méthodes d'arrêt des pertes: utiliser des méthodes telles que l'arrêt des pertes de suivi, l'arrêt partiel, etc. pour mieux protéger les profits et contrôler les risques.
  4. Mettez-vous à la gestion des fonds: ajustez dynamiquement la taille des positions par transaction en fonction du solde du compte et des préférences en matière de risques.

Résumé

La stratégie Williams %R d'ajustement dynamique de l'arrêt-perte permet de capturer l'excédent d'achat du prix d'une manière simple et efficace, tout en offrant des paramètres flexibles pour s'adapter à différents environnements de marché et styles de trading. La stratégie d'ajustement dynamique du niveau d'arrêt-perte permet de mieux contrôler les risques et de protéger les bénéfices.


/*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)

Contenu lié

En savoir plus