Stratégie de rupture de l'indice de résistance à la survente

Auteur:ChaoZhang est là., Date: le 26 septembre 2023 16:11:55
Les étiquettes:

Résumé

Cette stratégie utilise l'indicateur RSI pour déterminer si une crypto-monnaie est survendue, et achète lorsque le RSI est inférieur à 30, ce qui est considéré comme survendu.

Comment fonctionne- t- il?

  1. L'indicateur RSI mesure la vitesse et l'ampleur des variations de prix pour déterminer si un actif est suracheté ou survendu.

  2. Lorsque le RSI tombe en dessous de 30, la stratégie entre dans une position longue, en pariant sur un renversement de tendance.

  3. Une fois la position ouverte, un stop loss et un take profit sont définis. Le stop loss est défini à 1% en dessous du prix d'entrée. Le take profit est défini à 7% au-dessus du prix d'entrée.

  4. Si le prix tombe en dessous du stop loss, la position est fermée.

Analyse des avantages

  1. L'utilisation de l'indicateur de volatilité pour identifier les conditions de survente fournit de bons points d'entrée à des niveaux relativement bas.

  2. Le stop loss serré contrôle le risque par transaction.

  3. Les bénéfices de prise sont bloqués dans les bénéfices de grands mouvements à la hausse.

  4. Cette stratégie a un fort contrôle du tirage et un risque globalement plus faible.

Analyse des risques

  1. Les signaux de survente du RSI ne conduisent pas toujours à un renversement, les prix pourraient continuer à baisser, conduisant à un stop loss.

  2. Le stop loss peut être trop serré, ce qui conduit à des stops prématurés si le drawdown est important.

  3. Le bénéfice peut être trop important, fermant les bénéfices plus tôt et ne laissant pas les gagnants courir.

  4. La stratégie pourrait faire face à de grandes pertes lors de marchés latéraux agités.

Optimisation

  1. La combinaison du RSI avec d'autres indicateurs tels que le KDJ pourrait améliorer la précision du signal et éviter les faux signaux.

  2. Optimiser les pourcentages de stop loss et de profit basés sur la volatilité des différentes pièces.

  3. Je teste différents paramètres pour trouver des combinaisons optimales.

  4. Optimisation du dimensionnement de la position basée sur les résultats des tests antérieurs.

Conclusion

Dans l'ensemble, il s'agit d'une stratégie de rupture de survente assez robuste. Prendre des positions après la survente des signaux RSI fournit de bons points d'entrée à des prix relativement bas. Les mécanismes de stop loss et take profit aident à contrôler le risque et à verrouiller les bénéfices. Les retraits sont gérables, ce qui le rend approprié pour les avoirs à plus long terme. Les paramètres peuvent être optimisés en fonction des conditions changeantes du marché pour une meilleure performance.


/*backtest
start: 2023-09-18 00:00:00
end: 2023-09-25 00:00:00
period: 15m
basePeriod: 5m
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/
// © brodieCoinrule

//@version=4
strategy(shorttitle='Oversold RSI with tight SL',title='Oversold RSI with tight SL Strategy (by Coinrule)', overlay=true, initial_capital = 1000, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 50, commission_type=strategy.commission.percent, commission_value=0.1)
//Backtest dates
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2020, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => true       // create function "within window of time"

perc_change(lkb) =>
    overall_change = ((close[0] - close[lkb]) / close[lkb]) * 100



// RSI inputs and calculations
lengthRSI = 14
RSI = rsi(close, lengthRSI)
oversold= input(30)


//Entry 
strategy.entry(id="long", long = true, when = RSI< oversold and window())

//Exit
Stop_loss= ((input (1))/100)
Take_profit= ((input (7)/100))

longStopPrice  = strategy.position_avg_price * (1 - Stop_loss)
longTakeProfit = strategy.position_avg_price * (1 + Take_profit)

strategy.close("long", when = close < longStopPrice or close > longTakeProfit and window())



Plus de