La stratégie MACD Valley Detector est une stratégie de trading basée sur l'indicateur MACD. La stratégie génère des signaux d'achat en détectant des vallées dans l'indicateur MACD. Lorsque l'indicateur MACD forme une vallée, la valeur MACD est inférieure ou égale à -0.4, et la différence entre le MACD et sa ligne de signal est inférieure à 0, la stratégie émet un signal d'achat et fixe un prix de prise de profit.
Le cœur de la stratégie du détecteur de vallée MACD est d'utiliser l'indicateur MACD pour capturer les opportunités d'inversion potentielles. L'indicateur MACD est calculé par la différence entre deux moyennes mobiles exponentielles (EMA), reflétant les changements de dynamique des prix.
La stratégie utilise les conditions suivantes pour déterminer la vallée MACD:
Lorsque les conditions ci-dessus sont remplies simultanément, la stratégie la considère comme une vallée MACD et émet un signal d'achat.
La stratégie MACD Valley Detector est une stratégie de trading basée sur la détection de vallées dans l'indicateur MACD. En capturant les vallées de l'indicateur MACD, la stratégie tente de trouver des opportunités de renversement potentielles et d'effectuer des achats. La stratégie utilise plusieurs conditions pour confirmer les signaux et définit un prix fixe de prise de profit. Bien que cette stratégie présente certains avantages, tels que l'utilisation de l'indicateur MACD largement utilisé et la confirmation multi-condition, elle présente également certains risques et limitations, tels que le retard, les paramètres fixes, l'absence de stop-loss clair, etc. Pour améliorer la stratégie, on peut envisager d'introduire un stop-loss dynamique, l'optimisation des paramètres, la combinaison avec d'autres indicateurs de filtrage et des méthodes dynamiques de prise de profit.
/*backtest start: 2024-03-12 00:00:00 end: 2024-04-11 00:00:00 period: 1h 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/ // © freditansari //@version=5 //@version=5 strategy("MACD Valley Detector", overlay=true) fastLength = input(12) slowlength = input(26) MACDLength = input(9) MACD = ta.ema(close, fastLength) - ta.ema(close, slowlength) aMACD = ta.ema(MACD, MACDLength) delta = MACD - aMACD rsi = ta.rsi(close, 14) atr = ta.atr(14) qty=1 takeProfitValue =7 // stopLossValue = 1 // close[0] < close[1] and close[1] > close[2] is_valley= delta[0] > delta[1] and delta[1]<delta[2]? 1:0 // plot(is_valley , "valley?") if(is_valley==1 and MACD<=-0.4 and delta <0) takeProfit = close +takeProfitValue action = "buy" // strategy.entry("long", strategy.long, qty=qty) // // strategy.exit("exit", "long", stop=stopLoss, limit=takeProfit) // strategy.exit("exit", "long", limit=takeProfit) alert('{"TICKER":"'+syminfo.ticker+'","ACTION":"'+action+'","PRICE":"'+str.tostring(close)+'","TAKEPROFIT":"'+str.tostring(takeProfit)+'","QTY":"'+str.tostring(qty)+'"}') if (ta.crossover(delta, 0)) stopLoss = low -0.3 takeProfit = high +0.3 strategy.entry("MacdLE", strategy.long,qty=qty, comment="MacdLE") strategy.exit("exit long", "MacdLE", limit=takeProfit) // strategy.exit("exit long", "MacdLE", stop=stopLoss, limit=takeProfit) if (ta.crossunder(delta, 0)) stopLoss = high + 0.3 takeProfit = low - 0.3 strategy.entry("MacdSE", strategy.short,qty=qty, comment="MacdSE") strategy.exit("exit long", "MacdLE", limit=takeProfit) // strategy.exit("exit short", "MacdSE", stop=stopLoss, limit=takeProfit) //plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)