La stratégie de l’indicateur d’agglomération utilise l’indicateur d’agglomération pour juger du flux de fonds sur le marché afin de capturer les changements de tendance du marché. La stratégie combine les moyennes mobiles rapides et les moyennes mobiles lentes pour former une courbe d’indicateur, avec des achats à travers la courbe et des ventes à travers la courbe pour suivre la tendance du marché.
Cette stratégie est basée sur l’indicateur de dynamique d’agrégation, qui améliore l’indicateur de William en remplaçant le prix d’ouverture par la moyenne des prix les plus élevés et les plus bas du jour pour résoudre le problème de l’absence de prix d’ouverture. La formule de l’indicateur est:
Ligne de masse agglomérée en mouvement = moyenne mobile de l’indice de masse agglomérée en mouvement rapide - moyenne mobile de l’indice de masse agglomérée en mouvement lent
La formule pour calculer l’indice de dynamique de l’agglomération est:
Indice de dynamique d’agrégation = (prix de clôture - prix d’ouverture) / (prix le plus élevé - le prix le plus bas) * quantité de transaction
En raison de l’absence de prix d’ouverture, nous utilisons:
Indice de dynamique d’agrégation = (prix de clôture - (le plus haut prix + le plus bas prix) / 2) / (le plus haut prix - le plus bas prix) * quantité de transaction
L’indicateur utilise la différence entre les moyennes mobiles rapides et les moyennes mobiles lentes comme ligne de mesure d’agrégation. Lorsque la ligne rapide traverse la ligne lente, elle est un signal d’achat, et lorsque la ligne basse traverse un signal de vente.
Les actions à mener sont:
Cette stratégie présente les avantages suivants:
Cette stratégie comporte aussi des risques:
Le risque peut être maîtrisé par l’optimisation des paramètres et la combinaison d’autres indicateurs.
Cette stratégie peut être optimisée dans les directions suivantes:
Les stratégies d’indicateurs de masse dynamique sont globalement stables et fiables. Les paramètres peuvent être ajustés pour équilibrer les gains et les risques. L’ajout de conditions de filtrage et de stop-loss peut améliorer encore la stabilité de la stratégie.
/*backtest
start: 2023-09-11 00:00:00
end: 2023-10-11 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 18/09/2017
// Indicator plots Money Flow Indicator (Chaikin). This indicator looks
// to improve on Larry William's Accumulation Distribution formula that
// compared the closing price with the opening price. In the early 1970's,
// opening prices for stocks stopped being transmitted by the exchanges.
// This made it difficult to calculate Williams' formula. The Chaikin
// Oscillator uses the average price of the bar calculated as follows
// (High + Low) /2 instead of the Open.
// The indicator subtracts a 10 period exponential moving average of the
// AccumDist function from a 3 period exponential moving average of the
// AccumDist function.
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Money Flow Indicator (Chaikin Oscillator)", shorttitle="MFI")
Fast = input(3, minval=1)
Slow = input(10, minval=1)
reverse = input(false, title="Trade reverse")
hline(0, color=gray, linestyle=hline.style_dashed)
lenMax = max(Fast, Slow)
lenMin = min(Fast, Slow)
xDiv = (high - low) * volume
SumMax = sum(iff(xDiv > 0, (close - open) / (high - low) * volume , 0) , lenMax)
SumMin = sum(iff(xDiv > 0, (close - open) / (high - low) * volume , 0) , lenMin)
emaMax = ema(SumMax, lenMax)
emaMin = ema(SumMin, lenMin)
nRes = emaMax - emaMin
pos = iff(nRes > 0, 1,
iff(nRes < 0, -1, nz(pos[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)
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(nRes, color=blue, title="RMI")