Сортировка ордеров на MQL4

Программирование прибыли: от азов к секретам мастерства. Читайте, спрашивайте, делитесь опытом.
Бонус за сообщение 0.5$
Ответственный Модератор - Haos

Сортировка ордеров на MQL4

Сообщение piter » 10 мар 2018, 10:05

И так, спасибо Haos у, продолжим...
Kalkin писал(а):Терминал занимается тем же самым - берет все позиции от сервера, сортирует их как требует пользователь и выводит на экран. Брать значения с подокна терминала - задача на уровне API и для данной задачи совершенно избыточна.

Вот это уже очень интересно, "...задача на уровне API и для данной задачи совершенно избыточна.", т.е. намного сложнее? Но вот интересно, с помощью пузырьковой сортировки, которую я хотел бы внедрить в свой индюк, стрелка указывающая уровень перекрытия будет статична или будет динамична...
Мож правда переведём общение в раздел где будет больше пользы обоим?
Последний раз редактировалось Haos 10 мар 2018, 10:26, всего редактировалось 1 раз.
Причина: некорректное цитирование
Аватар пользователя
piter
 
Сообщений: 32
Зарегистрирован: 09 мар 2018, 00:53
Средств на руках: 6.50 Доллар
Откуда: г. Ессентуки
Группа: Базовая
Благодарил (а): 23 раз.
Поблагодарили: 3 раз.

Сортировка ордеров на MQL4

Сообщение Kalkin » 10 мар 2018, 10:13

Это все замечательно, но для конструктивного обсуждения неплохо бы иметь конкретно сформулированную задачу.
Последний раз редактировалось Haos 10 мар 2018, 13:28, всего редактировалось 1 раз.
Причина: .
Аватар пользователя
Kalkin
 
Сообщений: 1589
Зарегистрирован: 05 мар 2015, 06:51
Средств на руках: 108.80 Доллар
Награды: 2
Ветеран I (1) Медаль за научный вклад (1)
Группа: Базовая
Благодарил (а): 633 раз.
Поблагодарили: 1190 раз.
Ace Register Votive

Сортировка ордеров на MQL4

Сообщение piter » 10 мар 2018, 10:37

Kalkin писал(а):Это все замечательно, но для конструктивного обсуждения неплохо бы иметь конкретно сформулированную задачу.

Ну если конкретно, то вот шапка индюка, там видны мои потуги по сортировке ордеров, но по факту сортировка не удаётся...
Код: выделить все
//+------------------------------------------------------------------+
//|                                                  MyBezybytok.mq4 |
//|                                   Copyright 2018,Cherkasov_Petr  |
//|                                       http://www.muzikant1211.narod.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018,Cherkasov_Petr "
#property link      "www.muzikant1211.narod.ru"
#property version   "1.00"
//#property strict
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
//--------------------------------------------------------------------
//  сheck.mq4
//   Предназначен   для   использования   в   качестве   примера   в   учебнике   MQL4.
//---------------------------------------------------------------         1         --
extern int Parol =1234567890 ;
extern color ColorMarket = Blue;//  Цвет   канала
extern color ColorSL     = DarkGreen;
extern int   Width     = 2;
extern color ColorBuy  = Blue;
extern int   WidthBuy  = 1;
extern int  Valjut_pljus = 10;
extern int    PerBUY   = 15;
extern int    PerSELL  = 15;
extern color ColorSell = Red;
extern int   WidthSell = 1;
extern int   Magic     = -1; //если -1, то все ордера на данной валютной паре, иначе только с магиком
//+------------------------------------------------------------------+

//int DistMarketAndPos(string sy= "EURUSD", int op=-1, int mn=-1) {
 // double d, p;
//  int i, k=OrdersTotal(), r=100;
//if (sy=="EURUSD" || sy=="0") sy=Symbol();
//  p=MarketInfo(sy, MODE_POINT);
//  if (p==0) if (StringFind(sy, "EURUSD")<0) p=0.00001; else p=0.01;
//  for (i=0; i<k; i++) {
//    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
//      if ((OrderSymbol()==sy) && (op<0 || OrderType()==op)) {
//        if (mn<0 || OrderMagicNumber()==mn) {
//          if (OrderType()==OP_BUY) {
//            d=MathAbs(MarketInfo(sy, MODE_ASK)-OrderOpenPrice())/p;
//            if (r>d) r=NormalizeDouble(d, 0);
//          }
//          if (OrderType()==OP_SELL) {
//            d=MathAbs(OrderOpenPrice()-MarketInfo(sy, MODE_BID))/p;
//            if (r>d) r=NormalizeDouble(d, 0);
//          }
//        }
//      }
//    }
//  }
//  return(r);
 
