Cette stratégie optimise les paramètres de l'indicateur MACD, se combine avec la moyenne mobile, l'action des prix et des temps de négociation spécifiques pour obtenir une stratégie de trading forex à taux de gain élevé.
Utilisez 3 lignes K pour juger de l'évolution des prix. Si les prix de clôture des 3 dernières lignes K sont supérieurs aux prix d'ouverture, il est jugé comme une tendance à la hausse; si les prix de clôture des 3 dernières lignes K sont inférieurs aux prix d'ouverture, il est jugé comme une tendance à la baisse.
Calculez la différence entre la ligne rapide, la ligne lente et le MACD. Le paramètre de la ligne rapide est 12, le paramètre de la ligne lente est 26 et le paramètre de la ligne de signal est 9.
L'heure de négociation est fixée à 09h00-09h15 tous les jours.
Le profit est fixé à 0,3 pips, et le stop loss est fixé à 100 pips.
Fermez toutes les positions entre 21h00 et 21h15.
Utilisation d'une combinaison d'indicateurs à plusieurs délais pour évaluer de manière exhaustive la direction de la tendance et améliorer la précision des décisions.
Optimiser le temps de négociation pour éviter les périodes de forte volatilité du marché, réduisant ainsi le risque inutile d'arrêt des pertes.
Mettre en place des ratios raisonnables pour prendre des bénéfices et arrêter les pertes afin de maximiser le verrouillage des bénéfices et d'éviter un grossissement des pertes.
Dans l'ensemble, la stratégie présente un taux de gain très élevé et convient à des transactions fréquentes à court terme.
L'heure de négociation est relativement fixe, peut manquer des opportunités de négociation si elle ne peut pas entrer sur le marché à temps.
L'indicateur MACD est sujet à des signaux trompeurs.
Les paramètres doivent être ajustés en fonction des différents produits.
Le risque global est faible, mais des positions trop importantes sous un effet de levier élevé peuvent toujours entraîner d'énormes pertes.
Combiner avec d'autres indicateurs pour déterminer la tendance, en évitant les signaux trompeurs du MACD. Par exemple, combiner les bandes de Bollinger, le RSI, etc.
Optimiser les ratios profit/stop loss en calculant les paramètres optimaux à partir des données de backtest.
Élargir les variétés commerciales applicables à la stratégie, évaluer les effets de réglage des paramètres sur différents produits.
Introduction d'algorithmes d'apprentissage automatique pour sélectionner dynamiquement les paramètres optimaux en fonction des différentes conditions du marché.
Dans l'ensemble, cette stratégie convient bien aux traders novices. La logique est claire, l'espace d'optimisation est grand et les risques sont contrôlables. En personnalisant les temps d'ouverture et en définissant des ratios de perte de profit raisonnables, des rendements élevés peuvent être obtenus. D'autres optimisations peuvent être effectuées pour ajuster dynamiquement les paramètres et s'adapter à des environnements de marché plus complexes.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 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/ // © exlux99 //@version=4 strategy("Very high win rate strategy", overlay=true) // fast_length =12 slow_length= 26 src = close signal_length = 9 sma_source = false sma_signal = false // Calculating fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length) slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length) macd = fast_ma - slow_ma signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length) hist = macd - signal //ma len=10 srca = input(close, title="Source") out = hma(srca, len) fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) fromYear = input(defval = 2000, title = "From Year", minval = 1970) //monday and session // To Date Inputs toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31) toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12) toYear = input(defval = 2021, title = "To Year", minval = 1970) startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00) finishDate = timestamp(toYear, toMonth, toDay, 00, 00) time_cond = true timeinrange(res, sess) => time(res, sess) != 0 // = input('0900-0915', type=input.session, title="My Defined Hours") myspecifictradingtimes = '0900-0915' exittime = '2100-2115' optionmacd=true entrytime = time(timeframe.period, myspecifictradingtimes) != 0 exit = time(timeframe.period, exittime) != 0 if(time_cond and optionmacd ) if(close > open and close[1] > open[1] and close[2] > open[2] and entrytime and crossover(hist,0)) strategy.entry("long",1) if(close< open and close[1] < open[1] and close[2] < open[2] and entrytime and crossunder(hist,0)) strategy.entry("short",0) tp = input(0.0003, title="tp") //tp = 0.0003 sl = input(1.0 , title="sl") //sl = 1.0 strategy.exit("closelong", "long" , profit = close * tp / syminfo.mintick, loss = close * sl / syminfo.mintick, alert_message = "closelong") strategy.exit("closeshort", "short" , profit = close * tp / syminfo.mintick, loss = close * sl / syminfo.mintick, alert_message = "closeshort")