OOP vs programmazione procedurale - pagina 7

 
Реter Konow:
Capisco, questo è un argomento indiscutibile a favore dell'OOP. Stupidità del cliente e mancanza di tempo per combatterlo e mancanza di volontà di migliorare l'algoritmo di qualcun altro). Sì, avete bisogno di OOP in questo caso. Sono d'accordo).
Mi sembra che si possa fare a meno di OOP anche in questo caso
 
Реter Konow:
Capisco, questo è un argomento indiscutibile a favore dell'OOP. Stupidità del cliente e mancanza di tempo per combatterlo e mancanza di volontà di migliorare l'algoritmo di qualcun altro). Sì, avete bisogno di OOP in questo caso. Sono d'accordo).

Perché è stupido? Il normale approccio scientifico è quello di avere tutto a portata di mano per poter sperimentare.

 
Реter Konow:
Capisco, questo è un argomento indiscutibile a favore dell'OOP. Stupidità del cliente e mancanza di tempo per combatterlo e mancanza di volontà di migliorare l'algoritmo di qualcun altro). Sì, avete bisogno di OOP in questo caso. Sono d'accordo).

Semplificare

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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++;
              }
  }
//+------------------------------------------------------------------+
 

Signori litiganti, mettiamola così, se non capite OOP, non lo sapete, discutiamo allora non di programmazione procedurale contro OOP, ma di programmazione procedurale con puntatori a funzioni contro programmazione procedurale senza puntatori a funzioni.

 
Vladimir Pastushak:

Semplificare


o piuttosto risolverlo con le funzioni

 

OOP è il progresso. Devi solo accettarlo e iniziare a studiarlo. Può essere utile.

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

Semplificare


Potrebbe non essere un approccio razionale caricare tutti gli ordini aperti con tutti i loro parametri in un array.

 
Dmitry Fedoseev:

Perché è stupido? Il normale approccio scientifico è quello di avere tutto a portata di mano per la possibilità di sperimentare.

La stupidità o l'approccio normale è una sensazione soggettiva. Per me è pura stupidità. Ma forse nemmeno io ho ragione. So che non farei il trailing in questo modo.
 
Dmitry Fedoseev:

Signori litiganti, mettiamola così, se non capite OOP, non lo sapete, discutiamo allora non di programmazione procedurale contro OOP, ma di programmazione procedurale con puntatori a funzioni contro programmazione procedurale senza puntatori a funzioni.

Discutiamo se la programmazione strutturata - cioè la divisione di un programma in funzioni - è necessaria
 
Реter Konow:
La stupidità o la normalità è una sensazione soggettiva. Per me è pura stupidità. Ma forse nemmeno io ho ragione. So che non farei il trailing in questo modo.

Leggi questo post qui e reagisci ad essohttps://www.mql5.com/ru/forum/213378/page7#comment_5596988

Motivazione: