Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 733

 
Vitaly Muzichenko:
В вашу "ArraySortBubbleTwoDims"
Как вызываете?
 
Vitaly Muzichenko:

В вашу "ArraySortBubbleTwoDims"

В общем, развернул цикл и вопрос решён. Но всё-же хотелось видеть нормальное решение в виде стандартной функции

const уберите
 
Vitaly Muzichenko:

В вашу "ArraySortBubbleTwoDims"

В общем, развернул цикл и вопрос решён. Но всё-же хотелось видеть нормальное решение в виде стандартной функции

Проверочный скрипт:

//+------------------------------------------------------------------+
//|                                                    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:
Проверочный скрипт:

Спасибо, но у меня код волшебный(

 

Ошибка: 'mas' - parameter conversion not allowed e.mq5 2129 25

 
Vitaly Muzichenko:

Спасибо, но у меня код волшебный(

 

Ошибка: 'mas' - parameter conversion not allowed e.mq5 2129 25

У вас mas имеет размер второго измерения 3. А нужно 2.
 
Artyom Trishkin:
У вас mas имеет размер второго измерения 3. А нужно 2.

Итогово: 

#define TWO_DIM (3)

void PosBySort(double &mas[][3])
Спасибо!
 
У меня ступор, выучил кое как mql5 язык, но понял, что нихрена не понимаю саму финансовую часть и поэтому, что писать даже не знаю. Базовые знания естественно имеются, но как это использоваться , я не знаю. Подскажите люди добрые, кто был в такой же ситуации как нашли выход , какого вектора держались?
 
dzhabrailov:
У меня ступор, выучил кое как mql5 язык, но понял, что нихрена не понимаю саму финансовую часть и поэтому, что писать даже не знаю. Базовые знания естественно имеются, но как это использоваться , я не знаю. Подскажите люди добрые, кто был в такой же ситуации как нашли выход , какого вектора держались?
Что значит "финансовая часть"? Торговые функции? OrderSend() не понятно как организовать?
Документация по MQL5: Торговые функции / OrderSend
Документация по MQL5: Торговые функции / OrderSend
  • www.mql5.com
Торговые функции / OrderSend - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
вот именно что понятно, но не всегда получается покупать дешевле, продавать дороже. Когда входить в сделку когда выходить из нее и тому подобное , я про это.
 
dzhabrailov:
вот именно что понятно, но не всегда получается покупать дешевле, продавать дороже. Когда входить в сделку когда выходить из нее и тому подобное , я про это.
Ну это уже не входит в понятие программирование. Это искусство трейдинга. Этому учат, но я не верю в успешность таких обучений.
Причина обращения: