Stratégie de rupture de tendance adaptative ATR


Date de création: 2023-10-31 15:58:46 Dernière modification: 2023-10-31 15:58:46
Copier: 0 Nombre de clics: 690
1
Suivre
1617
Abonnés

Stratégie de rupture de tendance adaptative ATR

Aperçu

La stratégie est une stratégie de rupture de tendance basée sur l’indicateur ATR. Son idée principale est d’effectuer des opérations de rupture de tendance lorsque le prix dépasse un certain nombre de multiples de l’ATR. La stratégie contient à la fois la confirmation de la tendance et la fonction de limiter les transactions en utilisant la plage de dates.

Le principe

La stratégie utilise l’indicateur ATR pour déterminer l’amplitude des fluctuations des prix. ATR représente l’amplitude réelle moyenne, qui mesure l’amplitude moyenne des fluctuations des prix au cours d’une période donnée.

Lorsque la hausse des prix dépasse le nombre d’ATRs supérieur multiplié par l’ATR, effectuez une opération de multiplication; lorsque la baisse des prix dépasse le nombre d’ATRs inférieur multiplié par l’ATR, effectuez une opération de blanchiment.

De plus, la stratégie ajoute les variables BOOL qui nécessitent une position longue (needlong) et une position courte (needshort), permettant de contrôler le fait de ne faire que plus ou de ne faire que courte. La stratégie définit également une fourchette de dates, permettant de négocier uniquement entre les dates spécifiées, ce qui permet de limiter la fourchette de temps.

La stratégie utilise la variable de taille pour déterminer la position, en fonction de la situation de la position. Le nombre de mains est calculé en fonction du pourcentage de droits et intérêts du compte.

Les avantages

  • Utilisez l’indicateur ATR pour s’adapter automatiquement aux fluctuations du marché sans avoir à régler manuellement la distance de stop loss
  • Flexibilité pour faire plus de temps libre ou seulement plus/temps libre
  • Vous pouvez définir une plage de dates pour effectuer des transactions afin d’éviter les moments critiques.
  • Flexible à l’aide de l’appareil mobile, vous pouvez commander en fonction du pourcentage de votre compte

Risques et solutions

  • L’indicateur ATR ne prend en compte que les fluctuations de prix, et si les conditions évoluent fortement, la marge de manœuvre peut être trop faible et nécessite une optimisation combinée avec d’autres indicateurs
  • Lorsqu’une transaction est limitée à une plage de dates, la plage de dates peut être étendue de manière appropriée si aucune opportunité appropriée ne se présente avant ou après une période importante, ce qui peut entraîner une perte d’opportunité de transaction.
  • Lorsque vous commandez en utilisant le ratio de droits d’intérêt du compte, il est nécessaire de définir un ratio raisonnable pour éviter des pertes individuelles excessives.

Optimiser les idées

  • L’ajout d’indicateurs de tendance tels que les moyennes mobiles peut être envisagé pour filtrer le bruit des transactions de rupture de tendance
  • Il est possible de tester différents paramètres ATR pour choisir la meilleure combinaison de paramètres.
  • La combinaison avec d’autres stratégies peut être envisagée pour tirer parti de leurs avantages respectifs et améliorer la stabilité des stratégies.

Résumer

L’idée générale de cette stratégie est claire et facile à comprendre. L’utilisation de l’indicateur ATR pour s’adapter automatiquement à la volatilité du marché est une stratégie de suivi de tendance générale.

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

//Noro
//2018

//@version=3
strategy(title = "Noro's Volty Strategy v1.0", shorttitle = "Volty 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 100)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(false, defval = false, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
length = input(5)
numATRs = input(0.75)
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Indicator
atrs = sma(tr, length) * numATRs

//Trading
size = strategy.position_size
lot = 0.0
lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1]
if (not na(close[length])) and needlong
    strategy.entry("L", strategy.long, lot, stop = close + atrs, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if (not na(close[length])) and needlong == false
    strategy.entry("L", strategy.long, 0, stop = close + atrs, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if (not na(close[length])) and needshort
    strategy.entry("S", strategy.short, lot, stop = close - atrs, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if (not na(close[length])) and needshort == false
    strategy.entry("S", strategy.short, 0, stop = close - atrs, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))