Stratégie de trading de tendance de retour à la moyenne de la section dorée


Date de création: 2023-12-07 11:03:20 Dernière modification: 2023-12-07 11:03:20
Copier: 1 Nombre de clics: 379
1
Suivre
1176
Abonnés

Stratégie de trading de tendance de retour à la moyenne de la section dorée

Aperçu

La stratégie de négociation de retour de tendance de la moyenne divisée en or permet d’ouvrir des positions dans la direction de la tendance après un certain recul des prix en utilisant l’indicateur de la voie et la moyenne mobile pour identifier la direction de la tendance la plus forte. La stratégie est adaptée aux marchés présentant des caractéristiques de tendance plus fortes et offre une meilleure performance dans des conditions de tendance.

Principe de stratégie

Les indicateurs centraux de la stratégie comprennent les indicateurs du canal, les moyennes mobiles et les lignes de déclenchement de rétroaction.

  1. L’indicateur de corridor est composé de calculs de prix maximaux et minimaux, qui sont utilisés pour identifier les corridors de prix.
  2. Les moyennes mobiles sont utilisées pour déterminer la direction de la tendance générale des prix.
  3. La ligne de déclenchement d’un rebond est utilisée pour ouvrir une position après que le prix a rebondé d’une certaine proportion du bord du canal.

Lorsque le prix touche le bas du canal, la stratégie enregistre le point le plus bas comme point de référence et définit un marqueur permettant de faire de la position vide. Lorsque le prix augmente, une position vide est ouverte près du point de rebond une fois que la hausse atteint le taux de rebond.

Au lieu de cela, lorsque le prix atteint le sommet de la chaîne, la stratégie enregistre le point le plus élevé comme point de référence et définit des marqueurs permettant de faire plus. Lorsque le prix baisse, si la baisse atteint les exigences du ratio de redressement, ouvrez plus de positions près de ce point.

Par conséquent, la logique de négociation de cette stratégie est de suivre le canal de prix et de choisir le point d’intervention approprié dans la tendance existante en cas de signal de revers. C’est une approche courante dans les stratégies de négociation de type réajustement de tendance.

Analyse des avantages

Cette stratégie présente les principaux avantages suivants:

  1. Le taux de rendement est plus élevé dans des conditions de forte tendance.
  2. La rigidité de la stratégie d’entrée peut être ajustée en ajustant les paramètres de proportion de retour;
  3. Les contrôles de retrait raisonnables limitent les pertes individuelles.

Plus précisément, la stratégie est plus efficace dans les marchés où les prix sont plus volatiles et où la tendance est plus évidente, car la stratégie ouvre principalement des positions à des points de revers de tendance. En outre, l’ajustement des paramètres du ratio de réajustement permet de contrôler l’intensité de la stratégie de suivi de la tendance. Enfin, le stop loss permet de contrôler les pertes individuelles.

Analyse des risques

La stratégie présente également les principaux risques suivants:

  1. La stratégie est plus sensible aux caractéristiques tendancielles des variétés négociées.
  2. Un mauvais réglage du ratio de régression peut conduire à des mesures trop radicales ou trop conservatrices.
  3. Les détenteurs d’une position peuvent la conserver trop longtemps et doivent se méfier des risques de nuit.

En particulier, si la variété de transaction utilisée par la stratégie a une tendance faible et une faible volatilité, l’effet peut être décompté. De plus, le réglage d’un taux de retournement trop grand ou trop petit peut affecter la performance de la stratégie. Enfin, étant donné que la durée de conservation de la stratégie peut être longue, il faut également faire attention au contrôle du risque du jour au lendemain.

Afin d’éviter les risques mentionnés ci-dessus, vous pouvez envisager d’optimiser les aspects suivants:

  1. Choisir des variétés de transactions qui présentent des caractéristiques de tendance plus évidentes;
  2. Ajustez le paramètre de réajustement de proportion pour trouver la meilleure combinaison de paramètres;
  3. Réglez le stop Exit pour contrôler raisonnablement le temps de détention.

