Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 733

 
Vitaly Muzichenko:
Zu Ihrem"ArraySortBubbleTwoDims"
Wie nennen Sie das?
 
Vitaly Muzichenko:

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

entfernen
 
Vitaly Muzichenko:

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

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                                    |
//+------------------------------------------------------------------+
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;
                  }
               }
            }
         }
      }
}
//+------------------------------------------------------------------+
 
Artyom Trishkin:
Skript überprüfen:

Danke, aber mein Code ist magisch(

Fehler: 'mas' - Parameterumwandlung nicht erlaubt e.mq5 2129 25

 
Vitaly Muzichenko:

Danke, aber mein Code ist magisch(

Fehler: 'mas' - Parameterumwandlung nicht erlaubt e.mq5 2129 25

Ihr mas hat die Größe der zweiten Dimension 3. Sie brauchen 2.
 
Artyom Trishkin:
Ihr mas hat eine zweite Dimension von 3. Sie benötigen 2.

Unterm Strich:

#define TWO_DIM (3)

void PosBySort(double &mas[][3])
Ich danke Ihnen!
 
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?
Документация по MQL5: Торговые функции / OrderSend
Документация по MQL5: Торговые функции / OrderSend
  • www.mql5.com
Торговые функции / OrderSend - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
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.