
La stratégie est un système de trading inversé à intervalles dynamiques basé sur l’indicateur RSI, qui capture les points de basculement du marché en définissant des intervalles de survente et de survente réglables, associés à des paramètres de sensibilité de convergence/diffusion. La stratégie utilise un nombre fixe de contrats pour les transactions et fonctionne sur une période de temps de retracement spécifique. Le noyau du modèle est d’identifier l’état de survente et de survente du marché à travers les changements dynamiques de l’indicateur RSI et de faire des transactions inversées au moment opportun.
La stratégie utilise le RSI à 14 cycles comme indicateur central, avec 80 et 30 comme niveaux de référence pour les surachats et les surventeurs. En introduisant le paramètre de sensibilité de convergence/diffusion (défini à 3.0), la capacité de régulation dynamique est augmentée sur la base de la stratégie RSI traditionnelle.
Il s’agit d’une stratégie d’inversion de zone dynamique basée sur les indicateurs RSI, qui permet d’obtenir un système de négociation relativement complet grâce à des paramètres flexibles et à des règles de négociation claires. Les principaux avantages de la stratégie résident dans sa capacité à réguler la dynamique et à contrôler clairement le risque, mais il faut également être attentif aux risques potentiels dans les marchés oscillante et tendancieux.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-11 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("RSI Options Strategy", overlay=true)
// RSI settings
rsiLength = input(14, title="RSI Length")
rsiOverbought = input(80, title="Overbought Level")
rsiOversold = input(30, title="Oversold Level")
rsiSource = input(close, title="RSI Source")
rsi = ta.rsi(rsiSource, rsiLength)
// Convergence/Divergence Input
convergenceLevel = input(3.0, title="Convergence/Divergence Sensitivity")
// Order size (5 contracts)
contracts = 10
// Date Range for Backtesting
startDate = timestamp("2024-09-10 00:00")
endDate = timestamp("2024-11-09 23:59")
// Limit trades to the backtesting period
inDateRange = true
// RSI buy/sell conditions with convergence/divergence sensitivity
buySignalOverbought = ta.crossover(rsi, rsiOverbought - convergenceLevel)
sellSignalOversold = ta.crossunder(rsi, rsiOversold + convergenceLevel)
buySignalOversold = ta.crossunder(rsi, rsiOversold - convergenceLevel)
sellSignalOverbought = ta.crossover(rsi, rsiOverbought + convergenceLevel)
// Execute trades only within the specified date range
if (inDateRange)
// Buy when RSI crosses above 80 (overbought)
if (buySignalOverbought)
strategy.entry("Buy Overbought", strategy.long, qty=contracts)
// Sell when RSI crosses below 30 (oversold)
if (sellSignalOversold)
strategy.close("Buy Overbought")
// Buy when RSI crosses below 30 (oversold)
if (buySignalOversold)
strategy.entry("Buy Oversold", strategy.long, qty=contracts)
// Sell when RSI crosses above 80 (overbought)
if (sellSignalOverbought)
strategy.close("Buy Oversold")
// Plot the RSI for visualization
plot(rsi, color=color.blue, title="RSI")
hline(rsiOverbought, "Overbought", color=color.red)
hline(rsiOversold, "Oversold", color=color.green)