RSI CCI Williams%R Stratégie de négociation quantitative

Auteur:ChaoZhang est là., Date: 2024-01-24 11:18:08 Je vous en prie.
Les étiquettes:

img

Vue d'ensemble de la stratégie

Cette stratégie combine trois indicateurs de classification: RSI, CCI et Williams%R pour générer des signaux de trading efficaces. Elle émettra des signaux d'achat ou de vente lorsque les trois indicateurs affichent simultanément des signaux de surachat ou de survente.

La stratégie s'appelle Three Trail Trawler Strategy. Three Trail fait référence à la combinaison de RSI, CCI et Williams%R. Trawler analogise cette stratégie à celle d'un chalutier de pêche.

La logique de la stratégie

La stratégie repose principalement sur les indicateurs suivants pour les décisions commerciales:

  1. Indicateur RSI évaluant les niveaux de surachat/survente
  2. Indicateur CCI permettant d'identifier les points d'inflexion
  3. Indicateur Williams%R confirmant davantage les signaux de négociation

Lorsque le RSI est inférieur à 25, il indique un état de survente. Lorsque le RSI est supérieur à 75, il indique un état de surachat. La même logique s'applique aux paramètres CCI et Williams%R.

Lorsque les trois indicateurs affichent simultanément des signaux d'achat, c.-à-d. RSI < 25, CCI < -130, Williams %R < -85, la stratégie sera longue. Lorsque les trois indicateurs affichent simultanément des signaux de vente, c.-à-d. RSI > 75, CCI > 130, Williams %R > -15, la stratégie sera courte.

Cela évite les faux signaux d'un seul indicateur et améliore la fiabilité. Il configure également le stop loss et le take profit pour contrôler les risques et les rendements par transaction.

Les avantages

  1. Filtre les faux signaux avec plusieurs indicateurs
    En combinant RSI, CCI et Williams%R, la stratégie filtre certains faux signaux provenant d'indicateurs individuels, améliorant ainsi la précision.

  2. L'arrêt automatique des pertes/des bénéfices gère les risques Les fonctions d'arrêt des pertes et de prise de profit intégrées fixent automatiquement les prix de sortie pour chaque transaction, plafonnant ainsi les pertes dans des limites tolérables.

  3. Traitements à moyen terme La stratégie fonctionne mieux pour les transactions à moyen terme, en identifiant clairement les points d'inflexion à moyen terme via la combinaison d'indicateurs.

  4. Données de backtest solides
    La stratégie utilise des barres de 45 minutes de l'EUR/USD, une paire de devises majeure avec une liquidité et des données abondantes, réduisant les risques de surendettement dus à des données insuffisantes.

Les risques

  1. Identification d'une tendance à long terme faible
    La stratégie repose davantage sur des signaux contraires. Ses capacités à évaluer et suivre les tendances à long terme sont limitées.

  2. Manque de variations à court terme Avec les barres de 45 minutes, la stratégie manque des opportunités rentables de fluctuations de prix à court terme plus fréquentes.

  3. Risques systémiques
    La stratégie s'applique principalement à l'EUR/USD. En période de grave crise économique qui secoue le marché mondial des changes, ses règles de négociation pourraient échouer, entraînant d'énormes pertes.

Les domaines d'amélioration

  1. Ajout d'indicateurs de tendance
    Essayez d'incorporer des métriques de tendance comme MA, Boll, etc. pour aider à la reconnaissance de tendance à long terme.

  2. Optimisation des paramètres stop loss/profit Refaire un backtest de données historiques pour évaluer l'impact des différents paramètres stop loss/profit sur la rentabilité finale, afin de trouver le paramètre optimal.

  3. Élargissement des produits
    Nous pouvons essayer de le déployer sur d'autres paires de devises majeures comme GBP, JPY, AUD pour examiner sa stabilité et sa transférabilité.

Conclusion

La stratégie des trois sentiers identifie les points d'inversion des prix pour les signaux de surachat/survente en utilisant une combinaison de RSI, CCI et Williams %R. Par rapport aux indicateurs individuels, cette configuration multi-indicateurs filtre plus de faux signaux et améliore la précision. Les fonctions automatisées de stop loss/profit taking aident également à limiter les risques de trading. Dans l'ensemble, c'est une stratégie stable adaptée au trading à moyen terme et peut être un module précieux dans nos systèmes quantitatifs. Nous devons néanmoins faire attention à ses lacunes dans la détection des tendances à long terme et la capture des oscillations à court terme.


/*backtest
start: 2024-01-16 00:00:00
end: 2024-01-23 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("RSI CCI Williams %R Strategy with TP and SL", overlay=true)

// Input parameters for indicators
rsi_period = input(14, title="RSI Period")
cci_period = input(20, title="CCI Period")
williams_period = input(14, title="Williams %R Period")

// Thresholds for overbought and oversold conditions
rsi_oversold = input(25, title="RSI Oversold Level")
rsi_overbought = input(75, title="RSI Overbought Level")
cci_oversold = input(-130, title="CCI Oversold Level")
cci_overbought = input(130, title="CCI Overbought Level")
williams_oversold = input(-85, title="Williams %R Oversold Level")
williams_overbought = input(-15, title="Williams %R Overbought Level")

// Take profit and stop loss levels as a percentage
take_profit_pct = input(1.2, title="Take Profit (%)") / 100
stop_loss_pct = input(0.45, title="Stop Loss (%)") / 100

// Indicator calculations
rsi = ta.rsi(close, rsi_period)
cci = ta.cci(close, cci_period)
highestHigh = ta.highest(high, williams_period)
lowestLow = ta.lowest(low, williams_period)
williamsR = (highestHigh - close) / (highestHigh - lowestLow) * -100

// Entry conditions
longCondition = rsi < rsi_oversold and cci < cci_oversold and williamsR < williams_oversold and strategy.position_size == 0
shortCondition = rsi > rsi_overbought and cci > cci_overbought and williamsR > williams_overbought and strategy.position_size == 0

// Execute strategy entry orders
if (longCondition)
    strategy.entry("Long", strategy.long)
    strategy.exit("Take Profit or Stop Loss Long", "Long", limit=close * (1 + take_profit_pct), stop=close * (1 - stop_loss_pct))

if (shortCondition)
    strategy.entry("Short", strategy.short)
    strategy.exit("Take Profit or Stop Loss Short", "Short", limit=close * (1 - take_profit_pct), stop=close * (1 + stop_loss_pct))

// Plot the signals on the chart
plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, text="BUY")
plotshape(series=shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, text="SELL")

// Plot the indicators for visualization
plot(rsi, title="RSI", color=color.blue)
plot(cci, title="CCI", color=color.purple)
plot(williamsR, title="Williams %R", color=color.orange)

Plus de