L'idée de base de cette stratégie est de combiner l'indicateur RSI et la moyenne mobile pour trouver des opportunités d'inversions de prix des actions et atteindre l'achat bas et la vente élevée. Lorsque l'indicateur RSI montre que l'action est survendue et que la moyenne mobile à court terme traverse le prix, il sert de signal d'achat. Après avoir réglé le stop loss et le profit, attendez que le prix s'inverse vers le haut.
Cette stratégie utilise principalement l'indicateur RSI pour juger des conditions de survente et de surachat, et la croix d'or et la croix morte de la moyenne mobile pour déterminer les tendances des prix. Plus précisément, l'indicateur RSI peut juger efficacement si un stock est survendu ou suracheté. Lorsque l'indicateur RSI est inférieur à 30, il est dans la plage de survente. Et lorsque la moyenne mobile à court terme (définie à 9 jours dans cette stratégie) traverse le prix, cela signifie que le prix est en baisse.
Ainsi, lorsque l'indicateur RSI est inférieur à 40, près de l'état de survente, et que la moyenne mobile de 9 jours traverse le prix, cela peut être jugé comme un moment possible pour que le prix de l'action s'inverse, en allant long pour acheter.
Cette stratégie combine l'indicateur RSI et la moyenne mobile, ce qui peut déterminer efficacement le moment de l'achat. Par rapport à un seul jugement de survente, le jugement de condition ajoutée de la moyenne mobile évite les fluctuations dans la zone de survente.
Cette stratégie repose sur des paramètres tels que le seuil de jugement RSI, la fenêtre de temps moyenne mobile, etc. Différents paramètres peuvent conduire à des résultats différents.
En outre, les frais de transaction auront également une certaine incidence sur les bénéfices.
Considérez l'ajustement dynamique des paramètres de la moyenne mobile, la sélection de différents paramètres pour différents cycles; ou l'introduction d'autres indicateurs à juger, tels que KDJ, MACD, etc., pour former un jugement global basé sur plusieurs conditions.
Il est également possible d'établir un module de volume de négociation ou de gestion des capitaux pour contrôler la proportion de fonds occupés par une seule transaction et réduire l'impact d'une seule perte.
En général, cette stratégie utilise des indicateurs RSI et des moyennes mobiles pour déterminer le timing d'achat et peut déterminer efficacement les renversements de prix.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-24 23:59:59 period: 30m basePeriod: 15m 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/ // © Coinrule //@version=4 strategy(shorttitle='MARSI',title='Moving Average', overlay=true, initial_capital=1000, default_qty_type = strategy.percent_of_equity, default_qty_value = 100) //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 //MA inputs and calculations inshort=input(9, title='MA short period') MAshort= sma(close, inshort) // RSI inputs and calculations lengthRSI = input(14, title = 'RSI period', minval=1) RSI = rsi(close, lengthRSI) //Entry strategy.entry(id="long", long = true, when = MAshort<close and RSI<40 and window()) //Exit longLossPerc = input(title="Long Stop Loss (%)", type=input.float, minval=0.0, step=0.1, defval=1.5) * 0.01 longTakePerc = input(title="Long Take Profit (%)", type=input.float, minval=0.0, step=0.1, defval=3) * 0.01 longSL = strategy.position_avg_price * (1 - longLossPerc) longTP = strategy.position_avg_price * (1 + longTakePerc) if (strategy.position_size > 0 and window()) strategy.exit(id="TP/SL", stop=longSL, limit=longTP) bgcolor(color = showDate and window() ? color.gray : na, transp = 90) plot(MAshort, color=color.purple, linewidth=4)