Stratégie de suivi de tendance


Date de création: 2023-10-17 15:26:49 Dernière modification: 2023-10-17 15:26:49
Copier: 0 Nombre de clics: 628
1
Suivre
1617
Abonnés

Stratégie de suivi de tendance

Aperçu

Cette stratégie est basée sur un intégrateur d’indicateur personnalisé, permettant de suivre la tendance en calculant la direction de la tendance des prix par la somme de la distance entre le prix et la moyenne mobile.

Principe de stratégie

La stratégie utilise des indicateurs personnalisés pour cumuler la distance entre le prix et la moyenne mobile, et se concrétise comme suit:

  1. Calculer le prix par rapport à une moyenne mobile simple de longueur k = close-sma (close 200)

  2. Définition d’une période cumulative s = 29, avec une addition cumulative des valeurs de k dans la période la plus récente s: sum = 0, for i = 0 to s, sum := sum + k[i]

  3. Un signal de commutation est généré lorsque sum>0 et un signal de commutation lorsque sum<0

  4. Lorsque vous entrez dans une position de plus, vous êtes en position de zéro si sum<0; lorsque vous entrez dans une position de coupe, vous êtes en position de zéro si sum>0

Cette stratégie détermine la direction de la tendance générale des prix en suivant la somme des valeurs positives et négatives de la distance des prix par rapport à la moyenne mobile. La direction positive de la tendance générale des prix est considérée comme une tendance à la hausse lorsque l’intégration est positive.

Avantages stratégiques

  1. Utilisez un compteur d’indicateur personnalisé pour déterminer efficacement la direction de la tendance des prix

  2. L’utilisation de l’intégration pour accumuler la distance entre les prix et les moyennes mobiles permet d’améliorer la précision des tendances

  3. Une logique relativement simple, une mise en œuvre facile à comprendre et une optimisation facile

  4. Il est possible d’ajuster de manière flexible les paramètres de la période d’intégration pour optimiser la sensibilité de l’intégrateur à la détermination des tendances.

  5. Les résultats de la recherche sont bons, les revenus sont stables et peuvent être appliqués

Risque stratégique

  1. Une mauvaise configuration de la période intégrée peut entraîner une insensibilité de l’intégrateur et une perte du point de basculement de la tendance

  2. Une mauvaise configuration de la longueur de la moyenne mobile peut conduire l’intégrateur à mal interpréter la tendance des prix

  3. Les événements majeurs soudains entraînent des fluctuations brusques des prix, ce qui peut entraîner des signaux erronés dans l’incrustateur

  4. Une mauvaise sélection de variétés de négociation, comme une variété trop volatile, peut nuire à l’intégrateur

Les solutions pour faire face aux risques:

  1. Optimisation des paramètres de cycle d’intégration pour rendre l’intégrateur plus sensible aux changements de tendance

  2. Tester l’efficacité des moyennes mobiles de différentes longueurs, en choisissant la longueur qui permet de déterminer efficacement la tendance

  3. La stratégie de fermeture avant les événements majeurs pour éviter les faux signaux de fluctuation des prix

  4. Choisissez des variétés de trading à faible volatilité pour améliorer l’efficacité de l’intégrateur

Orientation de l’optimisation de la stratégie

  1. On peut envisager d’ajouter d’autres indicateurs auxiliaires, tels que le RSI, à la base de l’intégrateur, pour former un jugement global.

  2. On peut étudier l’effet d’intégration de différents types de moyennes mobiles par rapport à la distance de prix.

  3. On peut essayer d’optimiser automatiquement les paramètres du cycle d’intégration pour les adapter à différentes variétés de transactions.

  4. L’indicateur de volume peut être ajouté pour éviter que l’intégrateur ne génère un signal erroné lors d’une forte fluctuation des prix

  5. Les paramètres de l’intégrateur peuvent être automatiquement optimisés par des méthodes telles que l’apprentissage automatique pour rendre les stratégies plus robustes.

Résumer

Cette stratégie permet de suivre efficacement les tendances en utilisant une méthode qui permet de déterminer la direction de la tendance des prix en utilisant un multiplicateur d’indicateurs personnalisés. La logique de la stratégie est simple et claire.

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

//@version=2
strategy("Indicator Integrator Strat",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,currency="USD",initial_capital=100, overlay=true)

l = input(defval=170,title="Length for indicator")
s = input(title="Length of summation",defval=29)
a= sma(close,l)
r=roc(close,l)
k=close-a
sum = 0
for i = 0 to s
    sum := sum + k[i]
plot(a,color=yellow,linewidth=2,transp=0)
//bc =  iff( sum > 0, white, teal)
//plot(sum,color=bc, transp=20, linewidth=3,style=columns)
//plot(sma(sum,3),color=white)
//hline(0)

inpTakeProfit = input(defval = 0, title = "Take Profit", minval = 0)
inpStopLoss = input(defval = 0, title = "Stop Loss", minval = 0)
inpTrailStop = input(defval = 0, title = "Trailing Stop Loss", minval = 0)
inpTrailOffset = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0)
useTakeProfit = inpTakeProfit >= 1 ? inpTakeProfit : na
useStopLoss = inpStopLoss >= 1 ? inpStopLoss : na
useTrailStop = inpTrailStop >= 1 ? inpTrailStop : na
useTrailOffset = inpTrailOffset >= 1 ? inpTrailOffset : na


longCondition = sum>0
exitlong = sum<0

shortCondition = sum<0
exitshort = sum>0

strategy.entry(id = "Long", long=true, when = longCondition)
strategy.close(id = "Long", when = exitlong)
strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitlong)

strategy.entry(id = "Short", long=false, when = shortCondition)
strategy.close(id = "Short", when = exitshort)
strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitshort)