Les ressources ont été chargées... Je charge...

Stratégie de convergence MACD avec R:R, limites quotidiennes et stop loss plus serrés

Auteur:ChaoZhang est là., Date: 2024-06-03 16:47:56 Je vous en prie.
Les étiquettes:Le MACD

img

Résumé

Cette stratégie utilise la convergence et la divergence de l'indicateur MACD pour générer des signaux de trading. Lorsque la ligne MACD traverse la ligne de signal, et que la valeur de la ligne MACD est supérieure à 1,5 ou inférieure à -1,5, elle génère des signaux longs et courts, respectivement.

Principe de stratégie

  1. Calculer la ligne MACD et la ligne de signal de l'indicateur MACD.
  2. Déterminer les situations de croisement entre la ligne MACD et la ligne de signal, tout en considérant si la valeur de la ligne MACD dépasse certains seuils (1.5 et -1.5).
  3. Lorsqu'un signal long apparaît, ouvrez une position longue avec un prix de prise de profit du prix le plus élevé actuel + 600 unités de tick minimales et un prix de stop-loss du prix le plus bas actuel - 100 unités de tick minimales.
  4. Lorsqu'un signal court apparaît, ouvrez une position courte avec un prix de prise de profit du prix le plus bas actuel - 600 unités de tick minimales et un prix de stop-loss du prix le plus élevé actuel + 100 unités de tick minimales.
  5. Introduire une logique de stop-loss de suivi: lorsque le prix augmente (position longue) ou diminue (position courte) de plus de 300 unités de tick minimales par rapport au prix d'entrée, déplacer le prix de stop-loss au prix d'entrée + (prix de clôture - prix d'entrée - 300) pour les positions longues ou au prix d'entrée - (prix d'entrée - prix de clôture - 300) pour les positions courtes.
  6. Définir les limites maximales de perte et de profit quotidiens: lorsque la perte quotidienne atteint 600 unités de tick minimales ou que le profit atteint 1800 unités de tick minimales, fermer toutes les positions.

Analyse des avantages

  1. La combinaison de l'indicateur MACD avec les conditions de seuil de prix filtre efficacement certains signaux sonores.
  2. Le ratio risque/rendement fixe (R:R) permet de contrôler le risque et le rendement de chaque transaction.
  3. La logique du stop-loss de suivi protège les bénéfices après la formation d'une tendance et réduit les retraits.
  4. Les limites maximales de perte et de profit quotidiennes permettent de contrôler l'exposition quotidienne au risque et d'éviter des pertes ou des profits excessifs suivis de retraits.

Analyse des risques

  1. L'indicateur MACD a un effet de décalage, ce qui peut entraîner des signaux retardés ou faux.
  2. Les niveaux fixes de prise de bénéfices et de stop-loss peuvent ne pas s'adapter aux différentes conditions du marché et pourraient être fréquemment déclenchés sur des marchés instables.
  3. La logique du stop-loss de suivi peut ne pas arrêter les pertes à temps lors d'inversions de tendance, ce qui entraîne des pertes de profit.
  4. Les limites maximales de perte et de profit quotidiennes peuvent entraîner la fermeture prématurée des positions par la stratégie lorsque la tendance quotidienne est claire, en manquant les bénéfices potentiels.

Direction de l'optimisation

  1. Considérez l'utilisation d'indicateurs MACD multi-temps pour confirmer les signaux et améliorer la précision des signaux.
  2. Ajustez dynamiquement les niveaux de prise de profit et de stop-loss en fonction de la volatilité du marché pour s'adapter aux différentes conditions du marché.
  3. Optimiser la logique de stop-loss de suivi, par exemple en définissant la distance de stop-loss de suivi en fonction de l'indicateur ATR pour une meilleure adaptation aux fluctuations des prix.
  4. Optimiser les paramètres des limites maximales de perte et de profit quotidiens afin de trouver des valeurs limites appropriées qui contrôlent les risques tout en capturant autant que possible les mouvements de tendance.

Résumé

Cette stratégie utilise la convergence et la divergence de l'indicateur MACD pour générer des signaux de trading tout en introduisant des mesures de contrôle des risques telles que le ratio risque-rendement, le trailing stop-loss et les limites quotidiennes.


/*backtest
start: 2023-05-28 00:00:00
end: 2024-06-02 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/
// © DD173838

//@version=5
strategy("MACD Convergence Strategy with R:R, Daily Limits, and Tighter Stop Loss", overlay=true, default_qty_type=strategy.fixed, default_qty_value=1)

// MACD settings
fastLength = input.int(12, title="Fast Length", minval=1)
slowLength = input.int(26, title="Slow Length", minval=1)
signalSmoothing = input.int(9, title="Signal Smoothing", minval=1)
source = input(close, title="Source")

// Calculate MACD
[macdLine, signalLine, _] = ta.macd(source, fastLength, slowLength, signalSmoothing)

// Plot MACD and signal line
plot(macdLine, title="MACD Line", color=color.blue)
plot(signalLine, title="Signal Line", color=color.red)

// Define convergence conditions
macdConvergenceUp = ta.crossover(macdLine, signalLine) and macdLine > 1.5
macdConvergenceDown = ta.crossunder(macdLine, signalLine) and macdLine < -1.5

// Define take profit and stop loss

        
    
takeProfit = 600
stopLoss = 100

// Plot buy and sell signals on the chart
plotshape(series=macdConvergenceDown, title="Short Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SHORT")
plotshape(series=macdConvergenceUp, title="Long Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="LONG")

// Execute short and long orders with defined take profit and stop loss
if (macdConvergenceDown)
    strategy.entry("Short", strategy.short, qty=1, stop=high + (stopLoss / syminfo.mintick), limit=low - (takeProfit / syminfo.mintick))

if (macdConvergenceUp)
    strategy.entry("Long", strategy.long, qty=1, stop=low - (stopLoss / syminfo.mintick), limit=high + (takeProfit / syminfo.mintick))

// Trailing stop logic
var float entryPrice = na
var float trailingStopPrice = na

if (strategy.position_size != 0)
    entryPrice := strategy.opentrades.entry_price(0)

if (strategy.position_size > 0)  // For long positions
    if (close - entryPrice > 300)
        trailingStopPrice := entryPrice + (close - entryPrice - 300)

if (strategy.position_size < 0)  // For short positions
    if (entryPrice - close > 300)
        trailingStopPrice := entryPrice - (entryPrice - close - 300)

if (strategy.position_size > 0 and not na(trailingStopPrice) and close < trailingStopPrice)
    strategy.close("Long", comment="Trailing Stop")

if (strategy.position_size < 0 and not na(trailingStopPrice) and close > trailingStopPrice)
    strategy.close("Short", comment="Trailing Stop")

// Daily drawdown and profit limits
var float startOfDayEquity = na
if (na(startOfDayEquity) or ta.change(time('D')) != 0)
    startOfDayEquity := strategy.equity

maxDailyLoss = 600
maxDailyProfit = 1800
currentDailyPL = strategy.equity - startOfDayEquity

if (currentDailyPL <= -maxDailyLoss)
    strategy.close_all(comment="Max Daily Loss Reached")

if (currentDailyPL >= maxDailyProfit)
    strategy.close_all(comment="Max Daily Profit Reached")


Relationnée

Plus de