Stratégie de momentum quantitatif basée sur le moment de pression LazyBear


Date de création: 2023-12-21 14:22:49 Dernière modification: 2023-12-21 14:22:49
Copier: 0 Nombre de clics: 926
1
Suivre
1621
Abonnés

Stratégie de momentum quantitatif basée sur le moment de pression LazyBear

Aperçu

La stratégie est principalement basée sur l’indicateur Squeeze Momentum de LazyBear, qui analyse les moments d’achat et de vente. Elle analyse le mouvement des points de basculement de la tendance, positionne les hauts et les bas comme signaux de vente et d’achat. Comme il s’agit d’une stratégie multi-joueurs, l’indice des moyennes mobiles sur 50 cycles est également pris en compte pour identifier la tendance à la hausse.

Principe de stratégie

Cette stratégie combine l’indicateur de la ceinture de Brin et l’indicateur du canal de Keltner pour identifier les zones de tendance et de pression. Plus précisément, elle calcule la ceinture de Brin de 20 cycles, ainsi que la trajectoire ascendante et descendante du canal de Keltner de 20 cycles.

En outre, la stratégie utilise également la régression linéaire pour analyser les tendances et les pentes de la dynamique. Elle calcule la valeur de la régression linéaire des prix typiques moins les prix des 20 dernières cycles. Lorsque la pente de la valeur de la régression linéaire est positive, elle est considérée comme une tendance à la hausse; lorsque la pente est négative, elle est considérée comme une tendance à la baisse.

Pour filtrer les signaux faux, la stratégie détermine également si le prix de clôture est supérieur à la moyenne mobile à 50 jours de l’indice et si la moyenne mobile à 50 jours est en hausse. Un signal d’achat n’est exécuté que si ces deux conditions sont réunies.

Analyse des forces stratégiques

Il s’agit d’une stratégie très intelligente qui permet d’éviter les faux signaux en utilisant deux types d’indicateurs différents pour juger le marché de manière multidimensionnelle. Plus précisément, il présente les avantages suivants:

  1. L’utilisation intégrée des bandes de Brin, des canaux Keltner et des indicateurs de dynamique pour l’analyse multidimensionnelle améliore la précision des jugements.

  2. Les intervalles de compression permettent d’identifier efficacement les hauts et les bas de l’inversion de mouvement et de capturer avec précision les virages.

  3. Le filtrage des tendances basé sur les prix de clôture et les moyennes mobiles à 50 jours permet d’éviter de réitérer les positions ouvertes lors de la liquidation.

  4. Les signaux émis dans la zone d’extrusion réduisent les faux signaux et améliorent la probabilité de gain.

  5. Les paramètres de la stratégie ont beaucoup de place et peuvent être optimisés de manière ciblée par des paramètres tels que la période d’ajustement.

  6. Le plan d’action de la Banque mondiale pour le développement durable (BDD) a été élaboré en tenant compte des tendances cycliques majeures et des indicateurs à court et moyen terme.

Analyse des risques

Bien que la stratégie de Nonfarming se base sur plusieurs indicateurs techniques, elle comporte certains risques:

  1. Les chaînes Brin et Keltner ont été éparpillées, ce qui leur a fait manquer l’occasion d’acheter ou de vendre.

  2. La baisse de la tempête entraînera des pertes plus importantes pour la stratégie.

  3. Dans les conditions de forte volatilité, l’extrusion peut ne pas être visible et le signal est moins important.

  4. Le changement d’établissement de l’établissement d’une société est un changement d’établissement de l’entreprise.

Pour éviter ces risques, nous pouvons:

  1. Optimiser les paramètres pour que la ceinture de Brin et le canal de Keltner soient synchronisés autant que possible.

  2. Il est important de mettre en place des limites de stop-loss et de contrôler les pertes individuelles.

  3. Utilisez cette stratégie dans le cadre d’une stratégie combinée, en conjonction avec d’autres stratégies.

  4. Réduire la position de manière appropriée en cas de forte volatilité.

Direction d’optimisation

La stratégie a encore beaucoup à optimiser, notamment:

  1. Optimiser les cycles de longueur de la ceinture de Brin et du canal de Keltner pour les rendre aussi synchrones que possible.

  2. Testez différents facteurs de multiplication pour trouver la meilleure combinaison de paramètres.

  3. Essayez d’ajouter d’autres indicateurs pour confirmer, comme le RSI.

  4. Cette stratégie est utilisée de manière sélective pour déterminer la phase du marché en fonction de modèles tels que les lignes de couleurs de Shenhua.

  5. Paramètres d’optimisation dynamique utilisant des méthodes telles que l’apprentissage automatique.

  6. Il s’agit d’un projet de recherche de variétés de devises pour trouver celles qui conviennent le mieux.

  7. Découvrez les effets de cette stratégie sur des périodes plus longues (ligne solaire, périodique, etc.).

Résumer

La stratégie de quantification de la dynamique de LazyBear utilise un ensemble d’indicateurs techniques pour identifier avec précision les virages de dynamique dans les intervalles d’extrême tension et éviter de fréquemment ouvrir des positions dans des situations non tendance. Elle définit systématiquement les règles de négociation quantitative et se démarque par une excellente performance dans la rétro-évaluation.

Code source de la stratégie
/*backtest
start: 2023-11-20 00:00:00
end: 2023-12-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

//
// @author LazyBear 
// List of all my indicators: https://www.tradingview.com/v/4IneGo8h/
//
initialBalance = 8000

strategy("Crypto momentum strategy", overlay=false)


length = input(20, title="BB Length")
mult = input(2.0, title="BB MultFactor")
lengthKC = input(20, title="KC Length")
multKC = input(1.5, title="KC MultFactor")

useTrueRange = input(true, title="Use TrueRange (KC)", type=input.bool)

// Calculate BB
source = close
basis = sma(source, length)
ema = ema(source, 50)
dev = multKC * stdev(source, length)
upperBB = basis + dev
lowerBB = basis - dev

// Calculate KC
ma = sma(source, lengthKC)
range = useTrueRange ? tr : high - low
rangema = sma(range, lengthKC)
upperKC = ma + rangema * multKC
lowerKC = ma - rangema * multKC

sqzOn = lowerBB > lowerKC and upperBB < upperKC
sqzOff = lowerBB < lowerKC and upperBB > upperKC
noSqz = sqzOn == false and sqzOff == false

val = linreg(source - avg(avg(highest(high, lengthKC), lowest(low, lengthKC)), sma(close, lengthKC)), lengthKC, 0)

slope = (val - val[2])
emaSlope = (ema - ema[1])


bcolor = iff(slope > 0, color.lime, color.red)
scolor = noSqz ? color.green : sqzOn ? color.black : color.green
squeeze = (noSqz ? 0 : sqzOn ? 1 : 0)

plot(val, color=color.gray, style=plot.style_line, linewidth=1, title="momentum")
plot(slope, color=bcolor, style=plot.style_circles, linewidth=2, title="slope")
plot(0, color=scolor, style=plot.style_line, linewidth=2, title="squeeze-zero")

co = crossover(slope / abs(slope), 0)
cu = crossunder(slope / abs(slope), 0)

if co and source > ema and emaSlope > 0
    strategy.entry("long", strategy.long, comment="long")
if cu
    strategy.close("long")