Stratégie de suivi de la moyenne mobile double RSI MACD Crossover


Date de création: 2023-10-23 17:00:44 Dernière modification: 2023-10-23 17:00:44
Copier: 0 Nombre de clics: 824
1
Suivre
1617
Abonnés

Stratégie de suivi de la moyenne mobile double RSI MACD Crossover

Aperçu

Cette stratégie utilise l’indicateur RSI, l’indicateur MACD et la ligne de parité double pour réaliser l’effet de suivi de la tendance et de repérage de l’écart standard. La stratégie utilise l’indicateur RSI pour juger du phénomène de surachat et de surachat, le MACD pour juger du moment où il est possible d’acheter et de vendre, la ligne de parité double filtre certaines opportunités de négociation de bruit et profite de la tendance.

Principe de stratégie

  1. Calculer le RSI pour détecter un surachat ou une survente
  • Calculer la variation des hauts et des bas sur une période donnée

  • Calcul du RSI par variation à la baisse

  • Il est possible d’avoir un jugement de sur-achat.

  1. Calculer le jugement croisé de l’indice MACD
  • Calculer les lignes rapides, les lignes lentes et les lignes de signaux

  • Les achats et les ventes interlinéaires

  • Affichage de l’intersection

  1. Réalisez un filtrage bi-univoque
  • Calculer la ligne rapide, la ligne lente

  • Ne pensez à la transaction que lorsque vous êtes sur la ligne rapide

  • Mise en œuvre de filtres de suivi des tendances

  1. Combinaison de plusieurs critères d’admission
  • RSI, MACD et filtres à conditions multiples

  • Améliorer la stabilité des stratégies

Analyse des avantages

  • Une combinaison d’indicateurs pour une meilleure précision stratégique

  • Suivi des tendances, filtrage du bruit et amélioration de la stabilité

  • L’indicateur RSI peut aider à saisir les points de basculement en cas de sur-achat ou de survente

  • Le jugement croisé du MACD permet de juger facilement et efficacement les transactions.

  • Filtrage bi-homogène, éliminant la plupart des opportunités de trading dans les directions non-mainstream

  • Il est facile à comprendre, avec moins de paramètres, et convient aux débutants pour améliorer leur apprentissage.

Analyse des risques

  • Une combinaison de multiples indicateurs, susceptible d’entraîner une sur-optimisation des stratégies

  • Les deux lignes sont trop souples pour sacrifier certaines opportunités

  • Les paramètres du RSI et du MACD doivent être choisis avec prudence

  • Attention aux points de rupture des variétés négociées, maîtrise des risques

  • L’utilisation à long terme nécessite une adaptation répétée des paramètres au marché

Direction d’optimisation

  • Adaptation des paramètres du RSI en fonction des caractéristiques des différentes variétés

  • Adaptation des cycles bi-médianes pour optimiser le suivi des tendances

  • Adhésion à une stratégie de stop-loss pour contrôler les pertes individuelles

  • Une combinaison de plus d’indicateurs et de conditions plus riches

  • Modes d’adaptation des paramètres de développement et ajustement automatique des paramètres

Résumer

Cette stratégie utilise plusieurs indicateurs tels que le RSI, le MACD et le double équilibre, permet de juger et de suivre les tendances et de filtrer les opportunités en plusieurs niveaux. C’est une stratégie multicomposante très adaptée aux débutants pour apprendre et s’améliorer.

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

//@version=3

// strategy(title="RSI MACD", precision = 6, pyramiding = 1, default_qty_type = strategy.percent_of_equity, default_qty_value = 99, commission_type = strategy.commission.percent, commission_value = 0.25, initial_capital = 1000)

// Component Code Start
// Example usage:
// if testPeriod()
//   strategy.entry("LE", strategy.long)
testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(01, "Backtest Start Month")
testStartDay = input(2, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(7, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)

testPeriod() => true
// Component Code Stop

//standard rsi template
src = ohlc4, len = input(14, minval=1, title="Length")
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, color=#87ff1a)
band1 = hline(80)
band = hline(50)
band0 = hline(20)
fill(band1, band0, color=purple, transp=90)

//macd

fast_length = input(title="Fast Length",  defval=9)
slow_length = input(title="Slow Length",  defval=72)
signal_length = input(title="Signal Length",  defval=9)

fast_ma = sma(rsi, fast_length) 
slow_ma = sma(rsi, slow_length) 
shortma = sma(ohlc4, fast_length)
longma = sma(ohlc4, slow_length)
controlmainput = input(title = "Control MA", defval = 234)
controlma = sma(ohlc4, controlmainput)
macdx = fast_ma - slow_ma
signalx = sma(macdx, signal_length)
hist = macdx - signalx
ma_hist = shortma - controlma
macd = macdx + 50
signal = signalx + 50

plot(macd,"macd", color = fuchsia)
plot(hist,"hist", style = histogram, color = fuchsia)
//plot(ma_hist,"ma hist", style = histogram, color = orange)
plot(signal,"signal", color = white)

//input
control_buy_toggle = input(true, "Buy on crossover control MA?", type = bool)
buy_on_control = control_buy_toggle == true? true : false

//conditions
buy = buy_on_control == true? ma_hist > 0 and shortma > longma and crossover(macd,signal) or crossover(shortma, controlma) : ma_hist > 0 and shortma > longma and crossover(macd,signal)
sell = ma_hist > 0 and shortma > longma and crossunder(macd,signal)
stop = crossunder(shortma, longma) or crossunder(shortma, controlma)

plotshape(buy,"buy", shape.triangleup, location.bottom, green, size = size.tiny)
plotshape(sell,"sell", shape.triangledown, location.bottom, red, size = size.tiny)
plotshape(stop,"stop",shape.circle,location.bottom, white, size = size.tiny)

if testPeriod()
    strategy.entry("buy", true, when = buy, limit = close)
    strategy.close("buy", when = sell)
    strategy.close("buy", when = stop)