Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 1175

 
Peter Vorobyev:

Cambia el código fuente de MQ y saca los métodos a los públicos, está claro que este no es nuestro método :)

#define private public

si no lo quieres así, entonces todos los elementos deCAppDialog están formados por objetos gráficos, sólo necesitas saber el nombre del objeto, y después de crear una instancia de la clase CAppDialog, escribe un método que repinte los bordes de CAppDialog en el color que quieras

 
Igor Makanu:

si no lo quieres así, todos los elementos del panel CAppDialog están formados como objetos gráficos, sólo necesitas saber el nombre del objeto y después de crear una instancia de la clase CAppDialog, escribir un método que pinte los bordes del CAppDialog en el color que quieras

a través de esto. puede transferir el código buscando el control correcto dentro de la clase. Esto funciona.

Pero no sé cómo acceder a él, conociendo el nombre del objeto.

 
Peter Vorobyev:

Puedes usar esto para mover el código para encontrar el control que necesitas dentro de la clase. Esto funciona.

Pero no sé cómo acceder a él sabiendo el nombre del objeto.

https://www.mql5.com/ru/docs/objects/objectsetinteger

pero creo que es más fácil redefinir todos los métodos y campos privados a públicos para sus propias necesidades

 
Igor Makanu:

https://www.mql5.com/ru/docs/objects/objectsetinteger

pero creo que es más fácil redefinir todos los métodos y campos cerrados a públicos para sus propias necesidades

ObjectSetInteger - funciona :), lo había olvidado.
¿Puedes dar un ejemplo para#defineprivate public - No entiendo cómo anular el método. ¿Es necesario hacer esto en su clase?

 
Peter Vorobyev:

ObjectSetInteger - funciona :), lo había olvidado.
¿Puedes dar un ejemplo para#define private public - No entiendo cómo anular el método. ¿Es necesario hacer esto en su clase?

#define private public
#include <Controls\Dialog.mqh>
// тут весь Ваш класс который наследуете от CAppDialog
#undef private
Experimenta con undef, después de la sustitución de la macro puedes cancelarla y cerrar todos los métodos públicosde CAppDialog en tu clase para que sea más fácil escribir el código después
 
Igor Makanu:

Igor, sí funciona. Gracias.

 

Ejecución de la optimización genética de un EA en MT5 con agentes locales conectados a la red doméstica.

El Asesor Experto toma algunos datos iniciales de un archivo de texto.

Abro el archivo con las banderas: FILE_READ|FILE_SHARE_READ|FILE_ANSI|FILE_CSV|FILE_COMMON

Para que los agentes locales encuentren el archivo, tuve que copiarlo en la carpeta Common del terminal del ordenador local.

¿La única solución es duplicar manualmente los archivos necesarios en todas las máquinas locales cada vez?

¿No puede el propio terminal enviar este archivo junto con los parámetros de prueba de entrada?

 
¿Cómo puedo averiguar el precio del nivel de abanico de Fibonacci en la barra actual mediante programación?
 
Сергей Таболин:
¿Cómo puedo averiguar el precio del nivel de abanico de Fibonacci en la barra actual mediante programación?
bool  ObjectGetDouble(
   long                            chart_id,          // идентификатор графика
   string                          name,              // имя объекта
   ENUM_OBJECT_PROPERTY_DOUBLE     OBJPROP_LEVELVALUE,           // идентификатор свойства
   int                             prop_modifier,     // модификатор свойства
   double&                         double_var         // сюда примем значение свойства
   );
Документация по MQL5: Графические объекты / ObjectGetDouble
Документация по MQL5: Графические объекты / ObjectGetDouble
  • www.mql5.com
2. Возвращает true или false в зависимости от успешности выполнения функции.  В случае успеха значение свойства помещается в приемную переменную, передаваемую по ссылке последним параметром. [in]  Модификатор указанного свойства. Для первого варианта по умолчанию значение модификатора равно 0. Большинство свойств не требуют модификатора...
 
Alexey Viktorov:
void OnTick()
{
//---
   Print(TimeToString(TimeLocal()));
   Print(ObjectGetDouble(0,"TrL",OBJPROP_PRICE));
}

Da el precio del primer punto de la línea de tendencia. (((

2020.01.18 11:46:37.233 2019.11.29 00:00:00   2019.11.29 00:00
2020.01.18 11:46:37.233 2019.11.29 00:00:00   1.00245
2020.01.18 11:46:39.533 2019.11.29 08:00:00   2019.11.29 08:00
2020.01.18 11:46:39.533 2019.11.29 08:00:00   1.00245
2020.01.18 11:46:41.834 2019.11.29 16:00:00   2019.11.29 16:00
2020.01.18 11:46:41.834 2019.11.29 16:00:00   1.00245
2020.01.18 11:46:44.135 2019.12.02 00:00:00   2019.12.02 00:00
2020.01.18 11:46:44.135 2019.12.02 00:00:00   1.00245
Razón de la queja: