Stratégie d'opération de choc RSI dynamique


Date de création: 2023-11-02 16:04:07 Dernière modification: 2023-11-02 16:04:07
Copier: 1 Nombre de clics: 666
1
Suivre
1617
Abonnés

Stratégie d’opération de choc RSI dynamique

Aperçu

Cette stratégie combine le support/résistance dynamique et l’indicateur RSI relativement faible pour définir le RSI au-dessus de la zone de survente et de survente, et pour déterminer si le RSI est entré dans la zone de survente et de survente lors de la rupture du support/résistance dynamique, générant ainsi des signaux de vente et de vente.

Le principe

1. Position dynamique de support/résistance

Utilisez la fonction security pour obtenir le prix de clôture comme support / résistance dynamique, générant un signal de transaction lorsque le prix franchit ce niveau dynamique.

2. Indicateur du RSI

Calculer la hausse et la baisse moyennes d’une période donnée et comparer les deux pour générer un RSI permettant de déterminer si l’on est dans une zone de survente ou de survente.

3. Signaux de négociation

Lorsque le prix franchit une position dynamique, le RSI génère un signal d’achat/vente si celui-ci n’est pas entré dans la zone de surachat/survente. S’il est entré, le signal de rupture est ignoré.

4. Signaux de sortie

Le cours est à l’arrêt lorsque le cours revient à la zone dynamique, ou au niveau lorsque le RSI revient à la zone normale.

Analyse des avantages

  1. Utilisez le support / résistance dynamique pour déterminer la direction de la tendance et améliorer la probabilité de gagner.

  2. L’indicateur RSI filtre les fausses ruptures pour éviter les interférences.

  3. Les tendances et les indicateurs peuvent être combinés pour s’appliquer à des situations différentes.

  4. Les règles sont claires et faciles à appliquer.

Risques et solutions

  1. Les bits dynamiques peuvent être testés à plusieurs reprises, ce qui entraîne des signaux erronés, et le filtre d’amplitude de rupture peut être correctement relâché.

  2. Un seul RSI peut générer des erreurs de jugement et peut être combiné avec d’autres indices pour le filtrage.

  3. Dans les conditions de choc, il est possible de faire des positions ouvertes et fermées fréquemment, les coûts de transaction sont plus élevés, il est possible de relâcher de manière appropriée la plage de valeur normale du RSI et de réduire la fréquence des transactions.

  4. Une mauvaise configuration des paramètres peut entraîner des omissions ou des désordres. Les paramètres doivent être choisis raisonnablement en fonction des différentes variétés.

Direction d’optimisation

  1. Optimiser automatiquement les paramètres RSI à l’aide de l’apprentissage automatique.

  2. Augmenter les stratégies de stop-loss pour bloquer les bénéfices et réduire les pertes.

  3. Le filtrage combiné avec d’autres indicateurs améliore la stabilité de la stratégie.

  4. Augmenter les indices de volatilité et réduire les positions en cas de faible volatilité.

  5. Optimiser les algorithmes de positionnement pour adapter la dynamique des positions aux différents environnements du marché.

Résumer

Cette stratégie, combinée à un jugement de tendance et à un filtrage d’indicateurs, permet d’identifier efficacement les perturbations de prix près des niveaux critiques et d’obtenir des bénéfices plus élevés en maîtrisant les risques. La stabilité et l’adaptabilité de la stratégie peuvent être encore améliorées en optimisant davantage les paramètres de configuration, en augmentant les arrêts de perte et en introduisant plus d’indicateurs, etc., ce qui lui permet de générer des gains stables sur un marché plus large.

Code source de la stratégie
/*backtest
start: 2022-10-26 00:00:00
end: 2023-11-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=2
strategy(title = "Noro's Levels+RSI Strategy v1.0", shorttitle = "Levels+RSI str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 3)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
tf = input('W', title = "timeframe 1")
src = input(ohlc4, "Source")
ap = input(true, defval = true, title = "antipila")
cf = input(true, defval = true, title = "color filter")
rsiperiod = input(7, defval = 7, minval = 2, maxval = 100, title = "RSI Period")
rsilimit = input(30, defval = 30, minval = 1, maxval = 50, title = "RSI Limit")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Level
level = request.security(syminfo.tickerid, tf, src[1])
plot(level, linewidth = 3, color = silver)

//RSI
uprsi = rma(max(change(close), 0), rsiperiod)
dnrsi = rma(-min(change(close), 0), rsiperiod)
rsi = dnrsi == 0 ? 100 : uprsi == 0 ? 0 : 100 - (100 / (1 + uprsi / dnrsi))

//Level Signals
ls = close > level and ap == false ? true : low > level ? true : false
up1 = strategy.position_size == 0 and ls and (close < open or cf == false)
exit1 = close < level and ap == false ? true : high < level ? true : false 

//RSI Signal

up2 = rsi < rsilimit and (close < open or cf == false)
exit2 = rsi > rsilimit and ls == false

//Trading
lot = strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1]

if up1 or up2 
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot)
    
if  (exit1 and rsi > rsilimit) or exit2
    strategy.close_all()