//}

//----------------------------------------------------------------5---
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long& tick_volume[],
                const long& volume[],
                const int& spread[])
               
               
{
//----------------------------------------------------
   double MaxOrderBuy[100],MinOrderSell[100],MaxOrder[100];
   double Profit=0,LossBuy=0,LossSell=0;
   int TicketB[100],TicketS[100];
   //------------------------------------------------
   double  Balance = AccountProfit();
    double priceks[100];
   double profit, ProfitS, profsw,Dpop,Dpop2, ProfitB ,ProfswB , ProfswS,Toper; //действительные числа.Назначение переменных
   int b,i,s,tip,bo,so,pop,pop2;//,z,u;//,z,u;//целые числа.
   double price,priceAll[],priceb[100],pricebb[100],pricess[100],price_b,prices[100],price_s,lot,lot_s,lot_b,price_bo,price_so,lot_so,lot_bo,NLb,NLs,NL;
   double TICKVALUE=MarketInfo(Symbol(),MODE_TICKVALUE); //Размер  минимального  изменения  цены инструмента в валюте депозита
   double LOTSIZE = MarketInfo(Symbol(),MODE_LOTSIZE); //Размер   контракта   в   базовой   валюте инструмента
  // int e, poz[100];ArrayInitialize(poz,0);
   int n,Ticket[100];ArrayInitialize(Ticket,0); //Инициализация массива  (ticket  -  уникальный порядковый номер ордера)
   double vbid    = MarketInfo(OrderSymbol(),MODE_BID);
   double vask    = MarketInfo(OrderSymbol(),MODE_ASK);
   int e=0;
   int be=0;
   b=0;
   s=0;
//--  MaxOrderBuy[0]=1.24320;
//--  MaxOrderBuy[1]=1.24269;
//--  MaxOrderBuy[2]=1.24268;
//--  MaxOrderBuy[3]=1.24253;
//--  MaxOrderBuy[4]=1.24245;
//--  MaxOrderBuy[5]=1.24232;
//--  MaxOrderBuy[6]=1.24228;
//--  MaxOrderBuy[7]=1.24215;
//--  MaxOrderBuy[8]=1.24197;
 //-- MaxOrderBuy[9]=1.24196;
//--  MaxOrderBuy[10]=1.24195;
//--  MaxOrderBuy[11]=1.24192;
//--  MaxOrderBuy[12]=1.24170;
//--  MaxOrderBuy[13]=1.24153;
//--  MaxOrderBuy[14]=1.24119;
//--  MaxOrderBuy[15]=1.24071;
//--  MaxOrderBuy[16]=1.24071;
//--  MaxOrderBuy[17]=1.24027;
 
//--  MinOrderSell[0]=1.22972;
//--  MinOrderSell[1]=1.23025;
//--  MinOrderSell[2]=1.23033;
//--  MinOrderSell[3]=1.23063;
 //-- MinOrderSell[4]=1.23101;
//--  MinOrderSell[5]=1.23174;
//--  MinOrderSell[6]=1.23224;
//--  MinOrderSell[7]=1.23344;
   
   
//----------------------------- Проверка условий ----------------------------------------------------------------------------------------------------   
 if(Check()==false) //  Если  условия  использования... смотри строки с 240 "Проверка"
 return(true);
//---------------------------- Основной код программы Безубыток --------------------------------------------------------------------------------
  // double lastprice=0;
//for(i=OrdersTotal()-1;i>=0;i--) if(OrderSelect(i,SELECT_BY_POS) && OrderSymbol()==Symbol() && OrderMagicNumber()==magic) {
//if(last.ticket==OrderTicket()) continue;
//last.ticket=OrderTicket();
//}






  // for (int i=0; i<OrdersTotal(); i--)//Цикл  по  всем  ордерам,отражённым в терминале
     for( i=0; i<OrdersTotal();i++) { 
     // if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()==Symbol() && (Magic == OrderMagicNumber() || Magic == -1)){
      if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){ // в  параметре  index  передается  порядковый  номер  ордера  в  списке(нумерация начинается с 0)
        //MODE_TRADES  (по  умолчанию)  -  ордер  выбирается  среди  открытых  и  отложенных ордеров, т.е. среди ордеров, отображаемых в Терминале на закладке Торговля
                 if (OrderSymbol()==Symbol() && (Magic == OrderMagicNumber() || Magic == -1)){//Функция   OrderSymbol()   возвращает   название   финансового   инструмента   выбранного
                     //ордера.symbol  -   наименование   финансового   инструмента,   с   которым   проводится   торговая операция OrderMagicNumber   Возвращает    идентификационное   
                     //("магическое")    число    для выбранного ордера. 0- ручной ордер, -1  - все ордера
         
         
                   
                   
             
            //ArraySort(prices,WHOLE_ARRAY,299,MODE_DESCEND);
            profit = NormalizeDouble(OrderProfit(),Digits);//+OrderSwap()+OrderCommission();//OrderProfit Возвращает значение чистой прибыли(без учёта свопов икомиссий)для выбранного ордера.
// Для открытых позиций это - текущая нереализованная прибыль. Для закрытых ордеров - зафиксированная прибыль.OrderSwap Возвращает значение свопа для текущего выбранного
// ордера.OrderCommission соответственно комиссию для ордера
            profsw = OrderSwap()+OrderCommission();
            Profit += profit;
            price = NormalizeDouble(OrderOpenPrice(),Digits); // функция   OrderOpenPrice()   возвращает значение цены открытия ордера (или заявленной цены для отложенных ордеров)
            lot = OrderLots(); //OrderLots()  возвращает количество лотов
            tip = OrderType(); // OrderType()  возвращает  тип ордера
            //priceAll[i] = price;
           // ArraySort(poz,WHOLE_ARRAY,0,MODE_DESCEND);
            //price = priceAll[i];
           // ArraySort(prices};//,WHOLE_ARRAY,0,MODE_DESCEND);
           // if(OrderType()==OP_BUY) {pricebb[be] = NormalizeDouble(OrderOpenPrice(),Digits);
           // be++;}
                   
                   // for(int z=0; z<OrdersTotal();z++){
              //      if(OrderType()==OP_SELL) {pricess[e] = NormalizeDouble(OrderOpenPrice(),Digits);
              //      e++;}
                   
                                                         
                    //ArraySort(pricebb,WHOLE_ARRAY,be,MODE_DESCEND);
                    //ArraySort(pricess,WHOLE_ARRAY,e,MODE_DESCEND);
 //--------------------------------------------------------------------------------------
            // if (profit>0) Profit+=profit;
           // if (tip==OP_BUY) {           
          //  if (price > MaxOrderBuy[be] && price >=ArrayMaximum(MaxOrderBuy,WHOLE_ARRAY,0)) {MaxOrderBuy[be] = price;}TicketB[be]=OrderTicket(); LossBuy=profit;be++;
          //  ArraySort(MaxOrderBuy,WHOLE_ARRAY,0,MODE_DESCEND);}
             // for(z=0; z<be;z++) {
             //  if (price > MaxOrderBuy[be-1] || price >=ArrayMaximum(MaxOrderBuy,WHOLE_ARRAY,0)) {MaxOrderBuy[be-1] = price;}TicketB[be-1]=OrderTicket(); LossBuy=profit;be++;}
           
        // }
                                                 
          //  if (tip==OP_SELL) {
         // if (price < MinOrderSell[e]  && price <=ArrayMinimum(MinOrderSell,WHOLE_ARRAY,0)) {MinOrderSell[e] = price;}TicketS[e]=OrderTicket(); LossSell=profit;e++; 
        //      for(u=0; u<e;u++) {
            //  if (price < MinOrderSell[e-1]  || price <=ArrayMinimum(MinOrderSell,WHOLE_ARRAY,0)) {MinOrderSell[e-1] = price;}TicketS[e-1]=OrderTicket(); LossSell=profit;e++;}           
         
        //  ArraySort(MinOrderSell,WHOLE_ARRAY,0,MODE_DESCEND);}//ASCEND DESCEND }
             
             
             
             
         
           
          //}
       //  MaxOrder[i]= price;           
       //  }
        // ArraySort(MaxOrderBuy,WHOLE_ARRAY,0,MODE_DESCEND);
         //ArraySort(MinOrderSell,WHOLE_ARRAY,e,MODE_ASCEND);
       
         
        //  }
       // return (0);
        // }
      //  s=0 ;
       //  b=0;
      //  for(i=0; i<OrdersTotal();i++) {
       
 //========== КОЛИЧЕСТВО ПЕРЕКРЫВАЕМЫХ BUY (меняем величину b (положительное число) в первой строке) ========================================================================================================
            if (tip==OP_BUY && b<=PerBUY-1) // Цикл, если тип  ордер  Buy,==  Истина, если x равно y  x == y
            {
           // if (price > MaxOrderBuy[b] || price >=ArrayMaximum(MaxOrderBuy,WHOLE_ARRAY,0)) {MaxOrderBuy[b] = price;}TicketB[b]=OrderTicket(); LossBuy=profit;//be++;
           // if(lastprice==OrderOpenPrice()) continue;
         //lastprice = OrderOpenPrice();
           // poz[e] = SELECT_BY_POS;
           
           //ArraySort(priceb,WHOLE_ARRAY,0,MODE_DESCEND);
               //  b++;
              // int    maxValueIdx=ArrayMaximum(num_array,WHOLE_ARRAY,0);
              // pricebb[i] = priceb[b];
              priceb[b]=price;// MaxOrderBuy[b];//price;//MaxOrder[b];
            //  ArraySort(MaxOrderBuy,WHOLE_ARRAY,0,MODE_DESCEND);
              // price = pricebb[b];
             //  price = MaxOrderBuy[b];//priceb[b];
               //return(PerBUY);
               ProfswB += profsw;
               ProfitB += (profit+profsw);// +=  Увеличение значения переменной у на x  у += x   y = y + x
               price_b += priceb[b]*lot;
               b++;  // ярлычки для BUY,++  Добавление 1 к значению переменной y++  y = y + 1(здесь кол-во окрытых ордеров)
               lot_b+=lot; // +=lot
            // ArraySort(priceb,WHOLE_ARRAY,0,MODE_DESCEND);//ASCEND
            }
           
 //====================КОЛИЧЕСТВО ПЕРЕКРЫВАЕМЫХ SELL (меняем величину s(положительное число) в первой строке) ===================================================================================
            //if (tip==OP_SELL){prices[i] = price;}
           // ArraySort(prices,WHOLE_ARRAY,0,MODE_DESCEND);
            if (tip==OP_SELL && s<=PerSELL-1) // Цикл, если тип  ордера SELL,==  Истина, если x равно y  x == y
            {
           // if (price < MinOrderSell[s]  || price <=ArrayMinimum(MinOrderSell,WHOLE_ARRAY,0)) {MinOrderSell[s] = price;}TicketS[s]=OrderTicket(); LossSell=profit;//e++;
            //if(price==OrderOpenPrice()) continue;
            //price = OrderOpenPrice();
            //poz[e] = SELECT_BY_POS;
             //
           prices[s] = price;//MinOrderSell[s];//price;//MaxOrder[s];//MinOrderSell[s];
           // ArraySort(prices,WHOLE_ARRAY,s+1,MODE_ASCEND);//ASCEND DESCEND
             // if(prices[s]==OrderOpenPrice()) continue;
         //prices[s] = OrderOpenPrice(); //s++;
               //price = pricess[s];
              // price = MinOrderSell[s];//prices[s];
             // ArraySort(poz,WHOLE_ARRAY,0,MODE_DESCEND);
               //price = prices[s];
               ProfswS += profsw;
               ProfitS += (profit+profsw);
               price_s += prices[s]*lot;
               s++; // ++  Добавление 1 к значению переменной y++  y = y + 1
               lot_s+=lot;
             
              //ArraySort(poz);//,WHOLE_ARRAY,e,MODE_ASCEND);
            }
            Ticket[n]=OrderTicket(); //OrderTicket  Возвращает номер тикета для текущего выбранного ордера.
            n++; //++  Добавление 1 к значению переменной y++  y = y + 1
            if (tip==OP_BUYSTOP || tip==OP_BUYLIMIT) //Цикл для отложенных ордеров BUY, ||  ИЛИ(логическое ИЛИ) x < 5 || x > 7 ИСТИНА(1),если истинно любое из значений
            {
               price_bo += price*lot;
               lot_bo+=lot;
               bo++; //++  Добавление 1 к значению переменной y++  y = y + 1
            }
            if (tip==OP_SELLSTOP || tip==OP_SELLLIMIT) //Цикл для отложенных ордеров SELL,==  Истина, если x равно y  x == y
            {
               price_so += price*lot;
               lot_so+=lot;
               so++;
            }
         } 
     }
      }
    //double priceks[100];
