
La stratégie Z-Score Price Breakout utilise l’indicateur Z-Score du prix pour déterminer si le prix actuel est dans un état anormal, générant ainsi un signal de négociation. Lorsque le score Z-Score du prix est supérieur ou inférieur à une certaine valeur, cela indique que le prix est entré dans un état anormal, ce qui peut entraîner des opérations de plus ou de moins.
L’indicateur central de cette stratégie est le score standard de prix (Z-Score), calculé selon la formule suivante:
Z_score = (C - SMA(n)) / StdDev(C,n)
où C est le prix de clôture, SMA (n) est la moyenne mobile simple pour n cycles, et StdDev (C,n) est la différence standard pour le prix de clôture pour n cycles.
Le score standard reflète le degré d’écart entre le prix actuel et le prix moyen. Lorsque le score standard est supérieur à une certaine marge positive (par exemple, +2), le prix actuel est supérieur à la moyenne de 2 écarts standards et appartient au niveau relativement élevé.
La stratégie commence par calculer le score standard du prix, puis définit un seuil positif-négatif (comme 0 et 0), générant un signal d’achat lorsque le score standard est supérieur au seuil positif et un signal de vente lorsque le score standard est inférieur au seuil négatif.
La stratégie de rupture des prix des scores standard permet de déterminer si le prix actuel est anormal et de négocier en fonction du positif négatif des scores standard des prix. La stratégie est simple et facile à utiliser, mais elle présente également un certain risque.
/*backtest
start: 2023-11-29 00:00:00
end: 2023-12-04 19:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 18/01/2017
// The author of this indicator is Veronique Valcu. The z-score (z) for a data
// item x measures the distance (in standard deviations StdDev) and direction
// of the item from its mean (U):
// z = (x-StdDev) / U
// A value of zero indicates that the data item x is equal to the mean U, while
// positive or negative values show that the data item is above (x>U) or below
// (x Values of +2 and -2 show that the data item is two standard deviations
// above or below the chosen mean, respectively, and over 95.5% of all data
// items are contained within these two horizontal references (see Figure 1).
// We substitute x with the closing price C, the mean U with simple moving
// average (SMA) of n periods (n), and StdDev with the standard deviation of
// closing prices for n periods, the above formula becomes:
// Z_score = (C - SMA(n)) / StdDev(C,n)
// The z-score indicator is not new, but its use can be seen as a supplement to
// Bollinger bands. It offers a simple way to assess the position of the price
// vis-a-vis its resistance and support levels expressed by the Bollinger Bands.
// In addition, crossings of z-score averages may signal the start or the end of
// a tradable trend. Traders may take a step further and look for stronger signals
// by identifying common crossing points of z-score, its average, and average of average.
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="Z-Score Strategy", shorttitle="Z-Score Strategy")
Period = input(20, minval=1)
Trigger = input(0)
reverse = input(false, title="Trade reverse")
hline(Trigger, color=purple, linestyle=line)
xStdDev = stdev(close, Period)
xMA = sma(close, Period)
nRes = (close - xMA) / xStdDev
pos = iff(nRes > Trigger, 1,
iff(nRes < Trigger, -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="Z-Score")