Stratégie de croisement Williams % R avec filtre de moyenne mobile

Auteur:ChaoZhang est là., Date: le 19 septembre 2023 21:57:46
Les étiquettes:

Résumé

Cette stratégie utilise les signaux de croisement Williams %R et ajoute un filtre à moyenne mobile pour créer un système de trading à court terme flexible.

La logique de la stratégie

  1. Calculer le Williams %R et la moyenne mobile simple (MA) de 200 périodes.

  2. Le taux d'échange de l'opérateur est le taux de change de l'opérateur.

  3. La valeur de l'opération est la valeur de la valeur de l'opération.

  4. En cas de long, position close lorsque les positions close atteignent le profit (prix d'entrée + pips de profit) ou le niveau de stop loss (prix d'entrée - pips de stop loss).

  5. Si la position est à court terme, la position close lorsque la position est à court terme prend profit (prix d'entrée - pips de prise de profit) ou niveau de stop loss (prix d'entrée + pips de stop loss).

La stratégie capitalise sur la nature suracheté/survendue de Williams %R, et combine le filtre de tendance MA pour des signaux plus fiables.

Analyse des avantages

  1. Williams %R identifie efficacement les niveaux de surachat/survente avec des signaux clairs.

  2. Le filtre MA ajoute un biais de tendance pour éviter les coups de fouet.

  3. Paramètres personnalisables pour une plus grande souplesse.

  4. Le stop-loss de suivi bloque la plupart des bénéfices.

  5. Une logique simple et claire, facile à comprendre et à mettre en œuvre.

  6. Applicable à plusieurs produits avec souplesse.

Analyse des risques

  1. Williams %R a un effet de retard, peut manquer certaines opportunités.

  2. Le filtre MA a aussi un certain retard.

  3. Des règles strictes en matière de surachat/survente peuvent faire oublier certaines tendances.

  4. L'arrêt de perte trop serré peut être arrêté par des fouets.

  5. Un stop-loss trop large peut limiter les bénéfices.

  6. Les paramètres doivent être adaptés aux différents environnements du marché.

Directions d'optimisation

  1. Optimisez les paramètres pour un taux de victoire plus élevé.

  2. Ajoutez d'autres filtres comme MACD, KDJ etc.

  3. Essayez différents types d'AM comme l'AM exponentiel.

  4. Ajoutez le biais de tendance, ne négociez que dans la direction de la tendance.

  5. Optimiser les stratégies de stop-loss comme les arrêts dynamiques, les sorties de lustre, etc.

  6. Essayez la taille de la position comme fraction fixe, Martingale etc.

  7. Utiliser l'apprentissage automatique pour une meilleure optimisation des paramètres.

Conclusion

Cette stratégie combine les signaux de surachat / survente de Williams % R avec le filtre de tendance MA dans un système simple à court terme. Elle a des signaux d'entrée clairs et une logique de stop loss / take profit. Des améliorations supplémentaires peuvent être apportées grâce au réglage des paramètres, à la sélection des indicateurs, à la gestion des stop loss, etc. pour plus de robustesse. Facile à mettre en œuvre et à étendre, cette stratégie convient bien aux traders à court terme.


/*backtest
start: 2023-08-19 00:00:00
end: 2023-09-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Williams %R Cross Strategy with MA Filter", overlay=true)

// User Inputs
wrLength = input(14, title="Williams %R Length")
crossPips = input(10, title="Cross Threshold (Pips)")
takeProfitPips = input(30, title="Take Profit (Pips)")
stopLossPips = input(20, title="Stop Loss (Pips)")

// Calculate Williams %R
wrHigh = ta.highest(high, wrLength)
wrLow = ta.lowest(low, wrLength)
wr = (wrHigh - close) / (wrHigh - wrLow) * -100

// Calculate 200-period Simple Moving Average
ma200 = ta.sma(close, 200)

// Entry Conditions
enterLong = ta.crossover(wr, -50 - crossPips) and close > ma200
enterShort = ta.crossunder(wr, -50 + crossPips) and close < ma200

// Exit Conditions
exitLong = close >= (strategy.position_avg_price + (takeProfitPips / syminfo.mintick)) or close <= (strategy.position_avg_price - (stopLossPips / syminfo.mintick))
exitShort = close <= (strategy.position_avg_price - (takeProfitPips / syminfo.mintick)) or close >= (strategy.position_avg_price + (stopLossPips / syminfo.mintick))

// Order Management
if enterLong
    strategy.entry("Long", strategy.long)
    
if enterShort
    strategy.entry("Short", strategy.short)

if exitLong
    strategy.close("Long")

if exitShort
    strategy.close("Short")


Plus de