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

Stratégie de fluctuation adaptative basée sur la percée quantitative

Auteur:ChaoZhang est là., Date: le 22 février 2024 à 16h50
Les étiquettes:

img

Résumé

Cette stratégie calcule le volume de transaction le plus élevé et le plus bas au cours d'une certaine période récente pour former une plage de fluctuation adaptative. Lorsque le volume de transaction du cycle actuel dépasse cette plage, des signaux de trading sont générés.

La logique de la stratégie

La logique de base consiste à calculer les valeurs les plus élevées et les plus faibles des volumes de transactions positifs et négatifs dans les N cycles les plus récents pour former une plage de fluctuation adaptative. Déterminez si une percée se produit dans la période en cours en fonction de cette plage tout en tenant compte du signal de ligne Yin Yang pour compléter le jugement.

Le processus de calcul spécifique est le suivant:

  1. Calculer le volume de transaction le plus élevé Le volume de transaction le plus élevé et le plus bas Le plus bas au cours des N cycles les plus récents
  2. Déterminer si le volume de transaction du cycle en cours est supérieur au volume le plus élevé
  3. Combinez si le chandelier actuel est Yin ou Yang pour compléter le jugement de signal de percée
  4. Générer des signaux longs et courts

Analyse des avantages

Les principaux avantages de cette stratégie sont les suivants:

  1. Le réglage de la plage adaptative est sensible aux changements du marché
  2. Capter les tendances à la hausse de la volatilité élevée, réduire le taux de transactions manquantes
  3. Combinez les jugements de forme de bougie pour éviter de fausses percées
  4. Facile à mettre en œuvre et à modifier
  5. Les paramètres sont réglables pour s'adapter à différents produits

Analyse des risques

La stratégie comporte également certains risques:

  1. Prédisposé à chasser les hauts et tuer les bas, besoin d'ajuster les paramètres pour contrôler
  2. Peut générer fréquemment de faux signaux sur les grands marchés à cycle oscillant
  3. Ne peut pas distinguer les percées normales et anormales, besoin d'intégrer d'autres indicateurs ou modèles de jugement
  4. Une seule opportunité d'entrée pour chaque percée, ne peut pas suivre les tendances

L'ajustement des paramètres du cycle et l'intégration d'autres indicateurs de filtrage peuvent être optimisés.

Directions d'optimisation

La stratégie peut être optimisée de plusieurs façons:

  1. Augmenter les intervalles pour ajuster la longueur de gamme en fonction des différents cycles du marché
  2. Incorporer MA, bandes de Bollinger, etc. pour filtrer les signaux
  3. Optimiser les combinaisons avec les modèles de chandeliers pour éviter les faux signaux
  4. Ajouter des modules de réentrée et de stop loss pour que la stratégie puisse suivre les tendances

Résumé

La stratégie est globalement simple et pratique. En combinant l'analyse de la fourchette adaptative et l'analyse des prix en volume, elle peut effectivement capturer des marchés explosifs unilatéraux. Cependant, il existe également un certain risque de faux signaux, nécessitant des ajustements de paramètres appropriés et des outils complémentaires avant de pouvoir obtenir un impact maximal.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
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/
// © EvoCrypto

//@version=4
strategy("Ranged Volume Strategy - evo", shorttitle="Ranged Volume", format=format.volume)

// INPUTS {
Range_Length    =   input(5,        title="Range Length",                       minval=1)

Heikin_Ashi     =   input(true,     title="Heikin Ashi Colors")
Display_Bars    =   input(true,     title="Show Bar Colors")
Display_Break   =   input(true,     title="Show Break-Out")
Display_Range   =   input(true,     title="Show Range")
// }

// SETTINGS {
Close           =   Heikin_Ashi ? security(heikinashi(syminfo.tickerid), timeframe.period, close)    : close
Open            =   Heikin_Ashi ? security(heikinashi(syminfo.tickerid), timeframe.period, open)     : open

Positive        =    volume
Negative        =   -volume

Highest         =   highest(volume, Range_Length)
Lowest          =   lowest(-volume, Range_Length)

Up              =   Highest > Highest[1] and Close > Open
Dn              =   Highest > Highest[1] and Close < Open

Volume_Color    =   
 Display_Break and Up   ? color.new(#ffeb3b, 0)     : 
 Display_Break and Dn   ? color.new(#f44336, 0)     : 
 Close > Open           ? color.new(#00c0ff, 60)    : 
 Close < Open           ? color.new(#000000, 60)    : na 
// }

//PLOTS {
plot(Positive,                      title="Positive Volume",    color=Volume_Color,             style=plot.style_histogram,  linewidth=4)
plot(Negative,                      title="Negative Volume",    color=Volume_Color,             style=plot.style_histogram,  linewidth=4)

plot(Display_Range ? Highest : na,  title="Highest",            color=color.new(#000000, 0),    style=plot.style_line,       linewidth=2)
plot(Display_Range ? Lowest  : na,  title="Lowest",             color=color.new(#000000, 0),    style=plot.style_line,       linewidth=2)

barcolor(Display_Bars ? Volume_Color : na)
// }

if (Up)
    strategy.entry("Long Entry", strategy.long)
if (Dn)
    strategy.entry("Short Entry", strategy.short)

Plus de