Sortir avec la tendance - Stratégie stop loss Momentum


Date de création: 2023-11-13 17:20:51 Dernière modification: 2023-11-13 17:20:51
Copier: 0 Nombre de clics: 847
1
Suivre
1617
Abonnés

Sortir avec la tendance - Stratégie stop loss Momentum

Aperçu

Cette stratégie est une stratégie de suivi de tendance de la ligne médiane basée sur la rupture et l’indicateur de stop-loss dynamique. La stratégie utilise la rupture de la ligne de stop-loss dynamique du prix pour déterminer la direction de la tendance, entre dans le jeu lorsque le prix franchit la ligne de stop-loss, puis utilise la ligne de stop-loss pour suivre la tendance et verrouiller les bénéfices. La stratégie vise à capturer la tendance de la ligne médiane tout en utilisant la rupture de la ligne de stop-loss dynamique pour contrôler les risques.

Principe de stratégie

La stratégie utilise l’indicateur de stop dynamique Volatility Stop pour déterminer la direction de la tendance et suivre le stop. Le Stop de Volatilité calcule une ligne de stop dynamique en fonction de la gamme de fluctuations du prix.

  1. ATR calculé pour les prix (la moyenne des fluctuations réelles)
  2. On obtient une ligne de perte en multipliant le coefficient de perte par la valeur ATR.
  3. Lorsque le prix augmente, le prix le plus élevé est enregistré, le stop loss est le prix le plus élevé moins ATR multiplié par le facteur
  4. Lorsque le prix baisse, le prix le plus bas est enregistré, le stop loss est le prix le plus bas plus ATR multiplié par le coefficient

Ainsi, la ligne de stop-loss fluctue à la hausse et à la baisse avec les fluctuations des prix, formant un canal dynamique.

Lorsque le prix atteint la limite de rupture, c’est un retour de tendance, et la stratégie ouvre une position:

  • La stratégie prend une position plus élevée lorsque le prix franchit le seuil de rupture en descendant vers le haut
  • La stratégie ouvre une position blanche lorsque le prix franchit la ligne de rupture de la ligne de rupture de la ligne de rupture

Après l’ouverture de la position, la stratégie utilise la ligne de stop-loss pour suivre le stop-loss:

  • La ligne de stop-loss pour les positions multiples est le coefficient de la valeur maximale moins l’ATR
  • Le stop loss de la position vide est le prix minimum plus ATR multiplié par le coefficient

Lorsque le prix revient à la ligne de stop-loss, la stratégie se termine par un stop-loss.

Ainsi, la stratégie peut se dérouler au hasard, suivre en temps opportun la tendance à la reprise, tout en utilisant les arrêts de perte pour contrôler le risque.

Analyse des avantages

Cette stratégie présente les avantages suivants:

  1. Il est possible de saisir l’occasion d’une inversion de tendance en temps opportun et d’éviter de rater l’occasion
  2. L’utilisation de stop-loss dynamique permet de modifier la position de stop-loss en fonction des fluctuations du marché, ce qui rend le stop-loss plus raisonnable.
  3. La position stop-loss est mise à jour au fur et à mesure de la tendance, ce qui permet de maximiser le profit.
  4. Le plus grand gain de la tendance est obtenu en multipliant le gain de la tendance.
  5. Contrôler efficacement les risques et éviter les pertes excessives

Analyse des risques

Cette stratégie comporte aussi des risques:

  1. Dans le cas d’une secousse, il peut y avoir des cas où le stop est souvent déclenché.
  2. Il est nécessaire de définir un coefficient d’arrêt raisonnable, trop petit pour être trop sensible, trop grand pour ne pas avoir d’importance
  3. Il faut faire attention à l’impact des frais de transaction, les transactions fréquentes prennent le dessus sur les bénéfices.
  4. Le risque de perdre une partie des bénéfices des premières années de la tendance
  5. Attention aux risques de déviation de la ligne de stop

La réponse:

  1. Le paramètre optimal peut être trouvé en optimisant le coefficient d’arrêt par la rétro-mesure
  2. Prolonger le cycle de négociation et réduire la fréquence des transactions
  3. Vous pouvez envisager d’ajouter des filtres filtrter pour éviter de trop fréquenter les transactions
  4. La distance entre les lignes de freinage peut être allégée, mais pas trop

Direction d’optimisation

La stratégie peut être optimisée de la manière suivante:

  1. Optimiser le coefficient de rupture pour trouver la meilleure combinaison de paramètres
  2. Ajouter des filtres pour éviter d’être pris au piège dans une secousse
  3. Vérification combinée à plusieurs périodes de temps pour améliorer la qualité du signal
  4. Optimisation de la gestion des positions et augmentation progressive des positions
  5. Prendre en compte les cycles d’ajustement dynamique des transactions
  6. Choisir des actions en fonction des fondamentaux et des tendances

Résumer

La stratégie de rupture de tendance - arrêt dynamique est une stratégie de suivi de tendance très pratique dans l’ensemble. Elle permet de saisir les opportunités de renversement de tendance, en fonction de la tendance, tout en utilisant le risque de contrôle efficace de l’arrêt dynamique. Si les paramètres sont optimisés correctement, un meilleur rendement peut être obtenu dans des conditions de tendance.

Code source de la stratégie
/*backtest
start: 2023-11-11 00:00:00
end: 2023-11-12 00:00:00
period: 3m
basePeriod: 1m
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/
//@version=4
strategy(shorttitle='Volatility Stop Strategy',title='Volatility Stop Strategy (by Coinrule)', overlay=true, initial_capital = 100, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type=strategy.commission.percent, commission_value=0.1)

// Works better on 3h, 1h, 2h, 4h
// Best time frame 2H

//Backtest dates
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2021, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false       // create function "within window of time"

length = input(20, "Length", minval = 2)
src = input(close, "Source")
factor = input(3.0, "vStop Multiplier", minval = 0.25, step = 0.25)
volStop(src, atrlen, atrfactor) =>
    var max     = src
    var min     = src
    var uptrend = true
    var stop    = 0.0
    atrM        = nz(atr(atrlen) * atrfactor, tr)
    max         := max(max, src)
    min         := min(min, src)
    stop        := nz(uptrend ? max(stop, max - atrM) : min(stop, min + atrM), src)
    uptrend     := src - stop >= 0.0
    if uptrend != nz(uptrend[1], true)
        max    := src
        min    := src
        stop   := uptrend ? max - atrM : min + atrM
    [stop, uptrend]

[vStop, uptrend] = volStop(src, length, factor)


//Entry 


strategy.entry(id="long", long = true, when = crossover(close, vStop) and window())

//Exit
strategy.close("long", when = crossunder(close, vStop))

plot(vStop,"Vstop", color.black, linewidth=2)