
Cette stratégie utilise l’identification des tendances des indices RSI cumulatifs pour effectuer des opérations d’achat et de vente lorsque les valeurs cumulatives des indices RSI franchissent les seuils critiques. Cette stratégie peut filtrer efficacement le bruit du marché et bloquer les opportunités de négociation de tendances plus longues.
La stratégie est principalement basée sur l’indicateur RSI cumulatif pour prendre des décisions de négociation. L’indicateur RSI cumulatif est la valeur cumulative de l’indicateur RSI.
L’opération d’ouverture et d’achat est effectuée lorsque l’indicateur RSI accumulé traverse la bande de Bollinger. L’opération de vente est effectuée lorsque l’indicateur RSI accumulé traverse la bande de Bollinger.
En outre, la stratégie ajoute l’option de filtre de tendance. L’achat et l’ouverture d’une position sont effectués uniquement lorsque le prix est supérieur à la moyenne mobile de 100 jours, c’est-à-dire dans le canal de tendance haussière. Ce filtre évite les erreurs de transaction lors des fluctuations de prix.
L’ensemble de la stratégie de rupture RSI cumulative fonctionne de manière fluide et logique, elle filtre efficacement les vagues grâce à l’indicateur RSI cumulatif, augmente le jugement de la tendance, saisit avec précision les tendances de la ligne moyenne et longue et a une excellente performance de retracement historique. Cependant, il reste encore de la place pour l’optimisation, il est possible d’ajuster les paramètres de configuration, d’augmenter les indicateurs de jugement et d’enrichir les conditions de placement, etc.
/*backtest
start: 2023-09-26 00:00:00
end: 2023-10-26 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// @version=5
// Author = TradeAutomation
strategy(title="Cumulative RSI Strategy", shorttitle="CRSI Strategy", process_orders_on_close=true, overlay=true, commission_type=strategy.commission.cash_per_contract, commission_value=.0035, slippage = 1, margin_long = 75, initial_capital = 25000, default_qty_type=strategy.percent_of_equity, default_qty_value=110)
// Cumulative RSI Indicator Calculations //
rlen = input.int(title="RSI Length", defval=3, minval=1)
cumlen = input(3, "RSI Cumulation Length")
rsi = ta.rsi(close, rlen)
cumRSI = math.sum(rsi, cumlen)
ob = (100*cumlen*input(94, "Oversold Level")*.01)
os = (100*cumlen*input(20, "Overbought Level")*.01)
// Operational Function //
TrendFilterInput = input(false, "Only Trade When Price is Above EMA?")
ema = ta.ema(close, input(100, "EMA Length"))
TrendisLong = (close>ema)
plot(ema)
// Backtest Timeframe Inputs //
startDate = input.int(title="Start Date", defval=1, minval=1, maxval=31)
startMonth = input.int(title="Start Month", defval=1, minval=1, maxval=12)
startYear = input.int(title="Start Year", defval=2010, minval=1950, maxval=2100)
endDate = input.int(title="End Date", defval=1, minval=1, maxval=31)
endMonth = input.int(title="End Month", defval=1, minval=1, maxval=12)
endYear = input.int(title="End Year", defval=2099, minval=1950, maxval=2100)
InDateRange = (time >= timestamp(syminfo.timezone, startYear, startMonth, startDate, 0, 0)) and (time < timestamp(syminfo.timezone, endYear, endMonth, endDate, 0, 0))
// Buy and Sell Functions //
if (InDateRange and TrendFilterInput==true)
strategy.entry("Long", strategy.long, when = ta.crossover(cumRSI, os) and TrendisLong, comment="Buy", alert_message="buy")
strategy.close("Long", when = ta.crossover(cumRSI, ob) , comment="Sell", alert_message="Sell")
if (InDateRange and TrendFilterInput==false)
strategy.entry("Long", strategy.long, when = ta.crossover(cumRSI, os), comment="Buy", alert_message="buy")
strategy.close("Long", when = ta.crossover(cumRSI, ob), comment="Sell", alert_message="sell")
if (not InDateRange)
strategy.close_all()