Stratégie d'accumulation de cassure du RSI


Date de création: 2023-10-27 11:20:50 Dernière modification: 2023-10-27 11:20:50
Copier: 0 Nombre de clics: 759
1
Suivre
1617
Abonnés

Stratégie d’accumulation de cassure du RSI

Aperçu

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.

Principe de stratégie

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.

Avantages stratégiques

  • Utilisez les indicateurs RSI cumulatifs pour filtrer efficacement le bruit et localiser les tendances de la ligne moyenne et longue
  • Le filtrage des tendances pour éviter les transactions déraisonnables
  • Les prix de référence dynamiques de rupture sont utilisés pour juger, et non des valeurs fixes
  • Plus de paramètres configurables, qui peuvent être ajustés pour différents marchés
  • Le retour sur investissement de 10 ans est excellent et les gains sont bien supérieurs aux stratégies d’achat et de détention.

Risques et améliorations stratégiques

  • La stratégie consiste à prendre des décisions sur la base d’un seul indicateur RSI cumulatif, en ajoutant d’autres indicateurs de jugement ou des filtres pour un jugement global
  • Levier de multiples fixes est plus élevé et le ratio de levier peut être ajusté en fonction des retraits
  • Il est possible d’envisager d’augmenter le nombre de postes vacants
  • Une combinaison de paramètres optimisés, avec des paramètres très différents selon les conditions du marché
  • Les conditions de placement peuvent être enrichies, les positions de stop-loss augmentées, le stop-loss déplacé, etc.
  • Peut être envisagé en combinaison avec d’autres stratégies pour obtenir des résultats synergiques

Résumer

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.

Code source de la stratégie
/*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()