Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 733

 
Vitaly Muzichenko:
A su"ArraySortBubbleTwoDims"
¿Cómo se llama?
 
Vitaly Muzichenko:

A su"ArraySortBubbleTwoDims".

De todas formas, he ampliado el bucle y el tema está resuelto. Pero todavía me gustaría ver una solución normal en la forma de una función estándar

eliminar
 
Vitaly Muzichenko:

A su"ArraySortBubbleTwoDims".

De todas formas, he ampliado el bucle y el tema está resuelto. Pero todavía me gustaría ver una solución normal en la forma de una función estándar

Comprobación del guión:

//+------------------------------------------------------------------+
//|                                                    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:
Comprobación del guión:

Gracias, pero mi código es mágico(

Error: 'mas' - conversión de parámetros no permitida e.mq5 2129 25

 
Vitaly Muzichenko:

Gracias, pero mi código es mágico(

Error: 'mas' - conversión de parámetros no permitida e.mq5 2129 25

Su mas tiene el tamaño de la segunda dimensión 3. Necesitas dos.
 
Artyom Trishkin:
Su mas tiene una segunda dimensión de 3. Necesitas dos.

El resultado final:

#define TWO_DIM (3)

void PosBySort(double &mas[][3])
Gracias.
 
Me está costando mucho aprender mql5, pero me he dado cuenta de que no entiendo la parte financiera, así que no sé ni qué escribir. Tengo algunos conocimientos básicos, pero no sé cómo utilizarlos. Por favor, aconsejen a las buenas personas que han estado en la misma situación, ¿cómo encontraron una salida?
 
dzhabrailov:
Me está costando mucho aprender mql5, pero me he dado cuenta de que no entiendo la parte financiera, así que no sé ni qué escribir. Tengo algunos conocimientos básicos, pero no sé cómo utilizarlos. ¿Puede aconsejar a las buenas personas que han estado en la misma situación?
¿Qué significa "parte financiera"? ¿Funciones comerciales? OrderSend() no está claro cómo se organiza?
Документация по MQL5: Торговые функции / OrderSend
Документация по MQL5: Торговые функции / OrderSend
  • www.mql5.com
Торговые функции / OrderSend - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Eso es lo que está claro, pero no siempre se puede comprar más barato y vender más caro. Cuándo entrar en un acuerdo cuándo salir de él y demás, a eso me refiero.
 
dzhabrailov:
Eso es lo que está claro, pero no siempre se puede comprar más barato y vender más caro. Cuándo entrar en un acuerdo cuándo salir de él y demás, a eso me refiero.
Bueno, esto no forma parte de la noción de programación. Este es el arte del comercio. Lo enseñan, pero no creo en el éxito de esas formaciones.