Questions des débutants MQL5 MT5 MetaTrader 5 - page 733

 
Vitaly Muzichenko:
A votre"ArraySortBubbleTwoDims"
Comment l'appelez-vous ?
 
Vitaly Muzichenko:

A votre"ArraySortBubbleTwoDims".

Quoi qu'il en soit, j'ai élargi la boucle et le problème est résolu. Mais j'aimerais quand même voir une solution normale sous la forme d'une fonction standard

supprimer
 
Vitaly Muzichenko:

A votre"ArraySortBubbleTwoDims".

Quoi qu'il en soit, j'ai élargi la boucle et le problème est résolu. Mais j'aimerais quand même voir une solution normale sous la forme d'une fonction standard

Vérification du script :

//+------------------------------------------------------------------+
//|                                                    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:
Vérification du script :

Merci, mais mon code est magique(

Erreur : 'mas' - conversion de paramètre non autorisée e.mq5 2129 25

 
Vitaly Muzichenko:

Merci, mais mon code est magique(

Erreur : 'mas' - conversion de paramètre non autorisée e.mq5 2129 25

Votre mas a la taille de la deuxième dimension 3. Vous en avez besoin de 2.
 
Artyom Trishkin:
Votre mas a une seconde dimension de 3. Vous en avez besoin de 2.

En résumé :

#define TWO_DIM (3)

void PosBySort(double &mas[][3])
Merci !
 
J'ai du mal à apprendre mql5, mais je me suis rendu compte que je ne comprends pas la partie financière, donc je ne sais même pas quoi écrire. J'ai quelques connaissances de base, mais je ne sais pas comment les utiliser. Veuillez conseiller les bonnes personnes qui ont été dans la même situation, comment ont-elles trouvé une issue ?
 
dzhabrailov:
J'ai du mal à apprendre mql5, mais je me suis rendu compte que je ne comprends pas la partie financière, donc je ne sais même pas quoi écrire. J'ai quelques connaissances de base, mais je ne sais pas comment les utiliser. Pouvez-vous conseiller les bonnes personnes qui ont été dans la même situation ?
Que signifie "partie financière" ? Fonctions commerciales ? OrderSend() n'est pas clair, comment l'organiser ?
Документация по MQL5: Торговые функции / OrderSend
Документация по MQL5: Торговые функции / OrderSend
  • www.mql5.com
Торговые функции / OrderSend - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
C'est exactement ce que je comprends, mais on ne peut pas toujours acheter moins cher et vendre plus cher. Quand entrer dans un marché, quand en sortir, etc., voilà ce que je veux dire.
 
dzhabrailov:
C'est exactement ce qui est clair, mais on ne peut pas toujours acheter moins cher et vendre plus cher. Quand entrer dans un marché, quand en sortir, etc., voilà ce que je veux dire.
Cela ne fait pas partie de la notion de programmation. C'est l'art du commerce. Ils l'enseignent, mais je ne crois pas au succès de telles formations.