Oscillateur de momentum avec stratégie de trading RSI


Date de création: 2023-09-18 14:07:51 Dernière modification: 2023-09-18 14:07:51
Copier: 0 Nombre de clics: 812
1
Suivre
1617
Abonnés

[[Chinois simplifié]

Aperçu

La logique de la stratégie est très directe, nous nous concentrons sur le fait que lorsque le prix de clôture touche la bande de Brin, il y a deux situations qui se produisent: le prix rebondit de la bande de Brin ou continue à baisser. Pour confirmer la tendance des prix, nous utilisons le deuxième indicateur RSI pour étudier davantage la tendance des prix. Par exemple, si le prix touche la bande de Brin mais que la valeur du RSI n’entre pas dans la zone de survente, nous pouvons juger que le prix continuera à baisser.

Nous avons besoin d’un arrêt de perte pour éviter de perdre beaucoup d’argent si le RSI reste trop longtemps dans la zone de survente.

La meilleure zone d’arrêt est celle où le prix rebondit au-dessus de la moyenne/haute de la courbe de Bolling ou où le RSI atteint la zone de survente, selon le cas.

Une entrée en série:

RSI < 30 et le cours de clôture est inférieur à Brin

Le défilé de plusieurs:

RSI > 70

Principe de stratégie

La stratégie commence par calculer l’indicateur RSI pour déterminer si le cours est en hausse ou en hausse en fixant une limite supérieure et une limite inférieure. Ensuite, elle calcule le milieu, le haut et le bas des bandes de Brin.

Lorsque vous entrez dans un lot, définissez un point d’arrêt. Le point d’arrêt est le prix d’entrée.(1 + taux fixe), le point de rupture est le prix d’entrée(1 - proportion fixe)

Ainsi, nous achetons à la baisse du RSI à proximité de la descente de Brin et vendons à la hausse du RSI, en profitant de la reprise de la transaction. En même temps, nous définissons un stop-loss pour contrôler le risque.

Analyse des avantages

  • L’utilisation de la courbe de Brin pour déterminer les points d’inflexion des prix augmente la précision
  • L’indicateur RSI filtre les fausses percées pour assurer la fiabilité de l’entrée
  • La mise en place d’un stop loss permet de mieux contrôler le risque d’une transaction
  • Les données de retour sont suffisantes, les paramètres sont ajustés et la rentabilité est stable

Analyse des risques

  • Les courbes de Brin ne peuvent pas prédire parfaitement les points de basculement des prix, il y a un certain taux d’échec
  • Il y a une probabilité que le RSI émette un faux signal
  • Le point de rupture est trop proche pour qu’une personne puisse détenir une position, ce qui augmente considérablement le risque

Il est possible de réduire le risque en ajustant les paramètres des bandes de Bryn, en choisissant d’utiliser d’autres indicateurs et en assouplissant de manière appropriée la zone de stop-loss.

Direction d’optimisation

  • On peut envisager de filtrer l’entrée en combinaison avec d’autres indicateurs tels que KD, MACD
  • Dynamique d’ajustement du ratio de stop-loss
  • Optimiser les paramètres de la bande de Bryn
  • Test de la robustesse des paramètres de différentes variétés commerciales

Résumer

La stratégie présente un bon équilibre entre les risques et les gains, et un bon rendement en termes de rétroaction. L’efficacité peut être encore améliorée par l’optimisation des paramètres et des indicateurs.

||

Overview

This strategy combines Bollinger Bands and the Relative Strength Index (RSI) indicator to predict price volatility and determine optimal entry points. The logic is straightforward - we watch for closing prices that touch the Bollinger lower band, after which there are two possible scenarios: either the price bounces back from the lower Bollinger band, or it continues falling. To confirm the price movement, we use a second indicator, RSI, to further investigate the trend. For example, if the price reaches the lower Bollinger band but the RSI value is not in oversold territory, we can conclude the price will continue down. If the RSI value is oversold, we can use this area as our entry point.

A stop loss is necessary to avoid losing too much capital if the RSI lingers too long in oversold territory.

The best take profit area is when the price rebounds back above the Bollinger middle band/upper band or when RSI reaches overbought levels, whichever comes first.

Long entry:

RSI < 30 and close price < Bollinger lower band

Long exit:

RSI > 70

Strategy Logic

The strategy first calculates the RSI indicator and sets upper/lower boundaries to determine overbought/oversold levels. It then calculates the Bollinger middle, upper and lower bands. When the closing price touches the lower band and RSI is below 30, go long. When RSI is above 70, close the position.

Upon entering long, set stop loss and take profit points. The take profit is set at entry price * (1 + fixed percentage), stop loss is set at entry price * (1 - fixed percentage).

This allows us to buy at Bollinger lower band when RSI is low and sell when RSI is high, profiting from the reversal. Stop loss and take profit control risk.

Advantage Analysis

  • Bollinger Bands determine reversal points accurately
  • RSI filters out false breakouts, ensuring reliable entry
  • Stop loss and take profit manage trade risk effectively
  • Extensive backtesting and parameter optimization ensure stable profitability

Risk Analysis

  • Bollinger Bands do not perfectly predict reversals, some failures occur
  • RSI can also give false signals
  • Stop loss too close cannot hold position, too loose increases risk

Risks can be mitigated by adjusting Bollinger parameters, using other indicators, and widening stop loss appropriately.

Optimization Directions

  • Consider combining with other indicators like KD, MACD to filter entries
  • Dynamically adjust stop loss/take profit percentages
  • Optimize Bollinger parameters
  • Test robustness across different products

Conclusion

The overall risk/reward profile of this strategy is balanced and backtest results are good. Further improvements can be made through parameter optimization and indicator enhancements. The reversal trading concept based on Bollinger Bands is simple and reliable, warranting further research and refinement.

[/trans]

Code source de la stratégie
/*backtest
start: 2023-09-10 00:00:00
end: 2023-09-17 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//strategy(title="Bollinger Band with RSI", shorttitle="BB&RSI", format=format.price, precision=2, pyramiding=50, initial_capital=10000, calc_on_order_fills=false, calc_on_every_tick=true, default_qty_type=strategy.cash, default_qty_value=1000, currency="USD")
len = input(14, minval=1, title="Length")
src = input(close, "Source", type = input.source)
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
plot(rsi, "RSI", color=#8E1599)
band1 = hline(70, "Upper Band", color=#C0C0C0)
band0 = hline(30, "Lower Band", color=#C0C0C0)
fill(band1, band0, color=#9915FF, transp=90, title="Background")

length_bb = input(20,title="BB Length", minval=1)
mult = input(2.0, minval=0.001, maxval=50, title="BB StdDev")
basis = sma(src, length_bb)
dev = mult * stdev(src, length_bb)
upper = basis + dev
lower = basis - dev
offset = input(0, "BB Offset", type = input.integer, minval = -500, maxval = 500)


Plot_PnL = input(title="Plot Cummulative PnL", type=input.bool, defval=false)
Plot_Pos = input(title="Plot Current Position Size", type=input.bool, defval=false)

long_tp_inp = input(10, title='Long Take Profit %', step=0.1)/100
long_sl_inp = input(25, title='Long Stop Loss %', step=0.1)/100
// Take profit/stop loss
long_take_level = strategy.position_avg_price * (1 + long_tp_inp)
long_stop_level = strategy.position_avg_price * (1 - long_sl_inp)

entry_long = rsi < 30 and src < lower
exit_long = rsi > 70

plotshape(entry_long, style=shape.labelup, color=color.green,  location=location.bottom, text="L", textcolor=color.white, title="LONG_ORDER")
plotshape(exit_long, style=shape.labeldown, color=color.red,  location=location.top, text="S", textcolor=color.white, title="SHORT_ORDER")

strategy.entry("Long",true,when=entry_long)    
strategy.exit("TP/SL","Long", limit=long_take_level, stop=long_stop_level)
strategy.close("Long", when=exit_long, comment="Exit")
plot(Plot_PnL ? strategy.equity-strategy.initial_capital : na, title="PnL", color=color.red)
plot(Plot_Pos ? strategy.position_size : na, title="open_position", color=color.fuchsia)