Stratégie d'inversion de la moyenne mobile

Auteur:ChaoZhang est là., Date: 2024-02-19 14:59:10
Les étiquettes:

img

Résumé

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.

Principe de stratégie

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.

Analyse des avantages

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.

Analyse des risques

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.

Direction de l'optimisation

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.

Résumé

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)



Plus de