Stratégie d'inversion de la moyenne mobile Momentum


Date de création: 2024-02-19 14:59:10 Dernière modification: 2024-02-19 14:59:10
Copier: 4 Nombre de clics: 622
1
Suivre
1617
Abonnés

Stratégie d’inversion de la moyenne mobile Momentum

Aperçu

L’idée centrale de cette stratégie est de combiner l’indicateur RSI et les moyennes mobiles pour rechercher des opportunités de reprise du prix des actions et réaliser des ventes à bas prix. Lorsque l’indicateur RSI montre que les actions sont en survente et que les prix traversent en dessous de la moyenne mobile à court terme, comme signal d’achat. Après avoir mis en place des arrêts et des arrêts, attendez que le prix revienne à la hausse.

Principe de stratégie

La stratégie utilise principalement l’indicateur RSI pour déterminer les surventes et les surachats, ainsi que la fourchette dorée des moyennes mobiles pour déterminer la tendance des prix. Plus précisément, l’indicateur RSI permet de déterminer efficacement si une action est survendue ou surachetée.

Par conséquent, lorsque le RSI est inférieur à 40, c’est-à-dire proche d’une situation de survente, et que le 9e jour de la traversée des prix sous la moyenne mobile, il peut être jugé comme un moment où le prix de l’action peut se retourner.

Analyse des avantages

Cette stratégie, combinée à l’indicateur RSI et à la moyenne mobile, permet de déterminer efficacement le moment de l’achat. Comparé à un seul jugement de survente, la détermination conditionnelle de la moyenne mobile est augmentée, évitant ainsi les fluctuations de la zone de survente. Le paramètre de stop loss est flexible et peut varier selon les personnes.

Analyse des risques

La stratégie dépend de paramètres tels que le seuil de jugement RSI, la fenêtre de temps des moyennes mobiles, etc. Des paramètres différents peuvent entraîner des résultats différents.

En outre, les frais de transaction peuvent également avoir un impact sur les bénéfices. L’ajout de modules de volume de transaction ou de gestion de fonds peut être envisagé ultérieurement pour optimiser.

Direction d’optimisation

Il est possible de considérer l’ajustement dynamique des paramètres de la moyenne mobile, en choisissant différents paramètres pour différentes périodes; ou d’introduire d’autres jugements d’indicateurs, tels que KDJ, MACD, etc., pour former un jugement global multiconditionnel.

Il est également possible d’établir des modules de volume de transactions ou de gestion de fonds pour contrôler le pourcentage de capital utilisé par une seule transaction et réduire l’impact des pertes individuelles.

Résumer

Dans l’ensemble, la stratégie utilise l’indicateur RSI et la moyenne mobile pour déterminer le moment de l’achat, ce qui permet de juger efficacement le renversement des prix et d’acheter en cas de survente, avec un taux de réussite plus élevé. La combinaison d’un stop-loss pour bloquer les bénéfices peut être plus efficace.

Code source de la stratégie
/*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)