Stratégie MACD multi-temporelle optimisée pour le temps et l'espace

Auteur:ChaoZhang est là., Date: 2024-01-29 10:15:34 Je suis désolé
Les étiquettes:

img

Résumé

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é.

La logique de la stratégie

  1. 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.

  2. 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.

  3. L'heure de négociation est fixée à 09h00-09h15 tous les jours.

    • Passez long lorsque la tendance haussière coïncide avec la différence MACD qui dépasse 0
    • Passer à la vente à découvert lorsque la tendance à la baisse coïncide avec le décalage MACD en dessous de 0
  4. Le profit est fixé à 0,3 pips, et le stop loss est fixé à 100 pips.

  5. Fermez toutes les positions entre 21h00 et 21h15.

Les avantages de la stratégie

  1. 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.

  2. 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.

  3. 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.

  4. Dans l'ensemble, la stratégie présente un taux de gain très élevé et convient à des transactions fréquentes à court terme.

Risques liés à la stratégie

  1. 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.

  2. L'indicateur MACD est sujet à des signaux trompeurs.

  3. Les paramètres doivent être ajustés en fonction des différents produits.

  4. Le risque global est faible, mais des positions trop importantes sous un effet de levier élevé peuvent toujours entraîner d'énormes pertes.

Directions pour l'optimisation de la stratégie

  1. 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.

  2. Optimiser les ratios profit/stop loss en calculant les paramètres optimaux à partir des données de backtest.

  3. Élargir les variétés commerciales applicables à la stratégie, évaluer les effets de réglage des paramètres sur différents produits.

  4. Introduction d'algorithmes d'apprentissage automatique pour sélectionner dynamiquement les paramètres optimaux en fonction des différentes conditions du marché.

Conclusion

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")


Plus de