Editor's Picks
OPEN-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

Open-source Skript

Ganz im Sinne von TradingView hat dieser Autor sein/ihr Script als Open-Source veröffentlicht. Auf diese Weise können nun das Script auch andere Trader verstehen und prüfen. Vielen Dank an den Autor! Sie können das Script kostenlos verwenden. Die Nutzung dieses Codes in einer Veröffentlichung wird in unseren Hausregeln reguliert. Sie können es als Favoriten auswählen, um es in einem Chart zu verwenden.

Möchten Sie dieses Skript auf einem Chart verwenden?

Haftungsausschluss