Da sich das Resultat eines unzutreffenden Algorithmus mit der Implementationssprache bei äquivalenter Implementation nicht ändern kann, ist das Resultat natürlich auch mit MT4 FALSCH.
Da muss nicht nur 1-2-fix auf irgendein Datum gesehen werden, sondern ein Test-Szenario existieren, welches die gewünschten Daten den real erhaltenen gegenüber stellt. Das Herausholen der Originaldaten mittels einfachem FileWrite und die externe Sortierung mit einem x-beliebigem Sortierprogramm sollten kein Problem sein.
Mit einem zusätzlichem ArrayInitialize(Result, 0.0); in Zeile 11 sieht es noch viel schlechter aus, da bleiben von 256 Input-Monaten nur 40 übrig.
Aber die Aufgabe ist dank der fertigen Sortierfunktionen ohnehin obsolet.
	
		
			
		
		
									
									
									
								Da muss nicht nur 1-2-fix auf irgendein Datum gesehen werden, sondern ein Test-Szenario existieren, welches die gewünschten Daten den real erhaltenen gegenüber stellt. Das Herausholen der Originaldaten mittels einfachem FileWrite und die externe Sortierung mit einem x-beliebigem Sortierprogramm sollten kein Problem sein.
Mit einem zusätzlichem ArrayInitialize(Result, 0.0); in Zeile 11 sieht es noch viel schlechter aus, da bleiben von 256 Input-Monaten nur 40 übrig.
Aber die Aufgabe ist dank der fertigen Sortierfunktionen ohnehin obsolet.
Quellcode
- #define FILE_NAME_BEFORE "Test_Vikke_sort.original.dat"
 - #define FILE_NAME_AFTER "Test_Vikke_sort.processed.dat"
 - int start()
 - { double CloseCopy[];
 - double Result[];
 - ArrayCopy(CloseCopy, Close);
 - ArrayCopy(Result , Close);
 - writeArray(FILE_NAME_BEFORE, CloseCopy);
 - sort_arr(CloseCopy, Result);
 - writeArray(FILE_NAME_AFTER, Result);
 - return(0);
 - }
 - void sort_arr(double & input[], double & output[])
 - { for ( int k = 0; k < ArraySize(input); k ++ )
 - { if ( input[k] > output[0] )
 - output[0] = input[k];
 - for ( int j = 1; j < ArraySize(output); j ++ )
 - if ( input[k] >= output[j] && input[k] < output[j - 1] )
 - output[j] = input[k];
 - } }
 - void writeArray(string fileName, double & series[])
 - { int output = FileOpen(fileName, FILE_WRITE | FILE_CSV);
 - for ( int seriesIndex = 0; seriesIndex < ArraySize(series); seriesIndex ++ )
 - FileWrite(output, series[seriesIndex]);
 - FileClose(output);
 - }