Cómo empezar con Metatrader 5 - página 121

 

Hola

Iam un principiante quiere seguir la estrategia de cortar y pegar. ¿Cómo puedo empezar? Necesito un enfoque paso a paso

por favor


 
Seth Agblemor:

Hola

Iam un principiante quiere seguir la estrategia de cortar y pegar. ¿Cómo puedo empezar? Necesito un enfoque paso a paso

por favor


¿Por dónde empiezo?
https://www.mql5.com/en/forum/212020

----------------

Where Do I start from?
Where Do I start from?
  • 2017.07.25
  • www.mql5.com
Hi fam! Am a total newbie in the forex niche... Just signed up here on this platform... Please where do i start from? I need help...
 

Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading

Algunas preguntas sobre las señales

Sergey Golubev, 2016.12.30 20:14

Sólo un poco de información sobre el servicio de señales:

Esta es la información sobre dónde empezar a.

------------

Delas reglas -

  • Las señales basadas en cuentas reales están disponibles sólo con la Suscripción pagada; las señales basadas en cuentas demo pueden ser recibidas sólo con la Suscripción gratuita.
  • Las señales basadas en cuentas cent no pueden tener Suscripción pagada. Estas señales están disponibles sólo en el terminal MetaTrader de forma gratuita. Una cuenta cent se define automáticamente. En caso de que una Señal se defina incorrectamente, la Administración del servicio puede asignar esta propiedad a la Señal manualmente.

 
Uso práctico de las redes neuronales de Kohonen en el trading algorítmico. Parte I. Herramientas

<br / translate="no">

El tema de las redes neuronales de Kohonen fue abordado en algunos artículos del sitio web mql5.com, comoUsing Self-Organizing Feature Maps (Kohonen Maps) in MetaTrader 5 ySelf-Organizing Feature Maps (Kohonen Maps) - Revisiting the Subject. En ellos se presentaban a los lectores los principios generales de la construcción de redes neuronales de este tipo y el análisis visual de los números económicos de los mercados mediante dichos mapas.

Sin embargo, en términos prácticos, el uso de las redes de Kohonen sólo para el comercio algorítmico se ha limitado con un solo enfoque, a saber, el mismo análisis visual de los mapas topológicos construidos para los resultados de optimización del EA. En este caso, el juicio de valor, o más bien la visión y la capacidad de sacar conclusiones razonables de una imagen, resulta ser, quizás, el factor crucial, dejando de lado las propiedades de la red en cuanto a la representación de los datos en términos de asuntos prácticos.

En otras palabras, las características de los algoritmos de las redes neuronales no se aprovecharon al máximo, es decir, se utilizaron sin extraer automáticamente conocimientos ni apoyar la toma de decisiones con recomendaciones específicas. En este trabajo, consideramos el problema de definir los conjuntos óptimos de parámetros de los robots de una manera más formalizada. Además, vamos a aplicar la red de Kohonen a la previsión de rangos económicos. Sin embargo, antes de proceder a estos problemas aplicados, debemos revisar los códigos fuente existentes, arreglar algo e introducir algunas mejoras.

Es muy recomendable leer primero los artículos anteriores, si no se está familiarizado con términos como "red", "capa", "neurona" ("nodo"), "enlace", "peso", "tasa de aprendizaje", "rango de aprendizaje" y otras nociones relacionadas con las redes de Kohonen. Entonces tendremos que saturar en esta materia, por lo que volver a enseñar las nociones básicas alargaría significativamente esta publicación.

 

Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias comerciales

Nueva plataforma MetaTrader 5 build 2005: calendario económico, aplicaciones MQL5 como servicios y API en lenguaje R

MetaQuotes Software Corp. , 2019.02.20 17:20

