Modèle haussier de la stratégie RSI et RSI lissé


Date de création: 2024-03-01 12:11:58 Dernière modification: 2024-03-01 12:11:58
Copier: 0 Nombre de clics: 739
1
Suivre
1617
Abonnés

Modèle haussier de la stratégie RSI et RSI lissé

Aperçu

La stratégie cherche des opportunités d’achat au bas des prix en combinant l’indicateur RSI avec l’indicateur RSI en aplatissement. Lorsque l’indicateur RSI est innovant et que le prix n’est pas innovant, il est considéré comme un signal de segmentation à plusieurs têtes.

Principe de stratégie

  1. Calculer le RSI avec le paramètre de la ligne 14.
  2. Calculer l’indicateur RSI pour obtenir un effet d’aplatissement avec une moyenne WMA double.
  3. Si le RSI est inférieur à 30, c’est un oversold.
  4. Le RSI de la fluidité est inférieur à 35 et est fortement directionnel.
  5. Déterminez si le RSI est inférieur à 25.
  6. Calculer le type de RSI, c’est-à-dire rechercher des situations où le RSI est bas et le prix n’est pas bas.
  7. Pour calculer le cycle de baisse du RSI, il faut atteindre 3 jours.
  8. Un signal d’achat est généré lorsque les conditions ci-dessus sont remplies.
  9. Définition des conditions de stop-loss et d’arrêt.

Cette stratégie s’appuie principalement sur la nature inverse de l’indicateur RSI, combinée à une tendance de jugement RSI à l’aplatissement, en achetant lorsque le RSI est en survente alors que le prix est sous pression.

Analyse des forces stratégiques

  1. Une combinaison de deux indices RSI pour améliorer l’efficacité de la stratégie.
  2. L’indicateur RSI a un avantage de probabilité en utilisant le caractère inversé de l’indicateur.
  3. Un RSI lisse peut aider à éviter les faux retournements.
  4. La logique complète d’arrêt-d’arrêt permet de limiter les risques.

Analyse des risques

  1. La probabilité d’un renversement du RSI ne peut pas être totalement évitée.
  2. L’indicateur RSI est à la traîne et risque de manquer le meilleur moment pour acheter.
  3. Le stop loss est trop lâche et le risque d’augmentation des pertes augmente.

Il est possible d’optimiser le moment d’achat en ajustant les paramètres du RSI. Il est possible de raccourcir de manière appropriée l’intervalle d’arrêt et d’accélérer la vitesse d’arrêt. En combinaison avec d’autres indicateurs, il est possible de juger du risque de tendance et de réduire la probabilité de faux retournement.

Direction d’optimisation

  1. L’effet de l’indicateur RSI peut être testé avec différents paramètres.
  2. Optimiser la méthode de calcul du RSI pour améliorer la qualité de l’assouplissement.
  3. Ajuster le point d’arrêt pour trouver le meilleur rapport risque/rendement.
  4. Il est important d’augmenter les capacités de jugement et d’indicateurs quantitatifs afin d’éviter les situations de manque de capacités.

L’efficacité de la stratégie de trading peut être encore améliorée en ajustant les paramètres et en combinant plus d’indicateurs.

Résumer

L’ensemble de la stratégie est une stratégie qui utilise les caractéristiques de l’inversion du RSI. La combinaison de deux indicateurs RSI tire pleinement parti de l’effet de l’inversion du RSI, tout en augmentant l’incertitude causée par la divergence des indicateurs. L’ensemble est une stratégie d’indicateur typique.

Code source de la stratégie
/*backtest
start: 2024-01-30 00:00:00
end: 2024-02-29 00:00:00
period: 1m
basePeriod: 1m
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/
// © BigBitsIO

//@version=4
strategy(title="RSI and Smoothed RSI Bull Div Strategy [BigBitsIO]", shorttitle="RSI and Smoothed RSI Bull Div Strategy [BigBitsIO]", overlay=true, pyramiding=1, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=.1, slippage=0)


TakeProfitPercent = input(3, title="Take Profit %", type=input.float, step=.25)
StopLossPercent = input(1.75, title="Stop Loss %", type=input.float, step=.25)

RSICurve = input(14, title="RSI Lookback Period", type=input.integer, step=1)
BuyBelowTargetPercent = input(0, title="Buy Below Lowest Low In RSI Divergence Lookback Target %", type=input.float, step=.05)
BuyBelowTargetSource = input(close, title="Source of Buy Below Target Price", type=input.source)
SRSICurve = input(10, title="Smoothed RSI Lookback Period", type=input.integer, step=1)
RSICurrentlyBelow = input(30, title="RSI Currently Below", type=input.integer, step=1)
RSIDivergenceLookback = input(25, title="RSI Divergence Lookback Period", type=input.integer, step=1)
RSILowestInDivergenceLookbackCurrentlyBelow  = input(25, title="RSI Lowest In Divergence Lookback Currently Below", type=input.integer, step=1)
RSISellAbove = input(65, title="RSI Sell Above", type=input.integer, step=1)
MinimumSRSIDownTrend = input(3, title="Minimum SRSI Downtrend Length", type=input.integer, step=1)
SRSICurrentlyBelow = input(35, title="Smoothed RSI Currently Below", type=input.integer, step=1)

PlotTarget = input(false, title="Plot Target")


RSI = rsi(close, RSICurve)
SRSI = wma(2*wma(RSI, SRSICurve/2)-wma(RSI, SRSICurve), round(sqrt(SRSICurve))) // Hull moving average

SRSITrendDownLength = 0
if (SRSI < SRSI[1])
    SRSITrendDownLength := SRSITrendDownLength[1] + 1

// Strategy Specific
ProfitTarget = (close * (TakeProfitPercent / 100)) / syminfo.mintick
LossTarget = (close * (StopLossPercent / 100)) / syminfo.mintick
BuyBelowTarget = BuyBelowTargetSource[(lowestbars(RSI, RSIDivergenceLookback)*-1)] - (BuyBelowTargetSource[(lowestbars(RSI, RSIDivergenceLookback)*-1)] * (BuyBelowTargetPercent / 100))

plot(PlotTarget ? BuyBelowTarget : na)



bool IsABuy = RSI < RSICurrentlyBelow and SRSI < SRSICurrentlyBelow and lowest(SRSI, RSIDivergenceLookback) < RSILowestInDivergenceLookbackCurrentlyBelow and BuyBelowTargetSource < BuyBelowTarget and SRSITrendDownLength >= MinimumSRSIDownTrend and RSI > lowest(RSI, RSIDivergenceLookback)
bool IsASell = RSI > RSISellAbove

if IsABuy
    strategy.entry("Positive Trend", true) // buy by market
    strategy.exit("Take Profit or Stop Loss", "Positive Trend", profit = ProfitTarget, loss = LossTarget)
if IsASell
    strategy.close("Positive Trend")