Deseos para MT5 - página 31

 

Por favor, considere


Propuesta de añadir a MQL5 una funcionalidad que permita cambiar desde un indicador o experto o desde un script

Barras máximas en la ventana...

Puede ser útil hacer un límite controlable del programa



 
A los desarrolladores. Por favor, preste atención a mi solicitud18097(entiendo que esta cosa es controvertida, pero aún así)...


PS

También, si puedes - por favor haz que los resultados de optimización y el gráfico de optimización se borren, en caso de que las pruebas se realicen en modo normal.

¿O es un truco para poder verlo en cualquier momento?

 
Interesting:


PS

También, si puedes - por favor haz que los resultados de optimización y el gráfico de optimización se borren, en caso de que las pruebas se realicen en modo normal.

¿O es sólo un truco para poder verlo en cualquier momento?

Me opondría a tal sugerencia. Después de la optimización, para analizar los resultados tengo que comprobar varias pasadas por separado en modo normal (se consigue haciendo clic en la pasada correspondiente). Si los resultados de la optimización desaparecen tras la primera prueba en modo normal, se perderá una valiosa oportunidad de trabajar con los resultados.

 
Yedelkin:

Me opongo a esta sugerencia. Después de la optimización, tengo que probar muchas pasadas individualmente en modo normal para analizar los resultados (se consigue haciendo clic en la pasada correspondiente). Si los resultados de la optimización desaparecen tras la primera prueba en modo normal, se perderá una valiosa oportunidad de trabajar con los resultados.

Bueno, no insisto, que es lo que dice la línea - > ¿O es que es un truco para poder mirar hacia arriba en cualquier momento?

 

1)Tienes que añadir eventos normales, no lo que has implementado.

Lo primero que me vino a la cabeza

OnBar,OnBarClose,OnQuote,OnDomChanged...

OnPositionOpened,OnPositionClosed...

OnConnected,Ondisconnected...

cambios en el estado de las solicitudes, etc.

2) hacer una documentación de tipo humano, como aquí: http://msdn.microsoft.com/en-us/library/system.data.aspx

3) "Llevar la API a las masas" -)

ps Parece que los desarrolladores hacen software para novatos o son ellos mismos

System.Data Namespace ()
System.Data Namespace ()
  • msdn.microsoft.com
The namespace provides access to classes that represent the ADO.NET architecture. ADO.NET lets you build components that efficiently manage data from multiple data sources. In a disconnected scenario such as the Internet, ADO.NET provides the tools to request, update, and reconcile data in multiple tier systems. The ADO.NET architecture is...
 
anubis:

1)Tienes que añadir eventos normales, no lo que has implementado.

Lo primero que me vino a la cabeza

OnBar,OnBarClose,OnQuote,OnDomChanged...

OnPositionOpened,OnPositionClosed...

OnConnected,Ondisconnected...

cambios en el estado de las solicitudes, etc.

2) hacer una documentación de tipo humano, como aquí: http://msdn.microsoft.com/en-us/library/system.data.aspx

3) "Llevar la API a las masas" -)

ps ps Parece que los desarrolladores o bien hacen software para novatos o bien son ellos mismos como novatos.

Existen los eventos de los USUARIOS. Puedes implementar cualquier número de ellos por ti mismo.

Llevo mucho tiempo captando los eventos OnConnected y OnDisconnected a través de un temporizador. Si quieres, también puedes crear eventos OnBar y OnBarClose o cualquier otro.

Entonces puedes atraparlos fácilmente en OnChartEvent con ayuda de dicho bloque (hay todo esto en la ayuda, ¿por qué reinventar la rueda?).

  if(id>CHARTEVENT_CUSTOM)
  //User event is received / Получено пользовательское событие
  {
  }

PS

Y a nivel de clase puede manejar cualquier (bueno, casi cualquier) evento...

 
Interesting:

Existen los eventos de los USUARIOS. Puedes poner en práctica cualquier número de ellos por ti mismo.

Llevo mucho tiempo captando OnConnected y OnDisconnected mediante un temporizador. Si quieres, también puedes crear eventos OnBar y OnBarClose o cualquier otro.

Después de eso, sólo tienes que atraparlos en OnChartEvent con la ayuda de este bloque (está todo en la ayuda, ¿por qué reinventar la rueda?).

PS

Y a nivel de clase puede manejar cualquier (bueno, casi cualquier) evento...

Es interesante ver cómo lo implementan (¿OnConnected?)

 

