Stratégies d'indicateurs techniques, stratégies de gestion des risques, stratégies de suivi adaptatif des tendances

EMA SDI
Date de création: 2024-07-29 17:25:26 Dernière modification: 2024-07-29 17:25:26
Copier: 0 Nombre de clics: 233
1
Suivre
1226
Abonnés

Stratégies d’indicateurs techniques, stratégies de gestion des risques, stratégies de suivi adaptatif des tendances

Aperçu

Cette stratégie est un système de trading auto-adaptatif de suivi de la tendance basé sur les moyennes mobiles indicielles (EMA) et les indicateurs de direction glissante (SDI). Elle combine plusieurs indicateurs techniques et outils de gestion des risques afin de capturer les tendances du marché et de contrôler les risques. La stratégie utilise les croisements d’EMA rapides et lents et la direction du SDI pour déterminer les tendances du marché et générer des signaux d’achat et de vente en conséquence.

Le cœur de la stratégie réside dans son adaptabilité et son approche globale de la gestion des risques. En utilisant des paramètres ajustables tels que les cycles EMA, la fluidité SDI et les seuils de gestion des risques, les traders peuvent optimiser la stratégie en fonction des différentes conditions du marché et des préférences de risque personnelles.

Principe de stratégie

  1. Indicateur calculé:

    • Calculer les EMA rapides et lentes, et leurs versions lisses.
    • Calculer le SDI, y compris les indicateurs de direction positive et négative.
  2. Le signal de transaction est généré:

    • Condition à plusieurs têtes: le DI positif est supérieur au DI négatif et l’EMA rapide est supérieure à l’EMA lente.
    • Condition de tête vide: le DI négatif est supérieur au DI positif et l’EMA rapide est inférieure à l’EMA lente.
  3. Gestion des positions:

    • La taille de la transaction est déterminée à l’aide d’un effet de levier et d’un pourcentage d’équité.
    • Lorsque les conditions d’entrée sont remplies, les positions inverses sont effacées et de nouvelles positions sont ouvertes.
  4. Gestion des risques :

    • La mise en œuvre d’une fonctionnalité d’arrêt, d’arrêt de perte et de suivi de perte en option.
    • La dynamique d’ajustement suit les niveaux de stop loss afin de bloquer les profits.
  5. Filtre à l’heure:

    • Il est possible de définir des dates de début et de fin de transaction, et de nettoyer automatiquement les positions en dehors de la plage de temps spécifiée.

Avantages stratégiques

  1. Capture de tendances: en combinaison avec l’EMA et le SDI, identifier et suivre efficacement les tendances du marché

  2. Adaptabilité: adaptation aux différentes conditions du marché grâce à des paramètres réglables.

  3. Gestion complète des risques: arrêt intégré, arrêt de perte et suivi des pertes, contrôle complet des risques.

  4. Contrôle de position flexible: le ratio de levier et d’utilisation des fonds peut être ajusté en fonction des différentes préférences de risque.

  5. La fonctionnalité de rétrospective est conviviale: elle prend en charge la rétrospective des données historiques, ce qui facilite l’optimisation des stratégies.

  6. Neutralité émotionnelle: réduire l’impact émotionnel subjectif sur la base d’indicateurs objectifs.

  7. Multifonctionnalité: utilisation dans différentes périodes et variétés de transactions.

Risque stratégique

  1. Surtrades: les marchés en crise peuvent générer des transactions fréquentes, augmentant les coûts.

  2. L’EMA et le SDI sont des indicateurs de retard qui peuvent être plus lents à réagir lorsqu’une tendance est inversée.

  3. Risque de fausse rupture: il est possible d’avoir une mauvaise compréhension de la tendance dans les fluctuations à court terme, ce qui peut conduire à des transactions erronées.

  4. Sensibilité aux paramètres: les performances dépendent fortement des paramètres, ce qui nécessite une optimisation continue.

  5. Dépendance aux conditions du marché: les performances peuvent être médiocres dans certaines conditions.

  6. Risque de levier: un levier élevé peut augmenter les pertes et doit être utilisé avec prudence.

  7. Dépendance à la technologie: dépendance à un environnement technologique stable, où les défaillances du système peuvent entraîner des pertes.

Orientation de l’optimisation de la stratégie

  1. Adaptation dynamique des paramètres: réalisation d’une adaptation automatique des paramètres EMA et SDI pour s’adapter à différentes phases du marché.

  2. Analyse de plusieurs périodes: intégrer des signaux de plusieurs périodes pour améliorer l’exactitude des tendances.

  3. Filtrage de la volatilité: ajout d’indicateurs de volatilité tels que l’ATR, afin d’ajuster les règles de négociation en période de forte volatilité.

  4. Identification de l’état du marché: introduire la classification des états du marché (trends/tremblements) et optimiser la logique de négociation de manière ciblée.

  5. Optimisation de la gestion des fonds: mise en œuvre d’un ajustement dynamique des positions, ajustement automatique des risques en fonction de la situation de la perte et de la perte du compte.

  6. Portfolio d’indicateurs: envisagez d’ajouter d’autres indicateurs complémentaires, tels que le RSI ou le MACD, pour améliorer la fiabilité du signal.

  7. Intégration de l’apprentissage automatique: introduire des algorithmes d’apprentissage automatique, optimiser la sélection des paramètres et la génération de signaux.

Résumer

La stratégie de suivi des tendances auto-adaptative combinée à l’EMA et à l’SDI présente une forte capacité d’adaptation au marché et de gestion des risques. Grâce à des paramètres flexibles et à des mesures de contrôle des risques complètes, elle offre aux traders un cadre de négociation quantifié fiable. Le principal avantage de la stratégie réside dans sa capture sensible des tendances et sa stricte maîtrise des risques, ce qui lui permet de maintenir une performance stable dans différents environnements de marché.

Cependant, les traders doivent toujours être attentifs aux risques potentiels tels que le retard et la sensibilité des paramètres inhérents à la stratégie. La stratégie est susceptible d’améliorer encore sa performance et sa stabilité grâce à une optimisation et à une amélioration continues, en particulier en ce qui concerne l’ajustement des paramètres dynamiques, l’analyse de plusieurs périodes et l’identification de l’état du marché.

Dans l’ensemble, cette stratégie fournit une base solide pour le trading quantitatif et convient aux investisseurs qui recherchent des méthodes de trading systématiques et disciplinées. En comprenant en profondeur les principes de la stratégie et en combinant un style de trading individuel, les traders peuvent utiliser efficacement cet outil pour renforcer leur avantage concurrentiel sur les marchés financiers.

Code source de la stratégie
/*backtest
start: 2024-06-01 00:00:00
end: 2024-06-30 23:59:59
period: 1h
basePeriod: 15m
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/
// © erdas0

//@version=5
strategy("Strategy SEMA SDI Webhook", overlay=true, slippage = 1, commission_value = 0.035, default_qty_type=strategy.percent_of_equity, default_qty_value=50, initial_capital = 1000, calc_on_order_fills = true, process_orders_on_close = true)
// Start and end dates
dts=input(false,"",inline="dts")
dte=input(false,"",inline="dte")
start_date = input(timestamp("2023-01-01 00:00:00"), "Start Date",inline="dts") 
end_date = input(timestamp("2124-01-01"), "End Date",inline="dte") 
times = true
// Initial capital
leverage= input.int(10, "Leverage", minval=1,inline="qty") //Leverage Test
usdprcnt= input.int(50, "%", minval=1,inline="qty")
qty= input(false,"Inital USDT ◨",inline="qty")
initial_capital = qty ? (strategy.initial_capital+strategy.netprofit)/close*leverage*usdprcnt/100 : na
//Level Inputs
tpon=input(false,"TP ◨",group ="Take Profit/Stop Loss", inline="1")
sloc=input(true,"SL ◨",group ="Take Profit/Stop Loss", inline="1")
tron=input(true,"Trailing ◨",group ="Take Profit/Stop Loss", inline="1")

tp = tpon ? input.float(25, "Take Profit %", minval=0.1,step=0.1,group ="Take Profit/Stop Loss", inline="2") : na
sl = sloc ? input.float(4.8, "Stop Loss %", minval=0.1,step=0.1,group ="Take Profit/Stop Loss", inline="2") : na
tr = tron ? input.float(1.9, "Trailing Stop ", minval=0.1,step=0.1,group ="Take Profit/Stop Loss", inline="4") : na

// Take profit and stop loss levels
dir=strategy.position_size/math.abs(strategy.position_size) //Directions
newtrade=strategy.closedtrades>strategy.closedtrades[1]
pftpcnt=dir<0 ? (strategy.position_avg_price-low)/strategy.position_avg_price*100 : dir>0 ? (high-strategy.position_avg_price)/strategy.position_avg_price*100 : na //max profit

pftpr= (1 + pftpcnt*dir/100) * strategy.position_avg_price //Trailing Price
take_profit = (1 + tp*dir/100) * strategy.position_avg_price
stop_loss = (1 - sl*dir/100) * strategy.position_avg_price

var float maxpft=na //max profit percent
maxpft := newtrade ? 0 : strategy.openprofit > 0 ?  math.max(pftpcnt,maxpft) : maxpft
var float Tr=na //Trailing
Tr := newtrade ? na : pftpcnt >= tr and maxpft-pftpcnt >= tr ?  close : Tr

//Inputs
ocema=input(true, title='EMA ◨',group="Inputs",inline="2")
ocsd=input(true, title='SDI ◨',group="Inputs",inline="2")
ocsm=input(true, title='Smooth ◨',group="Inputs",inline="2")
lenf = input.int(58, "Fast Ema", minval=1,group ="Inputs", inline="3")
lens = input.int(70, "Slow Ema", minval=1,group ="Inputs", inline="3")
slen = input.int(3, "Smooth", minval=1,group ="Inputs", inline="4")
dilen = input.int(1, title="DI Length", minval=1,group ="SDI", inline="5")
sdi = input.int(6, title="DI Smooth", minval=1,group ="SDI", inline="5")

//EMA
emaf=ta.ema(close,lenf)
emas=ta.ema(close,lens)
semaf=ta.ema(emaf,slen)
semas=ta.ema(emas,slen)
//SDI
dirmov(len,smt) =>
	up = ta.change(high)
	down = -ta.change(low)
	plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
	minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
	truerange = ta.rma(ta.tr, len)
	plus = ta.ema(fixnan(100 * ta.rma(plusDM, len) / truerange),smt)
	minus = ta.ema(fixnan(100 * ta.rma(minusDM, len) / truerange),smt)
	[plus, minus]
[plus,minus]=dirmov(dilen,sdi)
pm=ta.ema(plus-minus,10) 
sdcl= plus>minus ? color.new(color.green,80) :plus<minus ? color.new(color.red,80) : na
cpm= pm>pm[1] ? color.lime : pm<pm[1] ? color.red : color.yellow
barcolor(cpm,title="PM Color")

//Plot
plot(ocsm ? semaf:emaf,"Fast Ema",color=color.green)
plot(ocsm ? semas:semas,"Slow Ema",color=color.red)
// Conditions
Long = (ocsd ? plus>minus:true) and (ocema ? (ocsm ? semaf:emaf)>(ocsm ? semas:emas):true)
Short = (ocsd ? plus<minus:true) and (ocema ? (ocsm ? semaf:emaf)<(ocsm ? semas:emas):true)

// Strategy conditions
if Long and times
    strategy.close("Short","Close S")
    strategy.entry("Long", strategy.long, comment="L",qty = initial_capital)
if strategy.position_size>0
    strategy.exit("Long LTP", "Long", limit=take_profit, stop=stop_loss, comment="LSL",comment_profit = "LTP")
if Tr and strategy.position_size>0
    strategy.exit("Long LTP", "Long", limit=take_profit, stop=pftpr, comment="Tr",comment_profit = "LTP")

if Short and times
    strategy.close("Long","Close L")
    strategy.entry("Short", strategy.short, comment="S",qty = initial_capital)
if strategy.position_size<0
    strategy.exit("Short STP", "Short", limit=take_profit, stop=stop_loss, comment="SSL",comment_profit ="STP" )
if Tr and strategy.position_size<0
    strategy.exit("Short STP", "Short", limit=take_profit, stop=pftpr, comment="Tr",comment_profit = "STP")

if not times
    strategy.close_all()