//--for(int l=0; l<OrdersTotal();l++) {
//--if (OrderSelect(l,SELECT_BY_POS,MODE_TRADES)){
//--if (OrderSymbol()==Symbol() && (Magic == OrderMagicNumber() || Magic == -1)){


//if(OrderSelect(l, SELECT_BY_POS)==true){

//--priceks[l] = NormalizeDouble(OrderOpenPrice(),Digits);
//--    Print("Profit for the order ",OrderType(),"  ",l," ",OrderProfit(),"  ",NormalizeDouble(OrderOpenPrice(),Digits),"  ",OrderSwap(),"  ",OrderTicket());
  //else
   // Print("OrderSelect() вернул ошибку - ",i," ",GetLastError());
   
//---
 //  return(INIT_SUCCEEDED);
//--  }
//--  }
//--  }
 //  return (0);
 
       
  // }
  // ArraySort(priceb,WHOLE_ARRAY,0,MODE_DESCEND);
   //ArraySort(prices,WHOLE_ARRAY,0,MODE_DESCEND);
  // ArraySort(poz,WHOLE_ARRAY,0,MODE_DESCEND);
   //==============================================================================================================================================
 //---------------------------------------------------------------         3         --


...далее идёт работа с полученными данными ...
Подскажи пожалуйста, как сортировать с учётом лотов и свопов, комиссии не надо учитывать, их всё равно нет.
Благодарю за ответ.
Аватар пользователя
piter
 
Сообщений: 32
Зарегистрирован: 09 мар 2018, 00:53
Средств на руках: 6.50 Доллар
Откуда: г. Ессентуки
Группа: Базовая
Благодарил (а): 23 раз.
Поблагодарили: 3 раз.

Сортировка ордеров на MQL4

Сообщение Kalkin » 10 мар 2018, 10:43

Погоди - сначала словами идею можно описать, что требуется от индикатора? Как это делать - вопрос второй. Может, все проще?
Аватар пользователя
Kalkin
 
Сообщений: 1589
Зарегистрирован: 05 мар 2015, 06:51
Средств на руках: 108.80 Доллар
Награды: 2
Ветеран I (1) Медаль за научный вклад (1)
Группа: Базовая
Благодарил (а): 633 раз.
Поблагодарили: 1190 раз.
Ace Register Votive

Сортировка ордеров на MQL4

Сообщение piter » 10 мар 2018, 10:50

Kalkin писал(а):Погоди - сначала словами идею можно описать, что требуется от индикатора? Как это делать - вопрос второй. Может, все проще?

Вот видео, где я демонстрировал работу индюка, там чётко отработал, но там изначально дальние 4 буя были по цене установлены, так сказать совпало...
https://www.forexdengi.com/redirect.php ... 6lE&t=325s
Аватар пользователя
piter
 
