Stratégie de volatilité adaptative basée sur la rupture de la fourchette quantitative


Date de création: 2024-02-22 16:50:46 Dernière modification: 2024-02-22 16:50:46
Copier: 0 Nombre de clics: 563
1
Suivre
1617
Abonnés

Stratégie de volatilité adaptative basée sur la rupture de la fourchette quantitative

Aperçu

Cette stratégie forme une plage de fluctuation adaptative en calculant les valeurs maximales et minimales des transactions de la dernière période donnée. Elle génère un signal de transaction lorsque le volume des transactions de la période en cours dépasse cette plage. La direction du signal est considérée comme une stratégie simple et efficace pour suivre les grandes surprises du marché.

Principe de stratégie

La logique centrale est de calculer le plus haut minimum de transactions positives et négatives sur les N cycles les plus récents, formant une plage d’oscillation adaptative. Sur la base de cette plage, il est possible de déterminer si une rupture a eu lieu à ce moment-là.

Le processus de calcul est le suivant:

  1. Calculer le plus haut et le plus bas taux de transaction des N derniers cycles
  2. Détermine si le volume de transactions du cycle en cours est supérieur ou égal à le volume le plus élevé.
  3. Combinez le courant pour déterminer si le signal est positif ou négatif.
  4. Génération de signaux de commutation

Analyse des avantages

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

  1. S’adapter à l’évolution du marché
  2. Capturer les émergences à forte volatilité et réduire le taux de fuites
  3. Le gouvernement a décidé d’envoyer un message de soutien à l’opposition.
  4. Une approche simple, facile à comprendre et à modifier
  5. Paramètres à régler avec souplesse pour différentes variétés

Analyse des risques

Cette stratégie comporte aussi des risques:

  1. Il est facile de suivre les hauts et les bas, il faut ajuster le contrôle des paramètres.
  2. Des signaux erronés fréquents peuvent survenir dans les marchés à basse fréquence
  3. Incapacité à distinguer une rupture normale d’une rupture anormale, nécessitant une combinaison d’autres indicateurs ou de jugements de modèle
  4. Il n’y a qu’une seule entrée pour chaque percée, il est impossible de suivre la tendance.

L’optimisation peut être réalisée en ajustant le cycle des paramètres, en combinant le filtrage avec d’autres indicateurs.

Direction d’optimisation

Cette stratégie peut être optimisée dans les directions suivantes:

  1. Augmentation des paramètres pour ajuster la longueur des intervalles en fonction des cycles du marché
  2. Ajouter des indicateurs tels que la ligne moyenne, les bandes de blur et le filtrage des signaux
  3. Optimisation de la forme de la ligne K combinée pour éviter les fausses percées et les entrées erronées
  4. Ajout de modules de réentrée et de stop-loss pour permettre à la stratégie de suivre les tendances

Résumer

Cette stratégie est globalement simple et pratique et permet de capturer efficacement les situations unilatérales soudaines grâce à la combinaison de la portée et du coût de l’adaptation. Cependant, il existe un certain risque de fausses informations, qui nécessitent un ajustement approprié des paramètres et l’utilisation d’autres outils pour obtenir le maximum d’efficacité.

Code source de la stratégie
/*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)