Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 733

 
Vitaly Muzichenko:
Al vostro"ArraySortBubbleTwoDims"
Come lo chiamate?
 
Vitaly Muzichenko:

Al vostro"ArraySortBubbleTwoDims".

Comunque, ho ampliato il ciclo e il problema è risolto. Ma vorrei ancora vedere una soluzione normale sotto forma di una funzione standard

rimuovere
 
Vitaly Muzichenko:

Al vostro"ArraySortBubbleTwoDims".

Comunque, ho ampliato il ciclo e il problema è risolto. Ma vorrei ancora vedere una soluzione normale sotto forma di una funzione standard

Controllo dello 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:
Controllo dello script:

Grazie, ma il mio codice è magico(

Errore: 'mas' - conversione dei parametri non consentita e.mq5 2129 25

 
Vitaly Muzichenko:

Grazie, ma il mio codice è magico(

Errore: 'mas' - conversione dei parametri non consentita e.mq5 2129 25

Il tuo mas ha la dimensione della seconda dimensione 3. Te ne servono 2.
 
Artyom Trishkin:
Il vostro mas ha una seconda dimensione di 3. Te ne servono 2.

Linea di fondo:

#define TWO_DIM (3)

void PosBySort(double &mas[][3])
Grazie!
 
Sto facendo fatica a imparare mql5, ma ho capito che non capisco la parte finanziaria, quindi non so nemmeno cosa scrivere. Ho delle conoscenze di base, ma non so come usarle. Per favore, consigliate le brave persone che sono state nella stessa situazione, come hanno trovato una via d'uscita?
 
dzhabrailov:
Sto facendo fatica a imparare mql5, ma ho capito che non capisco la parte finanziaria, quindi non so nemmeno cosa scrivere. Ho delle conoscenze di base, ma non so come usarle. Potete consigliare le brave persone che si sono trovate nella stessa situazione?
Cosa significa "parte finanziaria"? Funzioni di trading? OrderSend() non è chiaro come organizzare?
Документация по MQL5: Торговые функции / OrderSend
Документация по MQL5: Торговые функции / OrderSend
  • www.mql5.com
Торговые функции / OrderSend - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
È esattamente quello che capisco, ma non sempre si riesce a comprare più a buon mercato e a vendere più caro. Quando entrare in un affare, quando uscirne e così via, ecco cosa intendo.
 
dzhabrailov:
Questo è esattamente ciò che è chiaro, ma non si può sempre comprare più a buon mercato e vendere più caro. Quando entrare in un affare, quando uscirne e così via, ecco cosa intendo.
Beh, questo non fa parte della nozione di programmazione. Questa è l'arte del trading. Lo insegnano, ma non credo nel successo di tali formazioni.