La actualización de la plataforma MetaTrader 5 se lanzará el 21 de febrero de 2019. La nueva versión presenta los siguientes cambios:

  1. Terminal: Calendario Económico incorporado completamente revisado.

    El Calendario Económico es nuestra solución patentada. En él encontrarás más de 600 noticias e indicadores financieros relacionados con las 13 economías más grandes del mundo: EE. UU., Unión Europea, Japón, Reino Unido, Canadá, Australia, China, entre otros. Los datos relevantes se recopilan de fuentes abiertas en tiempo real.

    La nueva versión cuenta con contenidos actualizados y filtros de eventos avanzados: por hora, prioridad, monedas y países.

    Ahora se puede acceder a los datos del calendario desde los programas MQL5. Consulte a continuación para obtener más información.




  2. Terminal: Se agregó un nuevo tipo de aplicaciones MQL5: Servicios. Este nuevo tipo permite la creación de feeds de precios personalizados para la terminal, es decir, implementar la entrega de precios desde sistemas externos en tiempo real, tal como se implementa en los servidores comerciales de los corredores.

    A diferencia de los asesores expertos, los indicadores y los scripts, los servicios no están vinculados a un gráfico específico. Dichas aplicaciones se ejecutan en segundo plano y se inician automáticamente cuando se inicia el terminal (a menos que dicha aplicación se haya detenido por la fuerza).

    Los servicios se pueden administrar desde una nueva sección dentro de la ventana del Navegador:





    Cómo crear servicios
    Para crear una plantilla de servicio, utilice la opción correspondiente del asistente de MQL5 . Los servicios tienen un punto de entrada OnStart , similar a los scripts. En este punto, puede implementar un ciclo interminable de recepción y manejo de datos utilizando funciones de red .

    Cómo lanzar servicios
    Para ejecutar varias copias de Expert Advisor o indicador con diferentes parámetros, debe iniciarlos en diferentes gráficos. En este caso, se crean diferentes instancias de programa, que luego funcionan de forma independiente. Los servicios no están vinculados a gráficos, por lo que se ha implementado un mecanismo especial para la creación de instancias de servicio.

    Seleccione un servicio del Navegador y haga clic en "Agregar servicio" en su menú contextual. Esto abrirá un cuadro de diálogo estándar del programa MQL5, en el que puede habilitar/deshabilitar el comercio y acceder a la configuración de la señal, así como establecer varios parámetros.




    Una instancia de servicio se puede iniciar y detener utilizando el menú de instancia apropiado. Para administrar todas las instancias, use el menú de servicio.

  3. Terminal: Se ha agregado un programa de aprendizaje.

    La nueva función ayudará a los principiantes a aprender a interactuar con la plataforma. Hemos agregado más de 100 consejos interactivos sobre las funciones principales de la plataforma.

    • Los consejos se muestran a la perfección como una barra de progreso en la barra de herramientas y, por lo tanto, no distraen al usuario.
    • Las sugerencias solo aparecen para las acciones que nunca ha realizado en la plataforma.
    • Todos los consejos incluyen enlaces interactivos, mediante los cuales puede navegar a los elementos de interfaz relevantes. Por ejemplo, un cuadro de diálogo comercial o un menú con el programa deseado se puede iniciar directamente desde la punta.

    El área llena de la barra de progreso aumentará cada vez que realice las acciones apropiadas y continúe entrenando.




  4. Terminal: El historial de la cuenta comercial se puede presentar como posiciones. La plataforma recopila datos sobre transacciones relacionadas con la posición (apertura, aumento de volumen, cierre parcial o total) y agrupa la información en un solo registro. Así podrá acceder a los detalles de la posición: hora de apertura y cierre, volumen, precio y resultado. Este formulario de presentación eficiente ahora está disponible en los informes de historial exportados a archivos.




  5. Terminal: Se agregó una nueva API que permite la solicitud de datos del terminal MetaTrader 5 a través de aplicaciones que utilizan el lenguaje R.

    Hemos preparado un paquete especial de MetaTrader. Contiene DLL para interacciones entre R y el terminal MetaTrader 5, documentación y archivos r auxiliares. Estamos completando el registro del paquete en el repositorio CRAN , luego de lo cual estará disponible para su descarga e instalación.




    El paquete se puede instalar usando un comando especial:
    R CMD INSTALL --build MetaTrader

    Están disponibles los siguientes comandos relacionados con la solicitud de datos:

    • MT5Initialize inicializa y establece conexión con el terminal MetaTrader 5. Si es necesario, el terminal se inicia durante la ejecución del comando.
    • MT5Shutdown se desinicializa y se desconecta de MetaTrader 5.
    • MT5Version obtiene la versión de terminal MetaTrader 5.
    • MT5TerminalInfo obtiene el estado y los parámetros de la conexión del terminal al servidor de un corredor (número de cuenta y dirección del servidor).
    • MT5WaitTerminal espera a que el terminal MetaTrader 5 se conecte al servidor de un bróker.
    • MT5CopyTicksFrom(símbolo, desde, conteo, banderas) copia el número especificado de marcas a partir de la fecha especificada. La fecha se especifica en milisegundos desde el 01.01.1970.
    • MT5CopyTicksRange(símbolo, desde, hasta, banderas) copia los ticks dentro del período especificado. Las fechas se especifican en milisegundos desde el 01.01.1970.
    • MT5CopyRatesFrom(símbolo, período de tiempo, desde, recuento) copia el número especificado de barras de un minuto a partir de la fecha especificada. La fecha se especifica en segundos desde el 01.01.1970.
    • MT5CopyRatesFromPos(symbol, timeframe, start_pos, count) copia barras de un minuto desde la posición especificada en relación con la última barra.
    • MT5CopyRatesFromRange(símbolo, período de tiempo, fecha_desde, fecha_hasta) copia barras dentro del período especificado. Las fechas se especifican en segundos desde el 01.01.1970.

    La lista de comandos admitidos se ampliará aún más.

  6. Terminal: cuadro de diálogo Cerrar por optimizado utilizado para cerrar una posición con una opuesta. Ahora, el diálogo no se ralentiza incluso si tiene una gran cantidad de posiciones abiertas.
  7. Terminal: se corrigieron errores de cálculo de símbolos sintéticos , debido a los cuales los datos podrían omitirse ocasionalmente.
  8. Terminal: cuando se elimina un símbolo personalizado , también se eliminan los archivos que almacenan su historial de ticks y barras. Esto evita la acumulación de datos no utilizados en el disco duro.
  9. Terminal: Visualización fija de resultados de búsqueda en pantallas de alto DPI.
  10. MQL5: Acceso implementado a los datos del calendario económico de los programas MQL5.

    Nuevas funciones

    CalendarCountryById: obtiene la descripción del país por identificador.
     bool CalendarCountryById(
       const long            country_id,    // country ID
       MqlCalendarCountry&  country        // country description
       );
    CalendarEventById: obtiene la descripción del evento por identificador.
     bool CalendarEventById(
       const long            event_id,      // event ID
       MqlCalendarEvent&     event           // event description
       );
    CalendarValueById: obtiene la descripción del valor del evento por identificador.
     bool CalendarValueById(
       const long            value_id,      // value ID
       MqlCalendarValue&     value           // value description
       );
    CalendarEventByCountry: obtiene la matriz de eventos disponibles para el país.
     bool CalendarEventByCountry(
       string                country_code,  // country code
       MqlCalendarEvent&    events[]       // array of events
       );
    CalendarEventByCurrency: obtiene la matriz de eventos disponibles para la moneda afectada.
     bool CalendarEventByCurrency(
       string                currency,       // currency
       MqlCalendarEvent&    events[]       // array of events
       );
    CalendarValueHistoryByEvent: obtiene la matriz de valores para el período de tiempo especificado, por identificador de evento.
     bool CalendarValueHistoryByEvent(
       ulong                 event_id,      // event ID
       MqlCalendarValue&    values[],      // array of values
       datetime              datetime_from, // period beginning date
       datetime              datetime_to= 0  // period end date
       );
    CalendarValueHistory: obtiene la matriz de valores para el período de tiempo especificado para todos los eventos, filtrados por país o moneda.
     bool CalendarValueHistory(
       MqlCalendarValue&    values[],           // array of values
       datetime              datetime_from,     // beginning of period
       datetime              datetime_to= 0 ,     // end of period
       string                country_code=NULL, // country code
       string               currency=NULL      // currency
       );
    CalendarValueLastByEvent: obtiene una matriz de valores del último evento por identificador. Esta función habilita la solicitud de los valores que han aparecido desde la solicitud anterior. El parámetro de entrada/salida "change_id" se utiliza adicionalmente para esta operación.

    Cada vez que cambia la base de datos del calendario, se actualiza la propiedad "change_id" (el último identificador de cambio). Durante la solicitud de datos, especifica "change_id" y el terminal devuelve los eventos que aparecieron después de ese tiempo, así como el valor actual de "change_id", que se puede usar para la siguiente solicitud. Durante la primera llamada a la función, especifique el cero "change_id": la función no devolverá ningún evento, pero devolverá el "change_id" actual para futuras solicitudes.
     bool CalendarValueHistory(
       ulong                 event_id,           // event ID
       ulong &               change_id,         // last calendar change ID
       MqlCalendarValue&    values[]           // array of values
       );
    CalendarValueLast: obtiene la matriz de los últimos valores de todos los eventos, filtrados por país o moneda. Esta función habilita la solicitud de los valores que han aparecido desde la solicitud anterior. De manera similar a CalendarValueLastByEvent, la propiedad "change_id" se usa para la solicitud.
     bool CalendarValueHistory(
       ulong                 event_id,           // event ID
       ulong &               change_id,         // last calendar change ID
       MqlCalendarValue&    values[],           // array of values
       string                country_code=NULL, // country code
       string currency=NULL                     // currency
       );

    Nuevas estructuras

    MqlCalendarCountry — descripción del país.
     struct MqlCalendarCountry
      {
       ulong              id;                         // country ID in ISO 3166-1
       string             name;                       // text name of the country
       string             code;                       // code name of the country in ISO 3166-1 alpha-2
       string             currency;                   // country currency code
       string             currency_symbol;           // country currency symbol/sign
       string             url_name;                   // country name used in URL on mql5.com
      };
    MqlCalendarEvent — descripción del evento.
     struct MqlCalendarEvent
      {
       ulong                           id;           // event ID
       ENUM_CALENDAR_EVENT_TYPE       type;         // event type
       ENUM_CALENDAR_EVENT_SECTOR     sector;       // sector to which the event belongs
       ENUM_CALENDAR_EVENT_FREQUENCY  frequency;     // event release frequency
       ENUM_CALENDAR_EVENT_TIMEMODE   time_mode;     // event release time mode
       ulong                           country_id;   // country ID
       ENUM_CALENDAR_EVENT_UNIT       unit;         // unit for the event values
       ENUM_CALENDAR_EVENT_IMPORTANCE importance;   // event importance
       ENUM_CALENDAR_EVENT_MULTIPLIER multiplier;   // event importance multiplier
       uint                            digits;       // number of decimal places in the event value
       string                          source_url;   // source URL
       string                          event_code;   // event code
       string                          name;         // text name of the event in the terminal language
      };
    MqlCalendarValue — descripción del valor del evento.
     struct MqlCalendarValue
      {
       ulong              id;                         // value ID
       ulong              event_id;                   // event ID
       datetime           time;                       // event date and time
       datetime           period;                     // period, for which the event is published
       int                revision;                   // published indicator revision in relation to the reported period
       long               actual_value;               // current event value
       long               prev_value;                 // previous event value
       long               revised_prev_value;         // revised previous event value
       long               forecast_value;             // forecast event value
       ENUM_CALENDAR_EVENT_IMPACRT impact_type;     // potential impact on the currency rate
      };

    Nuevas enumeraciones

     enum ENUM_CALENDAR_EVENT_FREQUENCY
      {
       CALENDAR_FREQUENCY_NONE            = 0 ,   // not used
       CALENDAR_FREQUENCY_WEEK            = 1 ,   // weekly
       CALENDAR_FREQUENCY_MONTH           = 2 ,   // monthly
       CALENDAR_FREQUENCY_QUARTER         = 3 ,   // quarterly
       CALENDAR_FREQUENCY_YEAR            = 4 ,   // yearly
       CALENDAR_FREQUENCY_DAY             = 5 ,   // daily
      };
    
    enum ENUM_CALENDAR_EVENT_TYPE
      {
       CALENDAR_TYPE_EVENT                = 0 ,   // event (meeting, speech, etc.)
       CALENDAR_TYPE_INDICATOR            = 1 ,   // indicator
       CALENDAR_TYPE_HOLIDAY              = 2 ,   // holiday
      };
    
    enum ENUM_CALENDAR_EVENT_SECTOR
      {
       CALENDAR_SECTOR_NONE               = 0 ,   // no
       CALENDAR_SECTOR_MARKET             = 1 ,   // market
       CALENDAR_SECTOR_GDP                = 2 ,   // GDP
       CALENDAR_SECTOR_JOBS               = 3 ,   // jobs
       CALENDAR_SECTOR_PRICES             = 4 ,   // prices
       CALENDAR_SECTOR_MONEY              = 5 ,   // money
       CALENDAR_SECTOR_TRADE              = 6 ,   // trade
       CALENDAR_SECTOR_GOVERNMENT         = 7 ,   // government
       CALENDAR_SECTOR_BUSINESS           = 8 ,   // business
       CALENDAR_SECTOR_CONSUMER           = 9 ,   // consumer
       CALENDAR_SECTOR_HOUSING            = 10 ,   // housing
       CALENDAR_SECTOR_TAXES              = 11 ,   // taxes
       CALENDAR_SECTOR_HOLIDAYS           = 12 ,   // holidays
      };
      
    enum ENUM_CALENDAR_EVENT_IMPORTANCE
      {
       CALENDAR_IMPORTANCE_LOW            = 0 ,   // no
       CALENDAR_IMPORTANCE_NONE           = 1 ,   // low
       CALENDAR_IMPORTANCE_MODERATE       = 2 ,   // moderate
       CALENDAR_IMPORTANCE_HIGH           = 3 ,   // high
      };
    
    enum ENUM_CALENDAR_EVENT_UNIT
      {
       CALENDAR_UNIT_NONE                 = 0 ,   // no
       CALENDAR_UNIT_PERCENT              = 1 ,   // percent
       CALENDAR_UNIT_CURRENCY             = 2 ,   // national currency
       CALENDAR_UNIT_HOUR                 = 3 ,   // number of hours
       CALENDAR_UNIT_JOB                  = 4 ,   // number of jobs
       CALENDAR_UNIT_RIG                  = 5 ,   // number of rigs
       CALENDAR_UNIT_USD                  = 6 ,   // US dollar
       CALENDAR_UNIT_PEOPLE               = 7 ,   // number of people
       CALENDAR_UNIT_MORTGAGE             = 8 ,   // number of mortgages
       CALENDAR_UNIT_VOTE                 = 9 ,   // number of votes
       CALENDAR_UNIT_BARREL               = 10 ,   // number of barrels
       CALENDAR_UNIT_CUBICFEET            = 11 ,   // volume in cubic feet
       CALENDAR_UNIT_POSITION             = 12 ,   // number of job positions
       CALENDAR_UNIT_BUILDING             = 13    // number of buildings
      };
      
    enum ENUM_CALENDAR_EVENT_MULTIPLIER
      {
       CALENDAR_MULTIPLIER_NONE           = 0 ,   // no    
       CALENDAR_MULTIPLIER_THOUSANDS      = 1 ,   // thousands
       CALENDAR_MULTIPLIER_MILLIONS       = 2 ,   // millions
       CALENDAR_MULTIPLIER_BILLIONS       = 3 ,   // billions
       CALENDAR_MULTIPLIER_TRILLIONS      = 4 ,   // trillions
      };
      
    enum ENUM_CALENDAR_EVENT_IMPACRT
      {
       CALENDAR_IMPACT_NA                 = 0 ,   // not available
       CALENDAR_IMPACT_POSITIVE           = 1 ,   // positive
       CALENDAR_IMPACT_NEGATIVE           = 2 ,   // negative
      };
    
    enum ENUM_CALENDAR_EVENT_TIMEMODE
      {
       CALENDAR_TIMEMODE_DATETIME         = 0 ,   // the source publishes the exact time
       CALENDAR_TIMEMODE_DATE             = 1 ,   // the event takes the whole day
       CALENDAR_TIMEMODE_NOTIME           = 2 ,   // the source does not publish the event time
       CALENDAR_TIMEMODE_TENTATIVE        = 3 ,   // the source provides only date, but does not publish the exact time in advance, exact time is added when event occurs
      };

    Nuevos códigos de error

    ERR_CALENDAR_MORE_DATA             = 5400 ,   // the array is small for the whole result (values which fit in the array were passed)
    ERR_CALENDAR_TIMEOUT               = 5401 ,   // timed out waiting for a response to the calendar data request
    ERR_CALENDAR_NO_DATA               = 5402 ,   // data not found

  11. MQL5: correcciones y mejoras en la velocidad de operación relacionadas con el historial de ticks y barras.
  12. MQL5: correcciones y mejoras significativas en la velocidad de operación relacionadas con las funciones de modificación del historial de ticks y barras de los símbolos comerciales personalizados, CustomTicks* y CustomRates* .
  13. MQL5: Nuevas funciones de conversión de datos.

    CharArrayToStruct copia una matriz uchar en una estructura POD.
     bool   CharArrayToStruct(
       void &         struct_object,    // structure
       const uchar &  char_array[],      // array
       uint           start_pos= 0         // starting position in the array
       );
    StructToCharArray copia una estructura POD en una matriz uchar.
     bool   StructToCharArray(
       const void &  struct_object,      // structure
       uchar &       char_array[],      // array
       uint          start_pos= 0         // starting position in the array
       );

  14. Se agregó la función MathSwap para cambiar el orden de bytes en valores ushort, uint y ulong.
     ushort MathSwap( ushort value );
    uint    MathSwap( uint    value );
    ulong   MathSwap( ulong    value );

  15. MQL5: funciones de red agregadas para crear conexiones TCP a hosts remotos a través de sockets del sistema:

    • SocketCreate crea un socket con indicadores específicos y devuelve su identificador
    • SocketClose cierra el socket
    • SocketConnect se conecta al servidor, con control de tiempo de espera
    • SocketIsConnected comprueba si el socket está actualmente conectado
    • SocketIsReadable obtiene la cantidad de bytes que se pueden leer desde el socket
    • SocketIsWritable comprueba si la escritura de datos en este socket es posible en el momento actual
    • SocketTimeouts establece tiempos de espera de recepción y envío de datos para el objeto de socket del sistema
    • SocketRead lee datos de un socket
    • SocketSend escribe datos en un socket
    • SocketTlsHandshake inicia una conexión segura TLS (SSL) con el host especificado utilizando el protocolo TLS Handshake
    • SocketTlsCertificate recibe información sobre el certificado utilizado para la conexión de red segura
    • SocketTlsRead lee datos de una conexión TLS segura
    • SocketTlsReadAvailable lee todos los datos disponibles de una conexión TLS segura
    • SocketTlsSend envía datos mediante una conexión TLS segura

    La dirección del host, al que se establece la conexión mediante funciones de red, debe agregarse explícitamente a la lista de direcciones permitidas en la configuración del terminal.

    Se han añadido nuevos códigos de error para operaciones con funciones de red:

    • ERR_NETSOCKET_INVALIDHANDLE (5270): identificador de socket no válido pasado a la función
    • ERR_NETSOCKET_TOO_MANY_OPENED (5271): demasiados sockets abiertos (máximo 128)
    • ERR_NETSOCKET_CANNOT_CONNECT (5272): error al conectarse al host remoto
    • ERR_NETSOCKET_IO_ERROR (5273): error al enviar/recibir datos del socket
    • ERR_NETSOCKET_HANDSHAKE_FAILED (5274): error de establecimiento de conexión segura (TLS Handshake)
    • ERR_NETSOCKET_NO_CERTIFICATE (5275) — no hay datos sobre el certificado utilizado para la conexión segura

  16. MQL5: Añadidas nuevas funciones para operaciones con cadenas :

    StringReserve reserva para una cadena el búfer de memoria del tamaño especificado.
     bool   StringReserve(
       string &        string_var,           // string
       uint            new_capacity          // buffer size for the string
       );
    StringSetLength establece la longitud de cadena especificada en caracteres.
     bool   StringSetLength(
       string &        string_var,          // string
       uint            new_length           // new string length
       );

  17. MQL5: nueva función agregada para operaciones de matriz :

    ArrayRemove elimina de una matriz el número especificado de elementos que comienzan con el índice especificado.
     bool   ArrayRemove(
       void &         array[],              // array of any type
       uint           start,                // the index to start removal
       uint           count=WHOLE_ARRAY      // number of elements
       );
    ArrayInsert inserta en una matriz de receptores el número especificado de elementos de la matriz de origen, comenzando con el índice especificado.
     bool   ArrayInsert(
       void &         dst_array[],          // receiver array
       const void &   src_array[],          // source array
       uint           dst_start,            // index in the receiver array where to insert
       uint           src_start= 0 ,           // index in the source array to start copying
       uint           count=WHOLE_ARRAY     // number of inserted elements
       );
    ArrayReverse invierte en una matriz el número especificado de elementos que comienzan con el índice especificado.
     bool   ArrayReverse(
       void &         array[],              // array of any type
       uint           start= 0 ,               // index to start reversing
       uint           count=WHOLE_ARRAY      // number of elements
       );

  18. MQL5: Se agregó el nuevo parámetro "uint count" en las funciones CustomRatesUpdate , CustomRatesReplace , CustomTicksAdd y CustomTicksReplace . Permite especificar el número de elementos de la matriz pasada, que se utilizarán para estas funciones. El valor WHOLE_ARRAY se utiliza para el parámetro de forma predeterminada. Significa que se utilizará toda la matriz.
  19. MQL5: Se agregó la función CustomBookAdd para pasar el estado de la profundidad de mercado de un símbolo personalizado. La función permite transmitir la profundidad de mercado como si los precios llegaran del servidor de un bróker.
     int   CustomBookAdd(
       const string         symbol,             // symbol name
       const MqlBookInfo&  books[]             // an array with the DOM elements descriptions
       uint                 count=WHOLE_ARRAY   // number of elements to be used
       );
  20. MQL5: Agregada sobrecarga de la función CustomSymbolCreate . Esto permite la creación de un símbolo comercial personalizado basado en uno existente. Después de la creación, cualquier propiedad del símbolo se puede editar usando las funciones correspondientes.
     bool   CustomSymbolCreate (
       const string         symbol_name,       // custom symbol name
       const string         symbol_path= "" ,    // name of the group in which the symbol will be created
       const string         symbol_origin=NULL // name of the symbol based on which the custom symbol will be created
       );
    El nombre del símbolo del que se deben copiar las propiedades del símbolo personalizado se especifica en el parámetro "symbol_origin".

  21. Se ha actualizado la función StringToTime que convierte la cadena con fecha/hora en un valor de fecha y hora. Ahora es compatible con los siguientes formatos de fecha:

    • aaaa.mm.dd [hh:mi]
    • aaaa.mm.dd [hh:mi:ss]
    • aaaammdd [hh:mi:ss]
    • aaaammdd [hhmiss]
    • aaaa/mm/dd [hh:mi:ss]
    • aaaa-mm-dd [hh:mi:ss]

  22. MQL5: Nueva propiedad TERMINAL_VPS en la enumeración ENUM_TERMINAL_INFO_INTEGER ; muestra que el terminal se está ejecutando en el servidor de alojamiento virtual MetaTrader (MetaTrader VPS). Si una aplicación se ejecuta en un servidor de alojamiento, puede desactivar todas sus funciones visuales, ya que el servidor virtual no tiene una interfaz gráfica de usuario.
  23. MQL5: Nueva propiedad SYMBOL_EXIST en la enumeración ENUM_SYMBOL_INFO_INTEGER , significa que el símbolo bajo este nombre existe.
  24. MQL5: se corrigió la escritura al usar declaraciones previas de funciones de plantilla.
  25. MQL5: Se agregó la reinicialización de indicadores al cambiar una cuenta comercial.
  26. MQL5: función StringSplit optimizada.
  27. MQL5: errores corregidos en la operación de la biblioteca estándar.
  28. Probador: se agregó la función TesterStop : apagado anticipado de rutina de un asesor experto en un agente de prueba. Ahora puede detener la prueba por la fuerza después de alcanzar el número especificado de operaciones perdedoras, un nivel de reducción preestablecido o cualquier otro criterio.

    Las pruebas completadas con esta función se consideran satisfactorias. Después de la llamada a la función, el historial comercial obtenido durante la prueba y todas las estadísticas comerciales se pasan al terminal.

  29. Probador: capacidad deshabilitada para probar y optimizar los asesores expertos a través de MQL5 Cloud Network en el modo de verificación real. Este modo solo se puede usar en agentes locales y granjas de redes locales.
  30. Probador: trabajo mejorado con indicadores durante las pruebas visuales. Ahora el gráfico de precios y las líneas del indicador se dibujan sincrónicamente, incluso para la máxima velocidad de visualización.
  31. Probador: Pruebas y optimización optimizadas y significativamente aceleradas.
  32. Tester: Corregida la depuración de indicadores sobre datos históricos. Ahora las funciones del indicador OnInit y OnDeinit se pueden depurar correctamente.
  33. Probador: se implementó un acceso más rápido a los datos históricos al probar los asesores expertos de varias monedas.
  34. Probador: se corrigió la congelación ocasional del probador visual durante la depuración de datos históricos.
  35. Probador: se implementó un inicio más rápido de los pases de optimización cuando un agente procesa un paquete de tareas.
  36. Probador: se modificó la política de distribución de paquetes de tareas a los agentes de prueba. Se ha aumentado el tamaño del paquete y, por lo tanto, se ha reducido significativamente el consumo de recursos en las operaciones de red.
  37. Probador: se modificó el comportamiento de las opciones que permiten el uso de agentes locales, de red y en la nube. Ahora, cuando desactiva las opciones, los agentes completan el procesamiento de las tareas recibidas, mientras que no se les asignan más tareas nuevas. En versiones anteriores, el comportamiento era similar al comando "Desactivar", que detenía inmediatamente el funcionamiento del agente.




  38. MetaEditor: Se agregó soporte para caracteres que no son ANSI en el depurador. Ahora, las expresiones se muestran correctamente incluso si el nombre de la variable se especifica en cirílico.
  39. MetaEditor: visualización fija de resultados de búsqueda en pantallas de alto DPI.
  40. Se agregó la traducción de la interfaz de usuario al croata.
  41. La documentación ha sido actualizada.
La actualización estará disponible a través del sistema LiveUpdate.

 

Foro sobre el comercio, los sistemas de comercio automatizados y la comprobación de las estrategias comerciales

Paquete R de MetaTrader - el resumen

Sergey Golubev, 2019.02.22 06:47

El estudio principal

----------------

Los artículos

----------------

El Foro

----------------

más a seguir ..


 

Foro sobre trading, sistemas de trading automatizados y prueba de estrategias de trading

Enlaces/hilos/herramientas útiles

Sergey Golubev, 2017.10.05 12:33

Asesores expertos multidivisa en MT5 - backtesting y optimización


Los hilos/posts

  • Comprar o vender los 7 pares - elhilo con la explicación.
  • Multi-Currency Expert Advisorsel post con los ejemplos de backtesting/optimización.

Los artículos

Documentación

  • Ayuda de MetaTrader 5 → Comercio algorítmico, robots comerciales →Tipos de optimización - Todos los símbolos seleccionados en Market Watch
  • Ayuda de MetaTrader 5 → Comercio algorítmico, robots comerciales →Prueba de estrategias - Asesores expertos multidivisa
  • Ayuda de MetaTrader 5 - Plataforma comercial -Manual del usuario

.. y este es el ejemplo del código de CodeBase -

----------------

Multidivisa iMA Trend- experto para MetaTrader 5

