ООП vs процедурное программирование - страница 7

 
Реter Konow:
Ясно. Это бесспорный аргумент в пользу ООП. Тупость заказчика и отсутствие времени с ней бороться и нежелание улучшать чужой алгоритм.)) Да, в этом случае ООП нужен. Согласен.)
Мне кажется, даже при этом можно обойтись без ООП
 
Реter Konow:
Ясно. Это бесспорный аргумент в пользу ООП. Тупость заказчика и отсутствие времени с ней бороться и нежелание улучшать чужой алгоритм.)) Да, в этом случае ООП нужен. Согласен.)

А почему тупость? Нормальный такой научный подход - иметь все под рукой для возможности экспериментов.

 
Реter Konow:
Ясно. Это бесспорный аргумент в пользу ООП. Тупость заказчика и отсутствие времени с ней бороться и нежелание улучшать чужой алгоритм.)) Да, в этом случае ООП нужен. Согласен.)

Упростите

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
struct str
  {
   int               Tickets;
   string            Symbols;
   int               Types;
   double            Lots;
   double            OpenPrice;
   double            StopLoss;
   double            TakeProfit;
   int               Slippage;
   string            Comments;
   int               Magic;
   datetime          Expiration;
   int               Digitss;
   double            Points;
   double            Profit;
   double            Commission;
   double            Swap;
   double            FullProfit;
  };

str Order[];
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class COrderMass
  {
protected:
   int               m_slippage;
   string            m_symbol;
   int               m_magic;
public:
   void              SetSymbol(string aSymbol)    {m_symbol   = aSymbol;}
   void              SetSlippage(int aSlippage)   {m_slippage = aSlippage;}
   void              SetMagic(int aMagic)         {m_magic    = aMagic;}

                     COrderMass(void);
                     COrderMass(string aSymbol,int aMagic,int aSlippage);
   void              UpdateOrdersMass();
  };
//+------------------------------------------------------------------+
COrderMass :: COrderMass(string aSymbol,int aMagic,int aSlippage):m_symbol(aSymbol),m_magic(aMagic),m_slippage(aSlippage)
  {

  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void COrderMass :: UpdateOrdersMass()
  {
   int z=0;
   for(int i=OrdersTotal()-1; i>=0; i--)
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
         if(OrderMagicNumber()==m_magic || m_magic==-1)
            if(OrderSymbol()==m_symbol || m_symbol=="")
              {
               ArrayResize(Order,z+1,1000);
               Order[z].Tickets       = OrderTicket();
               Order[z].Symbols       = OrderSymbol();
               Order[z].Types         = OrderType();
               Order[z].Lots          = OrderLots();
               Order[z].OpenPrice     = OrderOpenPrice();
               Order[z].StopLoss      = OrderStopLoss();
               Order[z].TakeProfit    = OrderTakeProfit();
               Order[z].Slippage      = m_slippage;
               Order[z].Comments      = OrderComment();
               Order[z].Magic         = OrderMagicNumber();
               Order[z].Expiration    = OrderExpiration();
               Order[z].Digitss       = (int)SymbolInfoInteger(Order[z].Symbols,SYMBOL_DIGITS);
               Order[z].Points        = SymbolInfoDouble(Order[z].Symbols,SYMBOL_POINT);
               Order[z].Profit        = OrderProfit();
               Order[z].Commission    = OrderCommission();
               Order[z].Swap          = OrderSwap();
               Order[z].FullProfit    = Order[z].Profit+Order[z].Commission+Order[z].Swap;
               z++;
              }
  }
//+------------------------------------------------------------------+
 

Господа спорщики, давайте так, если вы ООП не понимаете, не знаете, давайте тогда спорить не процедурное программирование против ООП, а процедурное программирование с указателями на функции против процедурного программирования без указателей на функции. 

 
Vladimir Pastushak:

Упростите


вернее решите с помощю функций

 

ООП - это прогресс. Просто надо с этим согласиться и начать изучать. Возможно - пригодится

Классы в C++ — урок 10
Классы в C++ — урок 10
  • голосов: 74
  • 2012.09.16
  • code-live.ru
Весь реальный мир состоит из объектов. Города состоят из районов, в каждом районе есть свои названия улиц, на каждой улице находятся жилые дома, которые также состоят из объектов. Практически любой материальный предмет можно представить в виде совокупности объектов, из которых он состоит. Допустим, что нам нужно написать программу для учета...
 
Vladimir Pastushak:

Упростите


Возможно это не рациональный подход - вгружать все открытые ордера все их параметры в массив.

 
Dmitry Fedoseev:

А почему тупость? Нормальный такой научный подход - иметь все под рукой для возможности экспериментов.

Тупость или нормальный подход - это субъективные ощущение. По мне - чистейшая тупость. Но, возможно я тоже не совсем прав. Знаю, что таким методом трейлинг я бы делать не стал.
 
Dmitry Fedoseev:

Господа спорщики, давайте так, если вы ООП не понимаете, не знаете, давайте тогда спорить не процедурное программирование против ООП, а процедурное программирование с указателями на функции против процедурного программирования без указателей на функции. 

Давайте спорить, нужно ли структурное программирование - т.е. деление программы на функции
 
Реter Konow:
Тупость или нормальный подход - это субъективные ощущение. По мне - чистейшая тупость. Но, возможно я тоже не совсем прав. Знаю, что таким методом трейлинг я бы делать не стал.

Вот этот пост прочитайте и среагируйте на него https://www.mql5.com/ru/forum/213378/page7#comment_5596988