Stratégie de suivi dynamique du stop loss


Date de création: 2023-12-21 15:58:54 Dernière modification: 2023-12-21 15:58:54
Copier: 1 Nombre de clics: 761
1
Suivre
1623
Abonnés

Stratégie de suivi dynamique du stop loss

Aperçu

Cette stratégie est basée sur la ligne solaire pour déterminer la direction de la tendance, puis utilise le nouveau sommet ou le bas de la ligne K de 15 minutes comme point d’arrêt ou pour suivre le point d’arrêt, pour réaliser une stratégie d’ajustement dynamique des arrêts de perte pour verrouiller plus de bénéfices.

Principe de stratégie

  1. Utilisez la ligne K pour comparer les prix de clôture du jour et les prix les plus élevés et les plus bas de la veille pour déterminer la direction de la tendance. Si le prix de clôture est supérieur au prix le plus élevé de la veille, il est défini comme une tendance à la hausse; si le prix de clôture est inférieur au prix le plus bas de la veille, il est défini comme une tendance à la baisse.

  2. Dans une tendance haussière, faites plus lorsque le prix de clôture de la ligne K de 15 minutes est supérieur au prix le plus élevé de la ligne K de 15 minutes précédente; dans une tendance baissière, faites moins lorsque le prix de clôture de la ligne K de 15 minutes est inférieur au prix le plus bas de la ligne K de 15 minutes précédente.

  3. Après le plus, le prix le plus bas de la ligne K de 15 minutes précédente est utilisé comme point d’arrêt. Après le moins, le prix le plus élevé de la ligne K de 15 minutes précédente est utilisé comme point d’arrêt.

  4. Lorsque la ligne K de 15 minutes crée à nouveau un nouveau haut ou un nouveau bas, ajustez le stop loss. Ajustez le nouveau bas lorsque vous faites plus, ajustez le nouveau haut lorsque vous faites moins, pour réaliser un stop loss suivi dynamique.

Analyse des avantages

Le plus grand avantage de cette stratégie réside dans la possibilité d’ajuster dynamiquement le seuil de stop-loss, de bloquer au maximum les bénéfices tout en garantissant la maîtrise des risques et de réduire la probabilité que le stop-loss soit frappé.

Les avantages sont les suivants:

  1. Il est possible d’évaluer les tendances en temps réel et de choisir la bonne direction.

  2. Les transactions de 15 minutes permettent d’entrer et de sortir plus souvent et de saisir plus d’opportunités.

  3. Adaptation dynamique de la stratégie de stop loss pour réduire le risque de choc du stop loss en fonction du nouveau haut ou du nouveau bas.

  4. Le réglage de la position d’arrêt est raisonnable pour éviter les pertes inutiles.

Analyse des risques

Les principaux risques de cette stratégie proviennent d’erreurs dans le jugement des tendances. Les risques spécifiques sont les suivants:

  1. Une erreur de jugement de la tendance de la courbe peut entraîner une erreur de direction de la transaction.

  2. La probabilité d’une rupture du stop loss à 15 minutes est élevée si la situation fluctue fortement dans un court laps de temps.

  3. Les points de basculement de tendances sont mal identifiés et peuvent entraîner des pertes.

La solution est la suivante:

  1. Ajouter d’autres indicateurs de périodes de temps pour un jugement global et éviter les erreurs sur une seule période.

  2. Évaluer la volatilité du marché et élargir de manière appropriée la marge de stop-loss en cas de forte volatilité.

  3. Il est possible d’ajouter des mécanismes de détermination des points de basculement des tendances et d’assurer une liquidation rapide des positions avant le basculement.

Direction d’optimisation

Il y a encore de la place pour optimiser la stratégie:

  1. Il est également possible d’ajouter d’autres indicateurs cycliques et d’optimiser la maîtrise des tendances.

  2. Testez différents paramètres de stop loss ratio et sélectionnez le paramètre optimal.

  3. Il est important d’augmenter les indicateurs de capacité pour éviter que la capacité ne s’écarte et qu’il n’y ait pas de transactions erronées.

  4. Les points de sortie ont été optimisés.

  5. Évaluation de l’augmentation de l’intervalle de Trailing Stop pour réduire encore la probabilité que le stop-loss soit heurté.

Résumer

Cette stratégie fonctionne bien dans l’ensemble, la pensée est claire et facile à comprendre, a des avantages tels que l’ajustement dynamique de l’arrêt des pertes, la fréquence des transactions, le mouvement, la capacité de contrôler efficacement les risques et de bloquer les bénéfices, mérite d’être testée et optimisée. Cependant, il y a une certaine marge d’amélioration.

Code source de la stratégie
/*backtest
start: 2023-12-13 00:00:00
end: 2023-12-15 02:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Anand's Strategy", overlay=true)

// Get the high and low of the previous day's candle
prev_high = request.security(syminfo.tickerid, "D", high[2])
prev_low = request.security(syminfo.tickerid, "D", low[2])

// var float prev_high = na
// var float prev_low = na

prev_close = request.security(syminfo.tickerid, "D", close[1])


getDayIndexedHighLow(_bar) =>
    _indexed_high = request.security(syminfo.tickerid, "D", high[_bar])
    _indexed_low = request.security(syminfo.tickerid, "D", low[_bar])
    [_indexed_high, _indexed_low]

var index = 2

while index >= 0
    [indexed_high_D, indexed_low_D] =  getDayIndexedHighLow(index)
  
    if prev_close > indexed_high_D or prev_close < indexed_low_D
        prev_high := indexed_high_D
        prev_low := indexed_low_D
        break
    // Decrease the index to move to the previous 15-minute candle
    index := index - 1


// Determine the trade direction based on the candle criterion
trade_direction = prev_close > prev_high ? 1 : (prev_close < prev_low ? -1 : 0)

// Get the current close from 15-minute timeframe
current_close = request.security(syminfo.tickerid, "15", close[1])
prev_high_15m = request.security(syminfo.tickerid, "15", high[2])
prev_low_15m = request.security(syminfo.tickerid, "15", low[2])

// var float prev_high_15m = na
// var float prev_low_15m = na

getIndexedHighLow(_bar) =>
    _indexed_high = request.security(syminfo.tickerid, "15", high[_bar])
    _indexed_low = request.security(syminfo.tickerid, "15", low[_bar])
    [_indexed_high, _indexed_low]


// Loop through previous 15-minute candles until the condition is met
var  i = 2

while i >= 2
    [indexed_high_15m, indexed_low_15m] =  getIndexedHighLow(i)
  
    if current_close > indexed_high_15m or current_close < indexed_low_15m
        prev_high_15m := indexed_high_15m
        prev_low_15m := indexed_low_15m
        break
    // Decrease the index to move to the previous 15-minute candle
    i := i - 1



buy_condition = trade_direction == 1 and current_close > prev_high_15m
stop_loss_buy = prev_low_15m

// Sell Trade Criteria in Negative Trend
sell_condition = trade_direction == -1 and current_close < prev_low_15m
stop_loss_sell = prev_high_15m


// Trailing Stop Loss for Buy Trade
// Custom Trailing Stop Function for Buy Trade
var float trail_stop_buy = na
trailing_buy_condition = buy_condition and current_close > trail_stop_buy
if trailing_buy_condition
    trail_stop_buy := current_close

// Custom Trailing Stop Function for Sell Trade
var float trail_stop_sell = na
trailing_sell_condition = sell_condition and current_close < trail_stop_sell
if trailing_sell_condition
    trail_stop_sell := current_close

// Take Buy Trade with Stop Loss
if (buy_condition)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Buy Stop Loss", "Buy", stop=stop_loss_buy)

// Take Sell Trade with Stop Loss
if (sell_condition)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Sell Stop Loss", "Sell", stop=stop_loss_sell)

// Set the background color based on the trade direction
bgcolor(trade_direction == 1 ? color.new(color.green, 90) : trade_direction == -1 ? color.new(color.red, 90) : na)