Wie auch immer, ich habe die Schleife erweitert und das Problem ist gelöst. Aber ich würde trotzdem gerne eine normale Lösung in Form einer Standardfunktion sehen
Wie auch immer, ich habe die Schleife erweitert und das Problem ist gelöst. Aber ich würde trotzdem gerne eine normale Lösung in Form einer Standardfunktion sehen
Skript überprüfen:
//+------------------------------------------------------------------+ //| sTestSort.mq5 | //| Copyright 2017, Artem A. Trishkin, Skype artmedia70 | //| https://login.mql5.com/ru/users/artmedia70 | //+------------------------------------------------------------------+ #property copyright"Copyright 2017, Artem A. Trishkin, Skype artmedia70" #property link"https://login.mql5.com/ru/users/artmedia70" #property version"1.00" //--- #define TWO_DIM (2) //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ voidOnStart() { //--- double array[][TWO_DIM]; ArrayResize(array,10); for(uchar i=0; i<10; i++) { array[i][0]=i*10; array[i][1]=rand(); } Print("Перед сортировкой"); for(uchar i=0; i<10; i++) Print("array[",i,"][0]=",array[i][0],", array[",i,"][1]=",array[i][1]); Print("Сортировка по первому измерению по возрастанию"); ArraySortBubbleTwoDims(array); for(uchar i=0; i<10; i++) Print("array[",i,"][0]=",array[i][0],", array[",i,"][1]=",array[i][1]); Print("Сортировка по первому измерению по убыванию"); ArraySortBubbleTwoDims(array,0,1); for(uchar i=0; i<10; i++) Print("array[",i,"][0]=",array[i][0],", array[",i,"][1]=",array[i][1]); //--- Print("Сортировка по второму измерению по возрастанию"); ArraySortBubbleTwoDims(array,1); for(uchar i=0; i<10; i++) Print("array[",i,"][0]=",array[i][0],", array[",i,"][1]=",array[i][1]); Print("Сортировка по второму измерению по убыванию"); ArraySortBubbleTwoDims(array,1,1); for(uchar i=0; i<10; i++) Print("array[",i,"][0]=",array[i][0],", array[",i,"][1]=",array[i][1]); } //+------------------------------------------------------------------+ //| Пузырьковая сортировка двумерного массива | //+------------------------------------------------------------------+ template<typename T> void ArraySortBubbleTwoDims(T& array[][TWO_DIM], int sort_dimension=0, int sort_direction=0) { T t=0; int k=ArrayRange(array,1); // Количество колонок int n=ArrayRange(array,0); // Количество строк
Es fällt mir schwer, mql5 zu lernen, aber ich habe gemerkt, dass ich den finanziellen Teil nicht verstehe, also weiß ich nicht einmal, was ich schreiben soll. Ich habe einige Grundkenntnisse, weiß aber nicht, wie ich sie anwenden soll. Bitte beraten Sie gute Leute, die in der gleichen Situation waren, wie haben sie einen Ausweg gefunden?
dzhabrailov: Es fällt mir schwer, mql5 zu lernen, aber ich habe gemerkt, dass ich den finanziellen Teil nicht verstehe, also weiß ich nicht einmal, was ich schreiben soll. Ich habe einige Grundkenntnisse, weiß aber nicht, wie ich sie anwenden soll. Können Sie den guten Menschen, die in der gleichen Situation waren, einen Rat geben?
Was bedeutet "finanzieller Teil"? Handelsfunktionen? OrderSend() ist nicht klar, wie zu organisieren?
Genau das ist klar, aber man kann nicht immer billiger einkaufen und teurer verkaufen. Wann man in ein Geschäft einsteigt, wann man aussteigt und so weiter, das ist es, was ich meine.
dzhabrailov: Genau das ist klar, aber man kann nicht immer billiger einkaufen und teurer verkaufen. Wann man in ein Geschäft einsteigt, wann man aussteigt und so weiter, das ist es, was ich meine.
Nun, das ist nicht Teil des Begriffs der Programmierung. Das ist die Kunst des Handels. Sie lehren es, aber ich glaube nicht an den Erfolg solcher Schulungen.
Zu Ihrem"ArraySortBubbleTwoDims"
Zu Ihrem"ArraySortBubbleTwoDims".
Wie auch immer, ich habe die Schleife erweitert und das Problem ist gelöst. Aber ich würde trotzdem gerne eine normale Lösung in Form einer Standardfunktion sehen
Zu Ihrem"ArraySortBubbleTwoDims".
Wie auch immer, ich habe die Schleife erweitert und das Problem ist gelöst. Aber ich würde trotzdem gerne eine normale Lösung in Form einer Standardfunktion sehen
//| sTestSort.mq5 |
//| Copyright 2017, Artem A. Trishkin, Skype artmedia70 |
//| https://login.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Artem A. Trishkin, Skype artmedia70"
#property link "https://login.mql5.com/ru/users/artmedia70"
#property version "1.00"
//---
#define TWO_DIM (2)
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
//---
double array[][TWO_DIM];
ArrayResize(array,10);
for(uchar i=0; i<10; i++) {
array[i][0]=i*10;
array[i][1]=rand();
}
Print("Перед сортировкой");
for(uchar i=0; i<10; i++) Print("array[",i,"][0]=",array[i][0],", array[",i,"][1]=",array[i][1]);
Print("Сортировка по первому измерению по возрастанию");
ArraySortBubbleTwoDims(array);
for(uchar i=0; i<10; i++) Print("array[",i,"][0]=",array[i][0],", array[",i,"][1]=",array[i][1]);
Print("Сортировка по первому измерению по убыванию");
ArraySortBubbleTwoDims(array,0,1);
for(uchar i=0; i<10; i++) Print("array[",i,"][0]=",array[i][0],", array[",i,"][1]=",array[i][1]);
//---
Print("Сортировка по второму измерению по возрастанию");
ArraySortBubbleTwoDims(array,1);
for(uchar i=0; i<10; i++) Print("array[",i,"][0]=",array[i][0],", array[",i,"][1]=",array[i][1]);
Print("Сортировка по второму измерению по убыванию");
ArraySortBubbleTwoDims(array,1,1);
for(uchar i=0; i<10; i++) Print("array[",i,"][0]=",array[i][0],", array[",i,"][1]=",array[i][1]);
}
//+------------------------------------------------------------------+
//| Пузырьковая сортировка двумерного массива |
//+------------------------------------------------------------------+
template<typename T>
void ArraySortBubbleTwoDims(T& array[][TWO_DIM], int sort_dimension=0, int sort_direction=0) {
T t=0;
int k=ArrayRange(array,1); // Количество колонок
int n=ArrayRange(array,0); // Количество строк
//---
if(sort_dimension<0) sort_dimension=0;
if(sort_dimension>k) sort_dimension=k;
//---
for(int i=n-1; i>0; i--) {
for(int j=0; j<i; j++) {
//--- по возрастанию
if(sort_direction==0) {
if(array[j][sort_dimension]>array[j+1][sort_dimension]) {
for(int e=0; e<k; e++) {
t=array[j][e];
array[j][e]=array[j+1][e];
array[j+1][e]=t;
}
}
}
//--- по убыванию
else {
if(array[j][sort_dimension]<array[j+1][sort_dimension]) {
for(int e=0; e<k; e++) {
t=array[j][e];
array[j][e]=array[j+1][e];
array[j+1][e]=t;
}
}
}
}
}
}
//+------------------------------------------------------------------+
Skript überprüfen:
Danke, aber mein Code ist magisch(
Fehler: 'mas' - Parameterumwandlung nicht erlaubt e.mq5 2129 25
Danke, aber mein Code ist magisch(
Fehler: 'mas' - Parameterumwandlung nicht erlaubt e.mq5 2129 25
Ihr mas hat eine zweite Dimension von 3. Sie benötigen 2.
Unterm Strich:
void PosBySort(double &mas[][3])
Es fällt mir schwer, mql5 zu lernen, aber ich habe gemerkt, dass ich den finanziellen Teil nicht verstehe, also weiß ich nicht einmal, was ich schreiben soll. Ich habe einige Grundkenntnisse, weiß aber nicht, wie ich sie anwenden soll. Können Sie den guten Menschen, die in der gleichen Situation waren, einen Rat geben?
Genau das ist klar, aber man kann nicht immer billiger einkaufen und teurer verkaufen. Wann man in ein Geschäft einsteigt, wann man aussteigt und so weiter, das ist es, was ich meine.