RSI MACD Crossover Stratégie de suivi de la double MA

Auteur:ChaoZhang est là., Date: 2023-10-23 à 17h44
Les étiquettes:

img

Résumé

Cette stratégie combine l'indicateur RSI, l'indicateur MACD et les doubles moyennes mobiles pour obtenir des effets de suivi de tendance et de positionnement sur le marché de la volatilité.

La logique de la stratégie

  1. Calcul de l'indicateur RSI pour le surachat et le survente
  • Calcul de la variation des prix tendance haussière et tendance baissière

  • Calcul de l'indice de rentabilité basé sur la variation des prix

  • Déterminer les niveaux de surachat et de survente

  1. Calcul du MACD pour le croisement
  • Calculer le MA rapide, le MA lent et la ligne de signal

  • Entrez sur la croix dorée et sortez sur la croix de la mort.

  • Tracer les situations de croisement

  1. Mettre en place un double filtre MA
  • Calculer les moyennes mobiles rapides et lentes

  • Ne considérer la négociation que lorsque l'AM rapide dépasse l'AM lente

  • Filtrer le bruit et suivre la tendance

  1. Indicateurs combinés pour l'entrée
  • Filtrez le signal d'entrée avec RSI, MACD et double MA

  • Améliorer la précision et la stabilité de la stratégie

Analyse des avantages

  • La combinaison de plusieurs indicateurs améliore la précision

  • La tendance suivante filtre le bruit et améliore la stabilité

  • L'indicateur RSI détecte les points de renversement potentiels

  • Le croisement MACD fournit des signaux d'entrée et de sortie simples

  • La double MA élimine la plupart des opérations de contre-tendance

  • Facile à comprendre avec peu de paramètres, bon pour apprendre

Analyse des risques

  • Risque de suradaptation avec plusieurs indicateurs

  • Le double MA sacrifie la souplesse et peut manquer des occasions

  • Les paramètres RSI et MACD doivent être soigneusement sélectionnés

  • Faites attention au stop loss basé sur le symbole

  • Requiert un réajustement périodique des paramètres

Directions d'optimisation

  • Ajuster les paramètres du RSI pour différents symboles

  • Optimiser les périodes de double MA pour un meilleur suivi

  • Ajouter un stop loss pour contrôler les pertes de transaction unique

  • Incorporer plus d'indicateurs pour enrichir la combinaison

  • Développer un modèle de paramètre adaptatif pour le réglage automatique

Résumé

Cette stratégie combine RSI, MACD et double MA pour identifier et suivre les tendances, et filtre les signaux à travers plusieurs couches. Elle est très adaptée aux débutants pour apprendre et s'améliorer. L'avantage réside dans sa simplicité et son adaptabilité.


/*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)
    



Plus de