PLO - página 3

 

Sin el segundo parámetro, es lo mismo.

Archivos adjuntos:
test-2.mq5  2 kb
 

Había algunos errores menores en tu código - lo he corregido y he añadido una salida de comprobación.

Mi resultado en x64:

2010.07.16 20:10:57	Test (GBPUSD,M15)	Класс:   828 результат: 0.9999999999999994
2010.07.16 20:10:56	Test (GBPUSD,M15)	Функция: 735 результат: 0.9999999999999994

El análisis del código generado mostró que las llamadas a los métodos de las funciones y de las clases estaban completamente en línea y eran realmente iguales entre sí.

No hay llamadas a funciones en el bucle, y la velocidad ligeramente inferior de la clase se debe al direccionamiento indirecto de la misma.


Aquí está el código:

class CLASS
  {
protected:
   double            prev;

public:
          CLASS() { prev=0.0; }
   double ma(double v)
     {
      prev=0.1*v+0.9*prev;
      return(prev);
     }
  };

double FUNC(double v,double prev)
  {
   prev=0.1*v+0.9*prev;
   return(prev);
  }
void OnStart()
  {
   double x;
   int    start;
   CLASS  CL;
//---
   start=GetTickCount();
   x=0;
   for(int i=0;i<100000000;i++)
     {
      x=FUNC(1,x);
     }
   Print("Функция: "+IntegerToString(GetTickCount()-start)," результат: ",x);
//---
   start=GetTickCount();
   x=0;
   for(int i=0;i<100000000;i++)
     {
      x=CL.ma(1);
     }
   Print("Класс: "+IntegerToString(GetTickCount()-start)," результат: ",x);
  }
Документация по MQL5: Основы языка / Типы данных / Структуры и классы
Документация по MQL5: Основы языка / Типы данных / Структуры и классы
  • www.mql5.com
Основы языка / Типы данных / Структуры и классы - Документация по MQL5
 

La diferencia entre las llamadas a las funciones y los métodos de las clases sólo puede captarse mediante pruebas especialmente escritas como éstas.

En realidad, el uso de las clases proporciona un aumento de velocidad al ahorrar en el paso de parámetros de uso frecuente.

Документация по MQL5: Основы языка / Типы данных / Структуры и классы
Документация по MQL5: Основы языка / Типы данных / Структуры и классы
  • www.mql5.com
Основы языка / Типы данных / Структуры и классы - Документация по MQL5
 
Renat:

La diferencia entre las llamadas a las funciones y los métodos de las clases sólo puede captarse mediante pruebas especialmente escritas como ésta.

En realidad, el uso de las clases proporciona una aceleración a expensas de la economía en la transferencia de los parámetros más utilizados.


Estoy de acuerdo, la POO difícilmente llegará a ser más rápida que la programación procedimental, a menos que aparezca el soporte de hardware :)

Bueno, ni lo menciones, voy a sumergirme en la POO en mql 5, aún no me he puesto a ello))

 
mrProF:

Estoy de acuerdo, la POO difícilmente llegará a ser más rápida que la programación procedimental, a menos que haya soporte de hardware :)

Bueno, ni lo menciones, me sumergiré en la POO en mql 5, nunca me he puesto a ello))

nadie necesita toda esta OOP, excepto los programadores que quieren escribir un cerebro artificial))))

Es decir, he leído el artículo en la primera página... no lo entiendo... Clancy... ¿por qué?

Sólo explicar por qué ... 30 indicadores pueden estar unidos a Expert mucho más rápido ... o lo que for)))) no entiendo realmente, no se enoje.

tal vez sea para:




 
maryan.dirtyn:

nadie necesita toda esta OOP, excepto los programadores que quieren escribir un cerebro artificial))

He leído el artículo de la primera página... no lo entiendo... Clasie... ¿por qué?

Sólo explicar por qué ... 30 indicadores pueden estar unidos a Expert mucho más rápido ... o lo que for)))) no entiendo realmente, no se enoje.

Para los programadores que quieren escribir un "cerebro" artificial para sí mismos y hacer que los comerciantes no tengan cerebro...
 

Si no te gusta la POO, no la uses

Toda la funcionalidad básica de MT5 se implementa clásicamente como funciones

Y comprar caramelos al peso o en bolsa es cuestión de gustos

Me gustan los caramelos en la nevera en los estantes y envueltos en envases multicolores

 
maryan.dirtyn:

nadie necesita toda esta OOP, excepto los programadores que quieren escribir un cerebro artificial))

He leído el artículo de la primera página... no lo entiendo... Clasie... ¿por qué?

Sólo explicar por qué ... 30 indicadores pueden estar unidos a Expert mucho más rápido ... o lo que for)))) no entiendo realmente, no se enoje.

tal vez sea para:




La POO es algo bueno para los programas grandes.
Si hay menos de 50 líneas de código, no necesitas OOP.
Pero cuando el código es excesivo, resulta casi imposible entender qué pertenece a qué, sólo los comentarios.
La probabilidad de que se produzca un error aumenta cuando las variables no se comparten como es debido; es un lío.
En POO, las variables pueden ser almacenadas dentro de un contenedor (clase) junto con los métodos (funciones).

No hay ninguna tarea que se pueda escribir en POO y que no se pueda escribir sin POO.
Es una cuestión de conveniencia))

La POO no es un método para resolver problemas, sino una forma de estructurar el código.

 

mrProF:

No hay ninguna tarea que no pueda ser escrita en POO y que no pueda ser escrita sin POO.

Es una cuestión de conveniencia))

La POO no es un método de resolución de tareas, sino una forma de estructurar el código.

Y así es... :)
 

Me equivoqué: "No hay ninguna tarea que pueda escribirse en POO y que no pueda escribirse sin POO".

Eso es lo que quería decir))

Razón de la queja: