Stratégie originale de suivi de tendance basée sur les moyennes mobiles


Date de création: 2023-11-23 15:54:37 Dernière modification: 2023-11-23 15:54:37
Copier: 0 Nombre de clics: 581
1
Suivre
1617
Abonnés

Stratégie originale de suivi de tendance basée sur les moyennes mobiles

Aperçu

Cette stratégie est basée sur la partie substantielle de la bougie, combinée à l’indicateur EMA pour déterminer la direction de la tendance du marché, pour réaliser l’effet de l’ORIGINAL PRIMITIVE TREND TRACKING.

Principe de stratégie

  1. Calculer la longueur moyenne de l’entité candle sur les 30 dernières lignes de K
  2. Faire plus lorsque la dernière ligne K est la ligne Y et que la longueur de l’entité est supérieure à sbody/2
  3. Une fois que le plus a été fait, si la ligne K la plus récente est une ligne négative, la longueur de l’entité est supérieure à sbody/2 et la position actuelle est un état de profit, alors le plus est égal à la position
  4. Lorsque la dernière ligne K est négative et que la longueur de l’entité est supérieure à sbody/2, laissez un espace
  5. Lorsque la position est libre, la position est vide si la ligne K la plus récente est la ligne du soleil, la longueur de l’entité est supérieure à sbody/2 et la position actuelle est en profit.

Analyse des avantages

Cette stratégie présente les avantages suivants:

  1. Simple, facile à comprendre et à mettre en œuvre
  2. Selon la structure de la bougie, il y a un effet sur les ruptures de trading.
  3. Suivre les tendances pour capturer les événements plus importants
  4. La position de profit est rapidement arrêtée, ce qui est avantageux pour la localisation des bénéfices.

Analyse des risques

Cette stratégie présente aussi des risques:

  1. L’incapacité à filtrer efficacement les fausses intrusions pourrait entraîner des pertes inutiles
  2. La vulnérabilité aux glissements de terrain et aux sauts nocturnes est évaluée uniquement en fonction de la bougie.
  3. La fréquence des transactions n’est pas prise en compte

Le risque peut être réduit par:

  1. Combinaison avec d’autres indicateurs pour filtrer le signal
  2. Définition de la stratégie de stop loss
  3. Optimiser les paramètres pour contrôler la fréquence des transactions

Direction d’optimisation

Cette stratégie peut être optimisée dans les domaines suivants:

  1. Augmentation des indicateurs de rupture et filtrage des fausses ruptures
  2. Augmentation des stratégies de stop loss et réduction des pertes individuelles
  3. Combiné à un indicateur de tendance, le test de la direction de la tendance
  4. Optimisation des paramètres pour trouver la meilleure combinaison de paramètres

Résumer

Cette stratégie appartient au type original et simple de suivi de la tendance. Elle permet de suivre efficacement la direction de la tendance grâce à la structure de la chandelle. Elle complète le portefeuille de suivi de la tendance, mais doit encore être optimisée pour réduire les risques.

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

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

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
usebody = input(true, defval = true, title = "Use body")
useus = input(true, defval = true, title = "Use UUP")
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(01, defval = 01, 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")

//Logic
body = abs(close - open)
sbody = ema(body, 30) / 2
bar = close > open ? 1 : close < open ? -1 : 0

//Signals
up = bar == -1 and (body > sbody or usebody == false) and (close < strategy.position_avg_price or strategy.position_size <= 0 or useus == false)
dn = bar == 1 and (body > sbody or usebody == false) and (close > strategy.position_avg_price or strategy.position_size >= 0 or useus == false)

//Trading
if up
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00)))

if dn
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00)))
    
if time > timestamp(toyear, tomonth, today, 00, 00)
    strategy.close_all()