Les ressources ont été chargées... Je charge...

Tendance de la volatilité de la fourchette adaptative suite à la stratégie de négociation

Auteur:ChaoZhang est là., Date: 2024-11-28 17:24:30
Les étiquettes:Le WPRIndice de résistanceSMAATRLa tendance

img

Résumé

Il s'agit d'une stratégie de suivi de tendance adaptative qui combine les indicateurs de volatilité et de Williams Percent Range. La stratégie ajuste la sensibilité de détermination de la tendance en calculant la gamme de prix et les compteurs personnalisés, ce qui permet une meilleure adaptabilité dans différentes conditions de marché.

Principes de stratégie

La stratégie commence par calculer la fourchette de prix et sa moyenne mobile (AvgRange) dans une période. En comparant les variations de prix en temps réel avec la fourchette de volatilité moyenne, elle établit deux compteurs (TrueCount et TrueCount2) pour enregistrer la fréquence de volatilité significative. Ces compteurs sont utilisés pour ajuster dynamiquement les paramètres de calcul de l'indicateur Williams, permettant à la stratégie d'adapter automatiquement sa sensibilité en fonction des conditions de volatilité du marché.

Les avantages de la stratégie

  1. Une forte adaptabilité - la stratégie maintient une performance stable dans différents environnements de marché grâce à un mécanisme d'adaptation à la volatilité
  2. Contrôle complet des risques - paramètre RISK intégré qui permet aux opérateurs d'ajuster l'agressivité de leur stratégie en fonction de leur préférence pour le risque
  3. Signaux clairs - Utilise un mécanisme de signal de rupture claire pour éviter les faux signaux
  4. Bonne évolutivité - le cadre stratégique permet l'intégration d'autres indicateurs techniques pour l'optimisation
  5. Efficacité de calcul élevée - Utilise des méthodes de calcul simples et efficaces adaptées au trading en temps réel

Risques stratégiques

  1. Sensitivité des paramètres - Le choix des paramètres ASClength et RISK a une incidence significative sur le rendement de la stratégie
  2. Dépendance de l'environnement du marché - Peut générer des signaux de négociation excessifs sur les marchés oscillants
  3. La latence - L'utilisation de moyennes mobiles peut entraîner des retards d'entrée et de sortie
  4. L'exposition à la volatilité de l'indice de risque est calculée sur la base de l'exposition à la volatilité de l'indice. Recommander l'optimisation des paramètres par des tests antérieurs et leur combinaison avec d'autres indicateurs de confirmation afin de réduire les risques.

Directions d'optimisation

  1. Incorporer des indicateurs de volume - Confirmer la validité des changements de tendance par l'analyse du volume
  2. Optimiser la contre-logique - envisager d'utiliser des méthodes statistiques plus complexes pour évaluer la volatilité du marché
  3. Ajouter un mécanisme d'arrêt des pertes - Suggérer la mise en œuvre d'un arrêt dynamique des pertes pour un meilleur contrôle des risques
  4. Filtrage de l'environnement du marché - Ajout d'un module d'évaluation des conditions du marché afin d'éviter les conditions de négociation inappropriées
  5. Adaptation des paramètres - Développer un mécanisme d'optimisation automatique des paramètres pour améliorer l'adaptabilité de la stratégie

Résumé

Cette stratégie innovante combine l'analyse de la volatilité et le suivi des tendances, améliorant la stabilité et la fiabilité de la stratégie grâce à des mécanismes adaptatifs.


/*backtest
start: 2024-10-28 00:00:00
end: 2024-11-27 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("ASCTrend", shorttitle="ASCTrend", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

eternalfg = input(false, title="eternal 確定")
eternal = eternalfg ? 1 : 0
ASClength = input.int(title="ASC Length", minval=4, defval=10)
RISK = input.int(title="RISK", minval=0, defval=3)

// Custom sum function
customSum(source, length) =>
    sum = 0.0
    for i = 0 to length - 1
        sum := sum + source[i]
    sum

x1 = 67 + RISK
x2 = 33 - RISK
Range = ta.highest(ASClength) - ta.lowest(ASClength)
AvgRange = ta.sma(Range, ASClength)
CountFg = math.abs(open - close) >= AvgRange * 2.0 ? 1 : 0
TrueCount = customSum(CountFg, ASClength)
CountFg2 = math.abs(close[3] - close) >= AvgRange * 4.6 ? 1 : 0
TrueCount2 = customSum(CountFg2, ASClength - 3)
wpr3RR = ta.wpr(3 + RISK + RISK)
wpr3 = ta.wpr(3)
wpr4 = ta.wpr(4)
WprAbs = 100 + (TrueCount2 > 0 ? wpr4 : TrueCount > 0 ? wpr3 : wpr3RR)
ASC_Trend = 0
ASC_Trend := WprAbs[eternal] < x2[eternal] ? -1 : WprAbs[eternal] > x1[eternal] ? 1 : ASC_Trend[1]

if (ta.crossover(ASC_Trend, 0))
    strategy.entry("Long", strategy.long)

if (ta.crossunder(ASC_Trend, 0))
    strategy.entry("Short", strategy.short)

plotshape(ta.crossover(ASC_Trend, 0), location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small, text="B", textcolor=color.white)
plotshape(ta.crossunder(ASC_Trend, 0), location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small, text="S", textcolor=color.white)

alertcondition(ta.crossover(ASC_Trend, 0), title="ASC_Trend UP", message="ASC_Trend UP")
alertcondition(ta.crossunder(ASC_Trend, 0), title="ASC_Trend Down", message="ASC_Trend Down")

Relationnée

Plus de