Investissez dans la stratégie de suivi des tendances en or


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

Investissez dans la stratégie de suivi des tendances en or

Aperçu

La stratégie utilise un modèle linéaire pour déterminer la direction de la tendance du marché, et fixe régulièrement des positions supplémentaires en cas de tendance haussière, afin de suivre la tendance à la hausse de la croix dorée du marché.

Principe de stratégie

La stratégie est basée sur les principes techniques suivants:

  1. Utilisez l’EMA moyenne pour déterminer la direction de la tendance du marché. Lorsque l’EMA rapide traverse l’EMA lente, jugez-le comme une tendance haussière et préparez-vous à entrer dans plusieurs directions.

  2. Lorsque l’indicateur MACD est négatif, cela indique que le cours commence à s’affaiblir et que l’entrée est multidirectionnelle.

  3. Limiter le nombre d’entrées à une seule fois par mois pour éviter de faire le championnat. Le nombre d’entrées à chaque fois peut être fixé.

  4. Il est possible de définir une date de début et une date de fin, limitant le cycle de réévaluation. Lorsque la réévaluation se termine, la stratégie égalise toutes les positions.

Plus précisément, la stratégie commence par calculer les lignes EMA rapides et les lignes EMA lentes et détecte la corrélation entre les deux pour déterminer la tendance du marché. En même temps, elle calcule l’indicateur MACD pour déterminer le point d’entrée spécifique.

Avantages stratégiques

Il s’agit d’une stratégie de suivi de tendance simple et directe qui présente les avantages suivants:

  1. L’utilisation de l’EMA pour déterminer la direction des grandes tendances est simple et pratique. L’EMA a un certain effet d’adoucissement sur les variations de prix et peut filtrer efficacement le bruit du marché de la volatilité.

  2. L’indicateur MACD permet de déterminer avec plus de précision le moment où la structure de l’offre et de la demande est faible, ce qui réduit le risque d’entrée.

  3. Limiter le suivi à une seule opération par mois pour éviter de courir après les hauts et les bas dans un marché haussier.

  4. Il est possible de personnaliser le montant d’entrée par mois et d’ajuster la position de manière flexible en fonction de sa stratégie.

  5. L’efficacité de la stratégie peut être évaluée par des tests de retour à partir des dates de début et de fin.

  6. Il est possible d’éviter l’embarras de conserver une position lorsque le simulateur de trading quitte le marché.

Risques et contre-mesures

Cette stratégie comporte également des risques potentiels, notamment:

  1. Les méthodes qui s’appuient sur la courbe pour juger des tendances peuvent manquer des opportunités d’ajustement à court terme ou ne pas être assez agiles pour réagir lorsque la tendance se retourne. La courbe peut être raccourcie de manière appropriée ou d’autres indicateurs de jugement peuvent être ajoutés pour optimiser.

  2. Il est possible de rater de meilleurs moments d’entrée en faisant un seul rattrapage par mois. Vous pouvez envisager d’alléger la fréquence d’entrée ou de rattraper à nouveau lorsque vous atteignez un nouveau sommet.

  3. Il existe un certain risque de ressemblance de rétroanalyse. Il convient d’augmenter la marge d’adaptation des paramètres et de faire des tests de robustesse à travers les marchés et les périodes.

  4. Il existe un risque de chutes de suivi et de surachat. Le montant d’entrée mensuel doit être correctement contrôlé pour éviter une position trop importante.

Direction d’optimisation

Cette stratégie de repérage peut être étendue et optimisée dans les domaines suivants:

  1. Augmentation de la logique d’arrêt EXIT, qui interrompt activement les pertes lorsque le marché est en hausse.

  2. Pour obtenir une exposition plus complète à la tendance, il faut ajouter un achat supplémentaire au moment de la création de la norme MACD Smile.

  3. Le rapport de force aérienne, qui compare le nouveau sommet du mois en cours avec celui du mois précédent, permet d’évaluer si la tendance est toujours forte.

  4. Augmentation de la logique de contrôle des positions. Le montant mensuel de l’entrée peut être contrôlé au prorata, et non au fixe.

  5. Évaluer l’impact des différentes combinaisons de lignes égales et des paramètres MACD sur l’efficacité de la stratégie. Trouver la combinaison de paramètres optimale.

  6. Ajout d’un trailing stop pour suivre les pertes. Commencez à suivre les pertes à une certaine amplitude lorsque le prix atteint un nouveau sommet, pour que les bénéfices continuent de fonctionner.

Résumer

Cette stratégie est considérée dans son ensemble comme une simple stratégie de suivi de tendance, dont l’idée centrale est claire et facile à mettre en œuvre. Elle convient parfaitement pour tester l’efficacité du suivi de tendance linéaire et de la combinaison de la fixation des investissements.

Code source de la stratégie
/*backtest
start: 2023-01-01 00:00:00
end: 2023-10-30 00:00:00
period: 1d
basePeriod: 1h
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/
// © runescapeyttanic

//@version=4
// strategy("Buy and Hold entry finder Strategy",pyramiding=10000, overlay=true,initial_capital=0,default_qty_type=strategy.cash,default_qty_value=1000,currency = currency.EUR,commission_type=strategy.commission.cash_per_order,commission_value=0)

//INPUTS##################################################################################################################

maxEmaDistance = input(title="Maximum EMA Distance", type=input.float, step=0.01, defval=50000)
emalength = input(title="EMA Length", type=input.integer,defval=200)

// Make input options that configure backtest date range
startDate = input(title="Start Date", type=input.integer,
     defval=1, minval=1, maxval=31)
startMonth = input(title="Start Month", type=input.integer,
     defval=1, minval=1, maxval=12)
startYear = input(title="Start Year", type=input.integer,
     defval=2020, minval=1800, maxval=2100)

endDate = input(title="End Date", type=input.integer,
     defval=12, minval=1, maxval=31)
endMonth = input(title="End Month", type=input.integer,
     defval=02, minval=1, maxval=12)
endYear = input(title="End Year", type=input.integer,
     defval=2021, minval=1800, maxval=2100)

endDate1=endDate-1
//starttag
//startmonat
//MACD########################################################################################################################

fast_length=12
slow_length=26
src=close
col_macd=#0094ff
fast_ma = ema(src, fast_length)
slow_ma = ema(src, slow_length)
macd = fast_ma - slow_ma

//EMA Distance CALC########################################################################################################

ma1 =ema(close,emalength)
distFromMean = close - ma1

inDateRange = true

longCondition = (distFromMean<=maxEmaDistance and distFromMean>=distFromMean[1] and macd<=0 and inDateRange)
longnow=false

if(longCondition and strategy.position_size == 0)
    strategy.entry("My Long Entry Id", strategy.long)
    longnow:=true

if(longCondition and strategy.position_size > 0)
    longnow:=true
    

if(longCondition and strategy.position_size > 0 and month>valuewhen(longnow, month ,1) or longCondition and strategy.position_size > 0 and year>valuewhen(longnow, year ,1) and inDateRange)
    strategy.entry("My Long Entry Id", strategy.long)

plotchar(minute, "Minuten", "", location = location.top)

plotchar(hour, "Stunden", "", location = location.top)    

plotchar(dayofmonth, "Tage", "", location = location.top)

plotchar(month, "Monat", "", location = location.top)

plotchar(year, "Jahr", "", location = location.top)

plotchar(strategy.position_size, "Positionen", "", location = location.top)

plotchar(longCondition, "Long Condition", "", location = location.top)

if true
    strategy.close_all()

//#########################################################################################################################

plotArrow = if (distFromMean<=maxEmaDistance and distFromMean>=distFromMean[1] and macd<=0)
    1
else
    0
    
plotarrow(series=plotArrow)