Résumer

La stratégie de négociation de retour de tendance à la moyenne partagée en or est un système de tendance plus typique. La stratégie a plus de place pour l’optimisation des paramètres, elle peut être adaptée à plus d’environnement de marché par l’optimisation, et le contrôle du risque est plus raisonnable. C’est donc une stratégie d’optimisation qui mérite d’être testée et améliorée.

Code source de la stratégie
/*backtest
start: 2022-11-30 00:00:00
end: 2023-12-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//
// A port of the TradeStation EasyLanguage code for a mean-revision strategy described at
//     http://traders.com/Documentation/FEEDbk_docs/2017/01/TradersTips.html
//
// "In “Mean-Reversion Swing Trading,” which appeared in the December 2016 issue of STOCKS & COMMODITIES, author Ken Calhoun
//  describes a trading methodology where the trader attempts to enter an existing trend after there has been a pullback. 
//  He suggests looking for 50% pullbacks in strong trends and waiting for price to move back in the direction of the trend
//  before entering the trade."
//
//  See Also:
//    - 9 Mistakes Quants Make that Cause Backtests to Lie (https://blog.quantopian.com/9-mistakes-quants-make-that-cause-backtests-to-lie-by-tucker-balch-ph-d/)
//    - When Backtests Meet Reality (http://financial-hacker.com/Backtest.pdf)
//    - Why MT4 backtesting does not work (http://www.stevehopwoodforex.com/phpBB3/viewtopic.php?f=28&t=4020)
//
// 
// -----------------------------------------------------------------------------
// Copyright 2018 sherwind
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
// 
// The GNU General Public License can be found here
// <http://www.gnu.org/licenses/>.
//
// -----------------------------------------------------------------------------
//

strategy("Mean-Reversion Swing Trading Strategy v1", shorttitle="MRST Strategy v1", overlay=true)
channel_len  = input(defval=20, title="Channel Period", minval=1)
pullback_pct = input(defval=0.5, title="Percent Pull Back Trigger", minval=0.01, maxval=1, step=0.01)
trend_filter_len = input(defval=50, title="Trend MA Period", minval=1)


upper_band = highest(high, channel_len)
lower_band = lowest(low, channel_len)
trend      = sma(close, trend_filter_len)

low_ref  = 0.0
low_ref  :=  nz(low_ref[1])
high_ref = 0.0
high_ref := nz(high_ref[1])
long_ok  = false
long_ok  := nz(long_ok[1])
short_ok = false
short_ok := nz(short_ok[1])
long_ok2 = false
long_ok2  := nz(long_ok2[1])

if (low == lower_band)
    low_ref  := low
    long_ok  := false
    short_ok := true
    long_ok2 := false

if (high == upper_band)
    high_ref := high
    long_ok  := true
    short_ok := false
    long_ok2  := true

// Pull Back Level
trigger = long_ok2 ? high_ref - pullback_pct * (high_ref - low_ref) : low_ref + pullback_pct * (high_ref - low_ref)

plot(upper_band, title="Upper Band", color=long_ok2?green:red)
plot(lower_band, title="Lower Band", color=long_ok2?green:red)
plot(trigger, title="Trigger", color=purple)
plot(trend, title="Trend", color=orange)

enter_long = long_ok[1] and long_ok and crossover(close, trigger) and close > trend and strategy.position_size <= 0
enter_short = short_ok[1] and short_ok and crossunder(close, trigger) and close < trend and strategy.position_size >= 0

if (enter_long)
    long_ok := false
    strategy.entry("pullback-long", strategy.long, stop=close, comment="pullback-long")
else
    strategy.cancel("pullback-long")

if (enter_short)
	short_ok := false
    strategy.entry("pullback-short", strategy.short, stop=close, comment="pullback-short")
else
    strategy.cancel("pullback-short")

strategy.exit("exit-long", "pullback-long", limit=upper_band, stop=lower_band)
strategy.exit("exit-short", "pullback-short", limit=lower_band, stop=upper_band)