Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 862

 

¡Hablando de cubos!

¿Puede decirme cómo borrar un "cubo" innecesario?

 
im-zvv:

¡Hablando de cubos!

¿Pueden decirme cómo borrar un "cubo" innecesario?

Para ello, es necesario saber en qué posición está este "cubo", cuántos bytes ocupa, reescribir un puntero de archivo allí y escribir un nuevo valor en ese lugar.

Por lo tanto, si las cuerdas tienen diferentes longitudes, simplemente no es realista. No será posible calcular cuántos bytes hasta el "cubo" deseado.

 
Alexey Viktorov:

Para ello, es necesario saber en qué posición se encuentra este "cubo" y cuántos bytes ocupa, entonces envolver el puntero del archivo allí y escribir el nuevo valor en ese lugar.

En consecuencia, si las cadenas tienen diferentes longitudes, simplemente no podemos hacerlo. Será imposible calcular cuántos bytes al "cubo" correcto.

Obviamente, todos estos cálculos aumentarán el tiempo de procesamiento.

Buscaré otros métodos.

Gracias.

 
Alexey Viktorov:

Para ello, es necesario saber en qué posición está este "cubo" y cuántos bytes ocupa, reescribir un puntero de archivo allí y escribir un nuevo valor en este lugar.

Por lo tanto, si las cadenas tienen diferentes longitudes, simplemente no se puede hacer. Será imposible calcular cuántos bytes hasta el "cubo" deseado.

Si no es crucial y puedes usar WinApi, entonces creo que la tarea puede ser resuelta vía FileMapping.

 

Lo intentaré todo. Empezaré creando un archivo "vacío", con variables abstractas para la reserva. Entonces lo reemplazaré con los datos que obtenga.

Tal vez funcione. El único problema es el tamaño del archivo, que podría aumentar. Tendré que crear una nueva copia de seguridad antes de cada lectura.

 
Buscandoartículos sobre el uso delnuevo operador en mql4, ¿puede aconsejar tales artículos? ¿Quién puede explicar brevemente por qué son necesarias las clases si hay funciones y variables globales, he visto un montón de vídeos y he leído la ayuda muchas veces y sigo sin entender cuál es el sentido?
 
Seric29:
Buscando artículos sobre el uso delnuevo operador en mql4, aconsejar tales artículos? He visto muchos vídeos y he leído muchas veces el archivo de ayuda, pero no entiendo para qué sirve.

el operador new en MQL sólo es necesario para crear un puntero a una instancia de objeto


Los programas MQL son bastante especializados y la POO es principalmente adecuada para la encapsulación, di un ejemplo de la claseCWorkTime arribahttps://www.mql5.com/ru/forum/160683/page861#comment_11840254

es conveniente utilizar la encapsulación para hacer varias instancias del objeto de límite de tiempo, así:

int OnInit()
{
   Work1=new CWorkTime(StartHour_1,StartMinute_1,StopHour_1,StopMinute_1);
   Work2=new CWorkTime(StartHour_2,StartMinute_2,StopHour_2,StopMinute_2);
}

.....


void OnTick()
  {

if(Work1.Disable() || Work1.Disable())
{
 Comment("Не торговое время!!!");
 }
else
{......

Es decir, en mi ejemplo, ahora puede especificar 2 intervalos de tiempo de trabajo del EA

SZY: leer - buscar en la sección de artículos del foro "Objetos".

Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
  • 2019.05.26
  • www.mql5.com
В этой ветке я хочу начать свою помощь тем, кто действительно хочет разобраться и научиться программированию на новом MQL4 и желает легко перейти н...
 
Igor Makanu:

Está claro que en mayor medida las clases componen las variables de datos y las funciones, y en el resto probablemente hagan algo potente si no entiendo mal, porque todo se puede organizar por funciones, quizás las clases funcionen más rápido que las funciones, se consigue un acceso más rápido a los datos, he leído en foros que escriben que usan la memoria de forma más uniforme y económica y todo eso.

 

¿Por qué no funciona este código?

#property version   "1.00"
#property strict
string iComments="\n 
 class CArray : public Cobject 
{
public:
    double m_Array[100];
}//дальше в OnInit()
 {Carray *arr = new CArray;
   arr.m_Array[22] = 1.23456;

....
}

Tal vez la clase debería describirse con dos puntos ::? La idea es crear un puntero que apunte a otro puntero.

 

¡Hola!

Gracias de nuevo aAlexey Viktorov por el consejo sobre las citas: todo funciona. Este lunes nos encontramos con una situación: los alemanes han comerciado, mientras que los ingleses tienen un día libre. Resultó que en la condición para la apertura de la posición del euro se utilizaron los valores antiguos de la libra. De ahí la petición: ¿aconsejar cómo establecer la comprobación en el código de que ambos símbolos se negocian en este día?

Gracias.