Hallo zusammen,
ich hab ein Array/Serie mit 100 Werten. Unterschiedliche Zahlenwerte.
Nun würde ich diese Zahlen im Aaray gerne nach ihrem Wert sortieren lassen - aufsteigend oder absteigend.
Eine fertige EXPRESS Funktion für so etwas hab ich leider nicht gefunden. Haben Sie eventuell aber einen "fertigen Codeausschnitt" der mir hier weiterhelfen könnte?
Gruss
Thomas
Werte in einer Serie sortieren
Re: Werte in einer Serie sortieren
Muss mich kurz korrigieren. Konkret geht es mir um die Sortierung der Werte in einem Array! (nicht in einer Serie)
- WHS Support
- Posts: 2430
- Joined: 14 Feb 2013 10:27
Re: Werte in einer Serie sortieren
Hallo Thomas,
eine fertige Express-Funktion gibt es leider nicht, aber man kann es (relativ) einfach über zwei Schleifen erreichen. Z.B. nach der sog. "bubblesort" Methode:
https://de.wikipedia.org/wiki/Bubblesort
Anbei ein Beispielcode in Express mit dem Close Preis:
Vielleicht hilft Ihnen dies ja schon weiter.
Beachten Sie jedoch, dass diese Operation sehr rechenintensiv ist.
Mit freundlichen Grüßen,
Timo
WH SELFINVEST
eine fertige Express-Funktion gibt es leider nicht, aber man kann es (relativ) einfach über zwei Schleifen erreichen. Z.B. nach der sog. "bubblesort" Methode:
https://de.wikipedia.org/wiki/Bubblesort
Anbei ein Beispielcode in Express mit dem Close Preis:
Code: Select all
express bubblesort;
vars
series closeSortedSeries;
array closeSorted[1];
numeric i, j, swap, swapped;
calculation
if IsFirstBar() then
begin
SetArraySize(closeSorted, FinalBarIndex()+1);
end
closeSorted[CurrentBarIndex()] = close;
// Sort
if IsFinalBar() then
begin
for i = CurrentBarIndex() - 1 downto 0
begin
swapped = 0;
for j = 0 to i
begin
if (closeSorted[j] > closeSorted[j+1]) then
begin
swap = closeSorted[j];
closeSorted[j] = closeSorted[j+1];
closeSorted[j+1] = swap;
swapped = 1;
end
end
if (swapped = 0) then
i = -1;
end
end
// Array -> Series
for i = 0 to GetArraySize(closeSorted) - 1
begin
closeSortedSeries[CurrentBarIndex()-i] = closeSorted[i];
end
interpretation
begin
end
plot(close,lightblue,1);
plot(closeSortedSeries,lightred,1);
Beachten Sie jedoch, dass diese Operation sehr rechenintensiv ist.
Mit freundlichen Grüßen,
Timo
WH SELFINVEST
Re: Werte in einer Serie sortieren
Danke, hat funktioniert.