Stratégie de suivi des tendances pour maximiser les bénéfices

Auteur:ChaoZhang est là., Date: 2023-10-11 14h38h40
Les étiquettes:

Résumé

Cette stratégie calcule la moyenne mobile et le canal de déviation type du prix pour former des rails supérieurs et inférieurs dynamiques, et combine la valeur moyenne des prix les plus élevés et les plus bas pour former le rail du milieu, afin de juger de la direction de la tendance actuelle. Lorsque le prix traverse le rail supérieur, cela signifie long. Lorsque le prix traverse le rail inférieur, cela signifie court. Cela implémente une stratégie qui se négocie en fonction des changements de tendance.

La logique de la stratégie

  1. Calculer la moyenne mobile simple à 20 jours de clôture comme base pour la ligne de référence centrale
  2. Calculer l'écart type de 20 jours de la ligne de fermeture comme base pour la distance entre les rails supérieur et inférieur et le rails du milieu
  3. La base du rail du milieu ± 2*dev détermine le rail supérieur et le rail inférieur.
  4. Calculer la valeur moyenne des prix supérieurs2 les plus élevés et des prix inférieurs2 les plus bas au cours des vingt derniers jours comme base2 pour le deuxième rail du milieu
  5. Prenez la valeur moyenne MB des deux rails intermédiaires ci-dessus comme le rails intermédiaire final
  6. Lorsque près est supérieur à la moyenne du rail MB, c'est un signal long.
  7. Déterminez la direction longue et courte en fonction du signal pour suivre la tendance et le profit

Analyse des avantages

  1. Utiliser le canal de déviation standard dynamique peut rapidement capturer les changements de tendance des prix
  2. En combinant les informations des prix les plus élevés et les plus bas, le rail du milieu est plus significatif
  3. La double voie du milieu rend le signal plus précis et fiable
  4. L'idée stratégique est simple et claire, facile à comprendre et à mettre en œuvre
  5. Il existe peu de paramètres configurables, adaptés à divers environnements de marché

Analyse des risques

  1. Lorsqu'il s'agit d'opérations à la rupture du rail supérieur ou inférieur, des stratégies d'arrêt des pertes doivent être envisagées pour contrôler les pertes uniques
  2. La fréquence de négociation peut être élevée et l'impact des commissions doit être pris en considération.
  3. Les paramètres tels que les paramètres de période doivent être soigneusement optimisés pour éviter le surajustement
  4. Lorsque la tendance change, il y a une possibilité de mauvais signaux de trading
  5. Une bonne gestion du capital est requise, un effet de levier excessif ne doit pas être utilisé

Directions d'optimisation

  1. Considérez l'ajout de filtres lors de la rupture à travers les rails supérieurs et inférieurs pour éviter les fausses ruptures
  2. Définir des sorties dynamiques basées sur ATR et autres indicateurs
  3. Incorporer des informations sur le volume de négociation pour vérifier la fiabilité des signaux de rupture
  4. Optimiser les paramètres tels que le cycle de calcul pour s'adapter à un plus grand nombre d'environnements de marché
  5. Envisager de définir la taille de la position pour contrôler le risque de perte unique

Résumé

L'idée générale de cette stratégie est claire et facile à comprendre. En capturant dynamiquement les tendances à travers le canal et en générant des signaux de trading avec plusieurs conceptions de rails intermédiaires, il peut suivre efficacement les directions de tendance pour le trading et obtenir de bons rendements. Dans l'application réelle, l'attention doit être accordée aux stratégies de stop loss, à la gestion du capital, à l'optimisation des paramètres, etc., afin d'obtenir des rendements stables à long terme.


/*backtest
start: 2023-09-10 00:00:00
end: 2023-10-10 00:00:00
period: 4h
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/
// © ErdemDemir

//@version=4
strategy("Lawyers Trend Pro Strategy", shorttitle="Lawyers Trend Pro Strategy", overlay=true)

src = close
mult = 2.0
basis = sma(src, 20)
dev = mult * stdev(src, 20)
upper = basis + dev
lower = basis - dev
offset = 0


lower2 = lowest(20)
upper2 = highest(20)
basis2 = avg(upper2, lower2)


MB= (basis+basis2)/2





col1=close>MB
col3=MB>close
colorE = col1 ? color.blue : col3 ? color.red : color.yellow
p3=plot(MB, color=colorE, linewidth=3)

// Deternine if we are currently LONG
isLong = false
isLong := nz(isLong[1], false)

// Determine if we are currently SHORT
isShort = false
isShort := nz(isShort[1], false)

// Buy only if the buy signal is triggered and we are not already long
buySignal = not isLong and crossover(close,MB)

// Sell only if the sell signal is triggered and we are not already short
sellSignal= not isShort and crossover(MB,close)
if (buySignal)
    isLong := true
    isShort := false

if (sellSignal)
    isLong := false
    isShort := true







/// LONG
strategy.entry("long", true , when = buySignal, comment="Open Long")

strategy.close("long", when=sellSignal, comment = "Close Long")

/// SHORT
strategy.entry("short", false,  when = sellSignal, comment="Open Short")

strategy.close("short", when=buySignal, comment = "Close Short")



Plus de