Cette stratégie combine les niveaux de support/résistance dynamiques et l'indicateur de force relative (RSI). Elle fixe des seuils de surachat/survente pour le RSI et génère des signaux d'achat/vente lorsque le prix dépasse les niveaux de support/résistance dynamiques alors que le RSI n'est pas dans la zone de surachat/survente.
1. Soutien/résistance dynamique
Utilisez la fonction de sécurité pour obtenir le prix de clôture en tant que niveaux de support/résistance dynamiques.
2. Indicateur RSI
Calculer le gain moyen et la perte moyenne sur une certaine période pour générer des valeurs de l'indice de volatilité et déterminer si l'indice de volatilité atteint la zone de surachat/survente.
3. Les signaux commerciaux
Lorsque le prix dépasse les niveaux dynamiques, si le RSI n'est pas dans la zone de surachat/survente, des signaux d'achat/vente sont générés. Sinon, les signaux de rupture sont ignorés.
4. Signaux de sortie
Fermez les positions lorsque le prix retombe au niveau dynamique ou lorsque l'indice RSI revient à une fourchette normale.
Utilisez un support/résistance dynamique pour déterminer la direction de la tendance pour un taux de gain plus élevé.
RSI filtre les fausses fuites et évite les fausses entrées.
La combinaison de tendance et d'indicateur rend la stratégie adaptable aux différentes conditions du marché.
Des règles simples et claires le rendent facile à mettre en œuvre.
Des tests multiples de niveaux dynamiques peuvent générer de faux signaux.
L'indicateur RSI solo peut entraîner une erreur de jugement.
La fréquence de négociation sur le marché de la fourchette entraîne des coûts plus élevés.
Des paramètres incorrects entraînent des signaux manquants ou faux.
Utilisez l'apprentissage automatique pour optimiser automatiquement les paramètres RSI.
Ajoutez une stratégie stop loss/profit taking pour verrouiller les bénéfices et réduire les pertes.
Incorporer davantage d'indicateurs pour le filtrage combiné afin d'améliorer la stabilité.
L'indicateur de volatilité est ajouté à la taille de position inférieure lorsque la volatilité est faible.
Optimiser l'algorithme de dimensionnement des positions afin d'ajuster dynamiquement les positions pour différents environnements de marché.
Cette stratégie combine le jugement de tendance et le filtrage des indicateurs pour identifier efficacement l'inversion de tendance autour des niveaux clés tout en contrôlant les risques.
/*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()