Stratégie MACD multi-périodes optimisée dans le temps et l'espace


Date de création: 2024-01-29 10:15:34 Dernière modification: 2024-01-29 10:15:34
Copier: 1 Nombre de clics: 683
1
Suivre
1617
Abonnés

Stratégie MACD multi-périodes optimisée dans le temps et l’espace

Aperçu

Cette stratégie permet d’optimiser les paramètres de l’indicateur MACD, en combinant les moyennes mobiles, l’action des prix et des heures de négociation spécifiques, pour obtenir une stratégie de trading de taux de change à haut rendement.

Principe de stratégie

  1. Utilisez les 3 lignes K pour déterminer la tendance des prix. Si les 3 dernières lignes K sont toutes supérieures au prix d’ouverture, elles sont considérées comme tendance à la hausse. Si les 3 dernières lignes K sont toutes inférieures au prix d’ouverture, elles sont considérées comme tendance à la baisse.

  2. Calculer la différence entre les lignes rapides et lentes et le MACD. Le paramètre de la ligne rapide est de 12, le paramètre de la ligne lente est de 26 et le paramètre de la ligne de signal est de 9.

  3. L’heure de négociation est réglée sur 09:00-09:15 par jour. Pendant cette période, l’entrée est possible si les conditions suivantes sont remplies:

    • La tendance à la hausse est plus forte lorsque la différence MACD est inférieure à zéro
    • La tendance à la baisse et la faillite de la MACD à la baisse
  4. Le stop loss est réglé sur 0,3 points et le stop loss sur 100 points.

  5. La période de 21h00 à 21h15 est à zéro.

Avantages stratégiques

  1. L’utilisation d’une combinaison d’indicateurs de plusieurs périodes permet de juger de manière globale de l’orientation des tendances et d’améliorer l’exactitude de la prise de décision.

  2. L’optimisation des périodes de négociation permet de réduire les risques inutiles de stop-loss en évitant les fortes fluctuations du marché.

  3. Il est important de définir un ratio de stop-loss raisonnable pour maximiser le profit et éviter l’expansion des pertes.

  4. Dans l’ensemble, la stratégie a un taux de réussite élevé, ce qui est approprié pour les transactions fréquentes sur des lignes courtes.

Risque stratégique

  1. Le temps de négociation des stratégies est relativement fixe, et si vous ne pouvez pas entrer dans le jeu à temps, vous risquez de manquer une opportunité de négociation.

  2. L’indicateur MACD est susceptible de générer des signaux trompeurs et doit être utilisé avec prudence s’il n’est pas possible de déterminer une tendance à la hausse ou à la baisse.

  3. Le paramètre de stop loss est déraisonnable, ce qui peut entraîner un déséquilibre du ratio profit/perte et nécessite un ajustement des paramètres en fonction des variétés.

  4. Dans l’ensemble, le risque stratégique est faible. Cependant, une position trop importante peut entraîner des pertes importantes dans des situations de fort levier.

Orientation de l’optimisation de la stratégie

  1. Il est possible de combiner les tendances avec d’autres indicateurs afin d’éviter que le MACD ne génère de faux signaux. Par exemple, l’utilisation combinée d’indicateurs tels que la ligne de Brin, le RSI et d’autres.

  2. Les paramètres optimaux peuvent être calculés à l’aide de données de retesting pour optimiser le taux de stop loss.

  3. Il est possible d’élargir les variétés de transactions auxquelles la stratégie s’applique et d’évaluer l’effet de l’ajustement des paramètres des différentes variétés.

  4. L’introduction d’algorithmes d’apprentissage automatique permettant de choisir les paramètres optimaux en fonction des différentes conditions du marché et de réaliser des ajustements dynamiques.

Résumer

Cette stratégie est généralement très appropriée pour les traders débutants, l’idée de la stratégie est claire, les paramètres d’optimisation sont larges et le risque est contrôlable. En personnalisant le temps d’ouverture des positions et en réglant raisonnablement le pourcentage de pertes et de pertes, un taux de profit plus élevé peut être obtenu.

Code source de la stratégie
/*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")