Сообщений: 32
Зарегистрирован: 09 мар 2018, 00:53
Средств на руках: 6.50 Доллар
Откуда: г. Ессентуки
Группа: Базовая
Благодарил (а): 23 раз.
Поблагодарили: 3 раз.

Сортировка ордеров на MQL4

Сообщение Kalkin » 10 мар 2018, 11:04

Если я правильно понял - задача состоит в том, чтобы вычислить точку безубытка для разнонаправленных позиций. В зависимости от того, в какую сторону больше лотность и в зависимости от накопленных свопов эта точка изначально будет сдвигаться вверх или вниз от текущей цены. Если это так, то для подобного рода вычислений нет необходимости в сортировках массива. Для начала посмотрите ветку Задачка. Найти точку нулевого профита., там я выкладывал соответствующую функцию, от неё можно отталкиваться в дальнейших изысканиях.
Аватар пользователя
Kalkin
 
Сообщений: 1589
Зарегистрирован: 05 мар 2015, 06:51
Средств на руках: 108.80 Доллар
Награды: 2
Ветеран I (1) Медаль за научный вклад (1)
Группа: Базовая
Благодарил (а): 633 раз.
Поблагодарили: 1190 раз.
Ace Register Votive

Сортировка ордеров на MQL4

Сообщение piter » 10 мар 2018, 11:33

Kalkin писал(а):Если я правильно понял - задача состоит в том, чтобы вычислить точку безубытка для разнонаправленных позиций. В зависимости от того, в какую сторону больше лотность и в зависимости от накопленных свопов эта точка изначально будет сдвигаться вверх или вниз от текущей цены. Если это так, то для подобного рода вычислений нет необходимости в сортировках массива. Для начала посмотрите ветку Задачка. Найти точку нулевого профита., там я выкладывал соответствующую функцию, от неё можно отталкиваться в дальнейших изысканиях.

Вы правильно поняли, но эта функция правильно работает и без сортировки, если не надо выбирать,т.е. в терминале есть 4 ордера SELL и 10 ордеров BUY, то тут просто берутся все ордера и идёт расчёт. А в случае, где нужно выбрать из множества только 4-ре самых убыточных, например, из 10 ордеров SELL 4 самых убыточных, а так же из 15 ордеров BUY 4 самых убыточных, сортировка уже необходима.

Как то не удобно обращаться к Вам по нику, хотелось бы называть Вас по имени и отчеству, или хотя бы по имени...
Как можно к Вам обращаться?
С уважением, Пётр.
Последний раз редактировалось piter 10 мар 2018, 12:10, всего редактировалось 1 раз.
Аватар пользователя
piter
 
Сообщений: 32
Зарегистрирован: 09 мар 2018, 00:53
Средств на руках: 6.50 Доллар
Откуда: г. Ессентуки
Группа: Базовая
Благодарил (а): 23 раз.
Поблагодарили: 3 раз.

Сортировка ордеров на MQL4

Сообщение Kalkin » 10 мар 2018, 12:03

Да, тогда можно воспользоваться и тем подходом, что я показывал в предыдущей ветке. Сооружаем 4 массива: два для баев и два для селлов, по отдельности их заполняем тикетами и текущим профитом (OrderProfit()+OrderSwap()+OrderCommission()).
Затем сортируем той же пузыроковой сортировкой. Для тикетов будут целочисленные массивы, для текущего профита - с плавающей запятой.
Аватар пользователя
Kalkin
 
Сообщений: 1589
Зарегистрирован: 05 мар 2015, 06:51
Средств на руках: 108.80 Доллар
Награды: 2
Ветеран I (1) Медаль за научный вклад (1)
Группа: Базовая
Благодарил (а): 633 раз.
Поблагодарили: 1190 раз.
Ace Register Votive

Сортировка ордеров на MQL4

Сообщение piter » 10 мар 2018, 12:32

Kalkin писал(а):Да, тогда можно воспользоваться и тем подходом, что я показывал в предыдущей ветке. Сооружаем 4 массива: два для баев и два для селлов, по отдельности их заполняем тикетами и текущим профитом (OrderProfit()+OrderSwap()+OrderCommission()).
Затем сортируем той же пузыроковой сортировкой. Для тикетов будут целочисленные массивы, для текущего профита - с плавающей запятой.

Ну тогда, как мне кажется, хотя бы по пять массивов для каждого типа ордеров [тикет], [тип], [цена открытия], [лот], [профит]...., а сортировать, как одномерный все массивы в один ряд, как строка. Я правильно мыслю?
Помните мы про сортировку в терминале говорили, Вы там упомянули API, где можно об этом почитать?
Что то мне подсказывает, что проще в терминале отсортировал, а из терминала подал в индюк или сов...
Благодарю за ответ.
Аватар пользователя
piter
 
Сообщений: 32
Зарегистрирован: 09 мар 2018, 00:53
Средств на руках: 6.50 Доллар
Откуда: г. Ессентуки
Группа: Базовая
Благодарил (а): 23 раз.
Поблагодарили: 3 раз.

Сортировка ордеров на MQL4

Сообщение Haos » 10 мар 2018, 13:24

piter, при вставке в сообщение кода пользуйтесь соответствующем тегом "Code".
Аватар пользователя
Haos
Специалист MQL
 
Сообщений: 24699
Зарегистрирован: 29 мар 2014, 16:07
Средств на руках: 193.70 Доллар
Группа: Главные модераторы
Благодарил (а): 3379 раз.
Поблагодарили: 8200 раз.


Вернуться в MQL – теория и практика

Кто сейчас на форуме?

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 75

Права доступа к форуму

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения