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é.
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
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
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
Filtrez le signal d'entrée avec RSI, MACD et double MA
Améliorer la précision et la stabilité de la stratégie
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
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
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
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)