Stratégie de croisement des moyennes mobiles à long et à court terme

Auteur:ChaoZhang est là., Date: 2023-12-12 11:19:04 Je vous en prie.
Les étiquettes:

img

Résumé

Cette stratégie est basée sur le croisement des moyennes mobiles à long et à court terme du volume des transactions. Elle utilise des EMA de différentes périodes pour calculer les tendances à long et à court terme du volume des transactions, et construit un oscillateur basé sur leur différence.

La logique de la stratégie

L'indicateur de base de cette stratégie est l'oscillateur de volume. Il reflète la tendance du changement de volume de négociation en calculant la différence entre les moyennes mobiles exponentielles à long terme et à court terme.

L'oscillateur de volume = (ShortEMA - LongEMA) / LongEMA * 100

Ici, ShortEMA et LongEMA se réfèrent respectivement à des EMA à court terme et à long terme. Lorsque ShortEMA traverse LongEMA, l'indicateur devient positif, ce qui implique une augmentation du volume des transactions. Lorsque ShortEMA traverse en dessous de LongEMA, l'indicateur devient négatif, ce qui implique une diminution du volume des transactions.

Après avoir calculé l'oscillateur, cette stratégie utilise son croisement avec le niveau zéro pour générer des signaux de négociation. Il va long lorsque l'oscillateur passe de négatif à positif, c'est-à-dire qu'il traverse au-dessus du niveau zéro, et court lorsqu'il passe de positif à négatif, c'est-à-dire qu'il traverse au-dessous du niveau zéro. Cela reflète la conversion de l'élan du volume de négociation.

En outre, la stratégie intègre également des prix élevés et bas précédents pour déterminer des directions spécifiques. C'est-à-dire lorsque l'oscillateur traverse au-dessus du niveau zéro, si le prix élevé précédent est supérieur à la valeur absolue du prix bas précédent, cela implique un signal long, sinon un signal court. Cette caractéristique aide à juger de la force de l'expansion du volume.

Les avantages

Cette stratégie présente les avantages suivants:

  1. L'utilisation du volume des transactions comme indicateur de base peut déterminer efficacement la volonté des acteurs du marché et est très pratique.

  2. L'intégration des EMA à long terme et à court terme permet de saisir simultanément les tendances à moyen et long terme et l'élan à court terme.

  3. Les signaux de croisement formés par l'indicateur et le niveau zéro sont simples et clairs pour la prise de décision.

  4. L'ajout de hauts et de bas précédents pour déterminer les orientations peut faire bon usage de la taille de l'élan des volumes de négociation.

  5. La logique de la stratégie est simple, les paramètres sont flexibles pour l'ajustement et elle a une adaptabilité relativement forte.

Les risques

Il convient de noter certains risques liés à cette stratégie:

  1. L'indicateur de volume peut être influencé par de fausses ruptures du marché, générant de faux signaux.

  2. Dans les marchés à fourchette, les croisements de volume peuvent se produire fréquemment.

  3. Les hauts et les bas précédents ne reflètent que l'expansion la plus récente et ne peuvent déterminer sa viabilité.

  4. Les paramètres doivent être optimisés séparément pour différents produits et périodes de temps.

  5. L'indicateur de volume réagit lentement aux transactions algorithmiques à haute fréquence, manquant peut-être le meilleur moment d'entrée.

Directions d'optimisation

La stratégie peut être optimisée dans les aspects suivants:

  1. Ajout de filtres pour éviter les faux signaux, par exemple en confirmant avec des indicateurs de prix.

  2. Optimisation des périodes des EMA à long terme et à court terme pour qu'elles correspondent aux caractéristiques des différents produits.

  3. Définition des paramètres de période pour les hauts et bas précédents afin d'utiliser les prix maximaux et minimaux d'une période.

  4. Définition d'une fourchette pour la zone de tournant de l'indicateur au lieu d'un niveau unique afin d'éviter une survente.

  5. Ajouter des stratégies de stop loss pour contrôler les pertes uniques.

  6. Incorporation d'autres indicateurs basés sur le volume comme le VRP.

  7. Utiliser des méthodes d'apprentissage automatique pour optimiser automatiquement les paramètres.

Résumé

En résumé, la stratégie d'intersection de la moyenne mobile à court terme de l'oscillateur de volume fait bon usage des caractéristiques d'inversion du volume et a un fort pouvoir de jugement dans la phase initiale des tendances. L'ajout de sommets et de creux antérieurs pour déterminer les directions rend les décisions de trading plus précises. Le contrôle des risques est également important pour prévenir les pertes causées par de faux signaux. Cette stratégie a une grande marge d'optimisation, dans des aspects tels que le réglage des paramètres et la combinaison d'indicateurs, pour raccourcir son retard de négociation et son temps de réaction aux changements du marché.


/*backtest
start: 2022-12-05 00:00:00
end: 2023-03-11 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("SB_Volume_oscillator_Prev_high_low", overlay=true,default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

shortlen = input(5, minval=1)
longlen = input(10, minval=1)
short = ema(volume, shortlen)
long = ema(volume, longlen)
osc = 100 * (short - long) / long
//hline(0, title="Zero")
//plot(osc)
zero=input(0.0)

low_val=input(0.0)
high_val=input(0.0)
prev_high_val=input(0.0)
prev_low_val=input(0.0)
where=input(0)
where:=nz(where[1])
low_val:=nz(low_val[1])
high_val:=nz(high_val[1])
prev_high_val:=nz(prev_high_val[1])
prev_low_val:=nz(prev_low_val[1])
if(crossover(osc,zero))
    high_val:=osc
    where:=1
    prev_low_val:=low_val
    low_val:=osc

if(crossunder(osc,zero))
    low_val:=osc
    where:=-1
    prev_high_val:=high_val
    high_val:=osc

if(where==1)
    if(high_val<osc)
        high_val:=osc
        
if(where==-1)
    if(low_val>osc)
        low_val:=osc


if (crossover(osc,zero))
    if(prev_high_val<=abs(prev_low_val))
        strategy.entry("My Long Entry Id", strategy.long)
    if(prev_high_val>abs(prev_low_val))
        strategy.entry("My Short Entry Id", strategy.short)

if (crossunder(osc,zero))
    if(prev_high_val<=abs(prev_low_val))
        strategy.entry("My Long Entry Id", strategy.long)
    if(prev_high_val>abs(prev_low_val))
        strategy.entry("My Short Entry Id", strategy.short)

Plus de