The multi-symbol adviser uses the MA Trend 2 adviser as the base advisor, while the advisor itself is rewritten as a class.

Este asesor está en la forma de una clase la primera versión, por lo que, por ahora, los símbolos ("EURUSD", "USDCAD", "USDJPY") se especifican en el código duro. Además, todos los parámetros de entrada son los mismos para cada uno de los tres símbolos (Stop Loss, Take Profit, y así sucesivamente ...).

 

Se publicó un buen artículo -

----------------

Aplicación práctica de las correlaciones en el trading

Aplicación práctica de las correlaciones en el comercio

La correlación es una relación estadística entre dos o más variables aleatorias (o cantidades que pueden considerarse aleatorias con cierto grado de precisión aceptable). Los cambios en una o más variables provocan cambios sistemáticos en otras variables relacionadas. La medida matemática de la correlación de dos variables aleatorias es el coeficiente de correlación. Si un cambio en una variable aleatoria no conduce a un cambio regular en la otra variable aleatoria, pero conduce a un cambio en otra característica estadística de esta variable aleatoria, tal relación no se considera correlación, aunque sea estadística.

Aplicación práctica de las correlaciones en el comercio

 

Foro sobre trading, sistemas de trading automatizados y prueba de estrategias de trading

¿Por dónde empiezo?

Sergey Golubev, 2018.09.20 15:43

Utilice consejos - la instrucción sobre HowTo

=========

----------------

----------------

----------------


 

Hay un hilo en el foro -
Posibilidades de Canvas.
Es un hilo muy útil.
Y esta es una herramienta muy interesante que está totalmente relacionada con este hilo -

----------------

Sistema de ecuaciones algebraicas lineales en cada barra- indicador para MetaTrader 5

This work has 3 goals: 

  • Demostrar el funcionamiento del indicador en dos ventanas a la vez: en la principal y en la subventana. Esto se consigue utilizando la claseiCanvas.
  • Solución compacta de un sistema de ecuaciones algebraicas lineales utilizando la recursión.
  • Demostrar y probar a algunos buscadores el hecho de que el uso de SLAE en el trading algorítmico contiene el potencial de predicción de precios.