dentraf:

Es interesante ver cómo se implementa esto (¿OnConnected?)

Sí, por favor :)

Aquí hay un ejemplo de manejo de estos eventos en Expert Advisor con la clase CMqlManagerConnect (módulo adjunto al post).

1. Copie el módulo en la carpeta \MQL5\Include\ (preferiblemente en un subdirectorio)

Lo tengo todo aquí - MQL5\Include\Units\Objects.

2. En el Asesor Experto añada un enlace a este archivo.

////////////////////////////////////////////////////////////////////////////////
//              Object classes, used in working the trade system              //
////////////////////////////////////////////////////////////////////////////////
#include <\Units\Objects\UManagerConnect.mqh> //Class - CMqlManagerConnect

3. Crea una variable de tipo CMqlManagerConnect.

////////////////////////////////////////////////////////////////////////////////
//             Global variables, used in working the trade system             //
////////////////////////////////////////////////////////////////////////////////
//****************************************************************************//
//               Objects created on the grounds of the classes                //
//****************************************************************************//
CMqlManagerConnect ManagerConnect; //Менеджер контролирующий состояние коннекта

4. En el temporizador se hace así

void OnTimer()
{
//----------------------------------------------------------------------------//
//Work variables / Служебные переменные
//----------------------------------------------------------------------------//
//****************************************************************************//
//                  Контроль состояния соединения с сервером                  // 
//****************************************************************************//
ManagerConnect.OnEventTimer();
//----------------------------------------------------------------------------//
}

5 Debe escribir el siguiente texto en OnChartEvent

void OnChartEvent(const int id,         // идентификатор события  
                  const long& lparam,   // параметр события типа long
                  const double& dparam, // параметр события типа double
                  const string& sparam  // параметр события типа string
                  )
{
//----------------------------------------------------------------------------//
//Work variables / Служебные переменные
//----------------------------------------------------------------------------//

//****************************************************************************//
//                          Processing user events                            //
//****************************************************************************//
  if(id>CHARTEVENT_CUSTOM)
  //User event is received / Получено пользовательское событие
  {
  //Выводим текстовое сообщение о событии в комментарий
  Comment("User Event ",sparam);

    if(id==CHARTEVENT_CUSTOM+1)
    //Соединеие с сервером востановлено
    {
    //тут обрабатываем все что нам нужно
    }

    if(id==CHARTEVENT_CUSTOM+2)
    //Соединеие с сервером потеряно
    {
    //тут обрабатываем все что нам нужно
    }

  }
//----------------------------------------------------------------------------//  
}

PS

Por supuesto, puede no pasar los eventos a OnChartEvent, sino procesarlos directamente en la clase (ya sea en la base o en las descendientes). Pero incluso con este enfoque, recomiendo dejar la referencia a OnChartEvent, porque es posible que necesite informar a los otros gráficos sobre los eventos... :)

Archivos adjuntos:
 
Interesting:

Sí, por favor :)

A continuación se muestra un ejemplo de cómo se manejan estos eventos en el Asesor Experto utilizando la clase CMqlManagerConnect (el módulo se adjunta en el post).

1. Copie el módulo en la carpeta \MQL5\Include\ (preferiblemente en un subdirectorio)

Lo tengo todo aquí - MQL5\Include\Units\Objects.

2. En el Asesor Experto añada un enlace a este archivo.

3. Crea una variable de tipo CMqlManagerConnect.

4. En el cronómetro se hace así

5 Debe escribir el siguiente texto en OnChartEvent

PS

Por supuesto, puede no pasar los eventos a OnChartEvent, sino procesarlos directamente en la clase (ya sea en la clase base o en las descendientes). Pero incluso con este enfoque, recomiendo dejar la referencia a OnChartEvent, porque es posible que necesite informar a los otros gráficos sobre los eventos... :)

¿Has escrito tú mismo la clase CMqlManagerConnect? ¿Tienes una solución para recuperar el servidor cuando pierdes la conexión con el mismo?
 
dentraf:
¿Has escrito tú mismo la clase CMqlManagerConnect? ¿Tienes una solución para la enumeración del servidor cuando pierdes la conexión con el mismo?
Por supuesto que lo escribí yo mismo (por ejemplo), pero tengo una manera diferente de resolver este problema. No hay una solución de fuerza bruta (al menos por ahora), pero tendremos que abordar este problema también (la gente ya se ha puesto en contacto con los desarrolladores al respecto)...