Stratégie de moyenne mobile avec objectif de profit dynamique

Auteur:ChaoZhang est là., Date: 2023-09-18 21h46 et 47 min
Les étiquettes:

Résumé

Cette stratégie identifie la tendance en utilisant des moyennes mobiles, prend des bénéfices à des multiples ATR fixes et dimensionne dynamiquement les positions en fonction de l'ATR.

Principaux

La stratégie utilise une moyenne mobile simple de longueur N pour déterminer la direction de la tendance.

Après entrée, l'objectif de profit est fixé à des multiples ATR fixes par rapport au prix d'entrée, par exemple, l'objectif de profit = prix d'entrée + ATR * Facteur pour les positions longues.

La stratégie évalue également les positions inversement à l'ATR, qui représente la volatilité du marché.

Les avantages

  1. Le MA identifie la tendance, permettant de suivre la tendance.

  2. ATR profite en tirant profit des tendances tout en évitant les renversements.

  3. La dimensionnement dynamique des positions gère le risque en fonction de la volatilité du marché.

  4. Facteur de profit et paramètres de dimensionnement personnalisables.

  5. Le stop loss peut limiter davantage les risques.

Risques et atténuations

  1. Le décalage de l'AM peut entraîner une entrée tardive. Des paramètres plus sensibles peuvent être testés.

  2. Les fluctuations de l'ATR peuvent entraîner des objectifs de profit trop petits ou trop élevés.

  3. Une volatilité excessive conduit à des positions trop petites limitant les bénéfices.

  4. L'absence de stop loss risque une perte incontrôlée.

  5. Une mauvaise sélection de symboles, par exemple des actifs à faible volatilité, peut entraîner une sous-performance.

Des possibilités d'amélioration

  1. Testez différentes combinaisons de paramètres pour des réglages optimaux.

  2. Améliorer la logique d'entrée en ajoutant d'autres indicateurs comme filtre.

  3. Recherchez une prise de profit dynamique et un arrêt de perte pour plus de flexibilité.

  4. Gérer des positions basées sur des indicateurs de volatilité.

  5. Ajouter un mécanisme de rentrée pour prolonger la durée de conservation.

Résumé

La stratégie identifie la tendance avec des moyennes mobiles, prend des bénéfices aux multiples ATR et positionne les tailles par ATR. Elle a une certaine tendance suivant la capacité et le risque peut être ajusté à travers des paramètres. Mais la sélection des paramètres et les problèmes d'objectif de profit existent. D'autres améliorations peuvent être apportées par l'optimisation, le stop loss pour rendre la stratégie plus robuste.


/*backtest
start: 2023-09-10 00:00:00
end: 2023-09-17 00:00:00
period: 5m
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/
// © dongyun

//@version=4
strategy("利润目标止损的移动平均线", overlay=true)

period = input(80,'')
ptper = input(252,'')
ptfactor = input(12,'')
sizeper = input(20, '')

trend = 0.0
signal = 0
size = 1.0
investment = 100000
atrange = 0.0
ptrange = 0.0
stoph = 0.0
stopl = 0.0


if sizeper != 0
	atrange := atr(sizeper)

if atrange == 0 or sizeper == 0 
	size := 1
else
	size := investment/atrange * 0.1

trend := sma(close,period)


if signal != 1 and nz(trend[1]) < nz(trend[2]) and trend > nz(trend[1])
	strategy.entry('long',strategy.long, comment='open_long')
	signal := 1
else
    signal := nz(signal[1])
    
if signal != -1 and nz(trend[1]) > nz(trend[2]) and trend < nz(trend[1])
	strategy.entry('short',strategy.short, comment='open_short')
	signal := -1
else
    if signal == 0
        signal := nz(signal[1])

ptrange := atr(ptper)

if strategy.position_size > 0
	strategy.exit("exit_long", "long", qty = strategy.position_size, limit = close + ptfactor*ptrange , comment='trail_long') 
else
	if strategy.position_size < 0
		strategy.exit("exit_short", "short", qty = abs(strategy.position_size), limit = close - ptfactor*ptrange, comment='trail_short')


Plus de