Choix de la rédactionOPEN-SOURCE SCRIPT

Max Drawdown Calculating Functions (Optimized)

Maximum Drawdown and Maximum Relative Drawdown% calculating functions.

I needed a way to calculate the maxDD% of a serie of datas from an array (the different values of my balance account). I didn't find any builtin pinescript way to do it, so here it is.

There are 2 algorithms to calculate maxDD and relative maxDD%, one non optimized needs n*(n - 1)/2 comparisons for a collection of n datas, the other one only needs n-1 comparisons.

In the example we calculate the maxDDs of the last 10 close values.

There a 2 functions : "maximum_relative_drawdown" and "maximum_dradown" (and "optimized_maximum_relative_drawdown" and "optimized_maximum_drawdown") with names speaking for themselves.

Input : an array of floats of arbitrary size (the values we want the DD of)
Output : an array of 4 values [maxDD, peak, trough, iterations]

I added the iteration number just for fun.

Basically my script is the implementation of these 2 algos I found on the net :

var peak = 0;
var n = prices.length
for (var i = 1; i < n; i++){
dif = prices[peak] - prices;
peak = dif < 0 ? i : peak;
maxDrawdown = maxDrawdown > dif ? maxDrawdown : dif;
}

var n = prices.length
for (var i = 0; i < n; i++){
for (var j = i + 1; j < n; j++){
dif = prices - prices[j];
maxDrawdown = maxDrawdown > dif ? maxDrawdown : dif;
}
}

Feel free to use it.

version=4
codedrawdownmaximumOscillators

Script open-source

Dans le plus pur esprit TradingView, l'auteur de ce script l'a publié en open-source, afin que les traders puissent le comprendre et le vérifier. Bravo à l'auteur! Vous pouvez l'utiliser gratuitement, mais la réutilisation de ce code dans une publication est régie par nos Règles. Vous pouvez le mettre en favori pour l'utiliser sur un graphique.

Vous voulez utiliser ce script sur un graphique ?

Clause de non-responsabilité