
La stratégie d’agrégation est une stratégie de trading quantitative qui combine une stratégie de retournement de la forme 123 avec une stratégie de rupture à haut et bas niveau. Cette stratégie permet de réaliser une combinaison d’avantages de fonds sur plusieurs périodes de temps en utilisant un jugement global des signaux d’indicateurs sur différentes périodes de temps.
La stratégie de fusion se compose de deux parties:
123 stratégies de retour
Cette stratégie est inspirée de l’idée de P183 de Ulf Jensen dans son livre Comment obtenir trois fois plus de gains sur le marché à terme. Elle génère des signaux d’achat et de vente en déterminant la relation entre le prix de clôture des 2 jours consécutifs et le prix de clôture de la veille.
Stratégie de rupture
La stratégie détermine les signaux de négociation en déterminant si les prix ont franchi les hauts et les bas des différents cycles. Elle calcule les prix les plus élevés et les plus bas du cycle actuel et du cycle précédent, générant un signal d’achat lorsque les prix franchissent les prix les plus élevés et un signal de vente lorsque les prix franchissent les prix les plus bas. L’avantage de la stratégie réside dans la capacité d’identifier les caractéristiques de la forme des différentes lignes cycliques et d’entrer plus tôt sur le marché lorsque la tendance se forme.
La stratégie de fusion combine les deux stratégies ci-dessus pour produire un signal de transaction réel lorsque la direction des signaux des deux stratégies est la même. Cela permet de filtrer certains signaux invalides générés par l’erreur de jugement d’une seule stratégie et d’améliorer la fiabilité du signal.
Une analyse globale de plusieurs périodes de temps pour améliorer l’exactitude du signal
Cette stratégie, qui intègre les caractéristiques morphologiques de la ligne solaire et des périodes de temps plus élevées, permet d’améliorer l’exactitude des signaux de négociation et d’éviter d’être induit en erreur par les fluctuations à court terme du marché.
L’indicateur stochastique est utilisé pour juger les transactions en cours.
L’application de l’indicateur StochasticSlow évite les achats précipités dans les zones de surachat et l’application de l’indicateur StochasticFast évite les ventes précipitées dans les zones de surachat, réduisant ainsi les pertes inutiles.
Capturez les caractéristiques des tendances à temps et réduisez la probabilité de manquer une opportunité
Les stratégies de rupture à bas et haut niveau permettent d’identifier les zones critiques de rupture de prix au cours d’une période plus longue, d’entrer plus tôt dans la tendance et de réduire la probabilité de manquer une opportunité.
Une combinaison de plusieurs stratégies, avec une flexibilité d’optimisation
Les stratégies sont composées de plusieurs sous-stratégies, avec un grand espace d’optimisation, qui peut être optimisé en ajustant les paramètres des sous-stratégies ou en introduisant de nouvelles sous-stratégies, ce qui rend la stratégie plus stable et plus fiable.
La logique de la stratégie est claire et compréhensible
La structure de la stratégie est simple et claire, facile à comprendre et à modifier, et facile à maintenir ultérieurement.
Augmentation du décalage du signal en synthèse multi-période
Bien que la synthèse de plusieurs périodes de temps puisse améliorer l’exactitude du signal, elle peut aussi entraîner un certain retard du signal, ce qui peut entraîner la perte d’opportunités de négociation sur des lignes courtes.
123 Les formes ne peuvent pas identifier une inversion de tendance plus longue
Les stratégies de retournement ne permettent pas d’identifier les principaux retournements de tendance sur des périodes plus longues en se basant uniquement sur les événements des derniers jours.
Une mauvaise configuration des paramètres de périodicité peut entraîner un faux signal
Les paramètres de stochastique et les paramètres de rupture de haute et basse fréquence mal configurés peuvent générer trop de faux signaux de négociation.
La capacité d’adaptation à des situations particulières est faible sur la base de seules mesures techniques.
Cette stratégie est basée sur des indicateurs techniques uniquement et ne prend pas en compte les informations de base, et est moins adaptée aux événements majeurs de la vague noire.
Les solutions pour faire face aux risques:
Réduire le temps de calcul de manière appropriée pour réduire le retard du signal.
Essayez d’introduire des indicateurs ou des formes de plus longues périodes comme filtres.
Optimiser les paramètres et tester leur stabilité lors des retours.
Considérez le filtrage des signaux en combinant les facteurs fondamentaux.
Test et optimisation des paramètres de chaque sous-stratégie pour les rendre plus robustes.
Ajout d’autres logiques de prise de décision auxiliaires, telles que la composition de l’indicateur de base, l’orientation des flux de fonds, etc.
La mise en place d’une stratégie de stop-loss pour contrôler les pertes maximales sur une seule transaction.
Les paramètres sont affinés pour une variété donnée, afin d’améliorer l’adaptation de la stratégie à cette variété.
Des modèles d’apprentissage automatique pour l’aide à la décision.
En résumé, la stratégie d’agrégation intègre les avantages des indicateurs techniques à plusieurs échelles de temps et vise à améliorer l’exactitude et la rapidité du jugement des signaux. Par rapport à la stratégie d’indicateur technique unique, elle a une capacité de jugement de tendance plus fine et une production de signaux plus stable. Cependant, la stratégie présente également un certain retard et une faible adaptabilité aux situations particulières.
/*backtest
start: 2023-10-10 00:00:00
end: 2023-11-09 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 25/11/2020
// This is combo strategies for get a cumulative signal.
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50.
// The strategy sells at market, if close price is lower than the previous close price
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// This script shows a high and low period value.
// Width - width of lines
// SelectPeriod - Day or Week or Month and etc.
// LookBack - Shift levels 0 - current period, 1 - previous and etc.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
vFast = sma(stoch(close, high, low, Length), KSmoothing)
vSlow = sma(vFast, DLength)
pos = 0.0
pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0)))
pos
HLL(LookBack, SelectPeriod) =>
pos = 0.0
xHigh = security(syminfo.tickerid, SelectPeriod, high[LookBack])
xLow = security(syminfo.tickerid, SelectPeriod, low[LookBack])
vS1 = xHigh
vR1 = xLow
pos := iff(close > vR1, 1,
iff(close < vS1, -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & High and Low Levels", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
SelectPeriod = input(title="Resolution", type=input.resolution, defval="D")
LookBack = input(1, minval=0)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posHLL = HLL(LookBack, SelectPeriod)
pos = iff(posReversal123 == 1 and posHLL == 1 , 1,
iff(posReversal123 == -1 and posHLL == -1, -1, 0))
possig = iff(reverse and pos == 1, -1,
iff(reverse and pos == -1 , 1, pos))
if (possig == 1)
strategy.entry("Long", strategy.long)
if (possig == -1)
strategy.entry("Short", strategy.short)
if (possig == 0)
strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )