
La stratégie de négociation MACD Dynamic Stoch RSI est une stratégie de négociation quantitative qui utilise les trois indicateurs MACD, Dynamic et Stoch RSI pour juger. La stratégie s’applique principalement à la négociation de la ligne solaire de Bitcoin et d’Ethereum.
La stratégie se base sur les critères suivants:
Indicateur MACD: cycle SMA rapide de 50, cycle SMA lent de 200, représentant les lignes de 50 et 200 jours couramment utilisées sur le marché.
Indicateur de dynamique auto-créééé: essentiellement similaire à l’indicateur de Stoch, utilisé pour juger de la direction de la dynamique à court terme du marché.
Le StochRSI est un indicateur de la force et de la survente du marché.
Lorsqu’on entre dans une position à plusieurs têtes, il est nécessaire de satisfaire simultanément aux trois conditions suivantes: MACD> 0 (représentant une tendance à la hausse à moyen et long terme), indicateur de volume de créativité propre> 0 (représentant une tendance à la hausse à court terme) et cours de clôture plus élevé que la veille (représentant une tendance à la hausse actuelle).
Le signal pluriel plat est un peu compliqué, il nécessite de satisfaire simultanément aux 4 conditions suivantes: MACD < 0, indice de créativité automatique < 0, prix de clôture en baisse par rapport à la veille et StochRSI > 20.
Cette stratégie, qui analyse les tendances à moyen et long terme, la dynamique à court terme et les tendances actuelles, est un système de rupture plutôt robuste.
Les résultats de l’enquête ont été publiés dans la revue de l’OMS.
Les paramètres MACD ont été choisis en tenant compte des lignes de 50 et 200 jours, qui sont importantes pour le marché
Après avoir testé les variations des paramètres des indicateurs, l’efficacité de la stratégie n’a pas beaucoup changé, évitant ainsi le risque de suradaptation.
Les données de détection sont suffisantes et fiables
Les systèmes de piratage sont vulnérables à l’arbitrage, ce qui peut augmenter le nombre de transactions et le coût des points de glissement.
La complexité des jugements multi-indicateurs intégrés est élevée, les paramètres sont difficiles à ajuster et à optimiser
Les opérations sur des lignes courtes pendant la journée sont plus risquées
En plus d’autres indicateurs, comme l’analyse du volume des transactions
Ajout d’algorithmes d’apprentissage automatique pour optimiser les paramètres dynamiques
Réduire la fréquence des transactions et passer à des cycles plus élevés pour juger
La stratégie de négociation MACD dynamique StochRSI de Moon Flag comprend plusieurs indicateurs permettant de juger de la tendance et de la force du marché. Il est de meilleure qualité et de plus grande fiabilité. Il convient aux traders expérimentés en quantification pour l’application et l’optimisation sur des monnaies numériques de haute qualité.
/*backtest
start: 2023-02-16 00:00:00
end: 2024-02-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// // © MoonFlag
//@version=5
strategy("MoonFlag 1D MACD Momentum StochRSI Strategy", max_bars_back=500, overlay=false, initial_capital=5000, default_qty_type=strategy.percent_of_equity, default_qty_value=80, pyramiding=0, calc_on_order_fills=true)
d(gaps_1, data)=>
float out = 0.
out :=(ta.wma(ta.wma(ta.wma(data, math.round(((1 * gaps_1) - math.round((1 * gaps_1) / 3)) / 2)), math.round((1 * gaps_1) / 3)) , int(((1 * gaps_1) - math.round((1 * gaps_1) / 3)) / 2)))
out
MoonFlagAverage(gaps_1,data)=>
float out = 0.
out:=d(gaps_1,d(gaps_1, d(gaps_1, data)))
out
fastLength = input.int(50, "MACD SMA Fast Length")
slowlength = input.int(200, "MACD SMA Slow Length")
MACDLength = 9//input.int(9, "MACD Length")
MACD = ta.ema(close, fastLength) - ta.ema(close, slowlength)
aMACD = ta.sma(MACD, MACDLength)
MACDdelta = MACD - aMACD
//plot (MACD, "MACD1", color.red)
//plot (aMACD, "aMACD1", color.green)
//plot (delta, "MACD delta", color.white)
fastLength2 = input.int(12, "MoonFlag Momentum Length")
slowlength2 = 2*fastLength2//input.int(50, "MoonFlag Momentum Slow Length")
MACDLength2 = 20//input.int(20, "Momentum Delta")
MoonFlag_MACD2 = MoonFlagAverage(fastLength2, close) - MoonFlagAverage(slowlength2,close)
MoonFlag_aMACD2 = MoonFlagAverage(MACDLength2, MoonFlag_MACD2)
MoonFlag_delta = MoonFlag_MACD2 - MoonFlag_aMACD2
MoonFlag_delta_line=0
if MoonFlag_delta < 0
MoonFlag_delta_line:=-100
else
MoonFlag_delta_line:=100
//plot (MoonFlag_MACD2, "MoonFlag Momentum Fast Length", color.red)
//plot (MoonFlag_aMACD2, "MoonFlag Momentum Slow Length", color.green)
//plot (MoonFlag_delta2, "MoonFlag Delta", color.white)
uptrend = (close + high)/(close[1] + high[1])
downtrend = (close + low)/(close[1] + low[1])
lineColor = color.green
if uptrend > 1
lineColor := color.green
if downtrend < 1
lineColor := color.red
smoothK = 2//input.int(2, minval=1, title="K smoothing Stoch RSI")
smoothD = 3//input.int(3, minval=1, title= "D smoothing for Stoch RSI")
lengthRSI = 7//input.int(7, minval=1, title="RSI Length")
lengthStoch = 8//input.int(8, minval=1, title="Stochastic Length")
src = close//input(close, title="RSI Source")
rsi1 = ta.rsi(src, lengthRSI)
k = ta.sma(ta.stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
StochRSI = ta.sma(k, smoothD)
MACDdirection_line = 0
MACDdirection_line := MACDdirection_line[1]
if (MACDdelta > 0)
MACDdirection_line := 50
if (MACDdelta < 0)
MACDdirection_line := -50
useStochRSI = input.bool(true,"Include Condition (StochRSI > 20) with Exit Long/Enter Short")
StochRSI_val = 20//input.int(20,"StochRSI greater than to exit short")
h1 = hline(StochRSI_val)
StochRSIGreaterThanSetValue = true
if useStochRSI
if (StochRSI > StochRSI_val)
StochRSIGreaterThanSetValue := true
else
StochRSIGreaterThanSetValue := false
stoch20 = lineColor
if StochRSI < StochRSI_val
stoch20 := color.white
yearin = input.int(2019, title="Start backtesting from year:")
includeShorts = false//input.bool(false, "Include Shorts")
plot(MoonFlag_delta_line,"MoonFlag Momentum Direction", color.white)
plot(MACDdirection_line,"MACD Direction", color = color.orange)
plot(StochRSI, "StochRSI", color=lineColor)
if (year>=yearin)
if (MACDdelta > 0) and (uptrend > 1) and MoonFlag_delta_line > 0
strategy.entry("buy2", strategy.long, comment="buy")
if (MACDdelta < 0) and (downtrend < 1) and MoonFlag_delta_line < 0 and StochRSIGreaterThanSetValue
if includeShorts
strategy.entry("sell", strategy.short, comment="sell")
else
strategy.close("buy2", comment = "sell")