English Русский 中文 Deutsch 日本語 Português
Kit del Trader: Librería  del trade de arraste

Kit del Trader: Librería del trade de arraste

MetaTrader 4Ejemplos | 21 septiembre 2015, 12:54
799 0
TheXpert
TheXpert

Introducción

En el momento del desarrollo, ya existían algunos productos que en cierta medida implementan la funcionalidad proporcionada por la libreria o tenía características similares. No puedo decir si la librería es mejor o peor que aquellos. En alguno de ellos se pierden funcionalidades, por ejemplo el conocido Autógrafo y en otros - en comodidad. Sin embargo La librería de Trade de Arrastre tiene sus particularidades y el producto se espera que sea en demanda.


1. Propósito del Desarrollo

Fue planeado inicialmente para crear un Asesor Experto para operar y manejar órdenes directamente en una gráfica usando el ratón y el control de objetos manteniendo la facilidad de uso y una interfaz minimalista. Dicho esto, una característica importante del EA fue el hecho de que fue desarrollado totalmente en el idioma original del terminal, por lo tanto sera seguro para los usuarios ya que no puede contener código malicioso. Además, el EA fue pensado originalmente para ser software libre.

El proyecto dio lugar a la librería que combina las características anteriores y podría integrarse fácilmente en prácticamente cualquier EA. Además, el código de la librería contiene muchas funciones útiles que pueden ser utilizadas fuera del marco de la librería.


2. Estructura

La funcionalidad de la librerís se puede dividirse en cuatro bloques:

  1. Bloque del Trading
  2. Bloque de información
  3. Bloque del control de ordenes
  4. Bloque de configuración


Fig. 1. Funcionalidad de la librería

La Funcionalidad del EA se muestra basadose en el mismo principio de división del bloque - la interfaz de usuario se divide en 3 bloques independientes que pueden utilizarse conjuntamente y de manera independiente al activar y desactivar los bloques requeridos que sean necesarios durante la operación. Por otra parte, este enfoque permite ahorrar recursos conseguiendo perdidos durante la elaboración de bloques lógicos innecesarios o incluso utilizar recursos mínimos cuando las funcionalidades de los bloques están deshabilitadas. Todos las funciones de los bloques están deshabilitados por defecto.


2.1. Principios de la activación y desactivación de los bloques

Todas las funcionalidades del bloque trazadas y procesas se encuentran en el Asesor Experto. Sin embargo la información y más objetos de información y control no se trazan en la ventana de herramientas principal. El espacio de dibujo es proporcionado por pseudoindicators que también sirven para activar y desactivar las funcionalidades de los bloques. Esto significa que si un determinado indicador está presente en la gráfica, las respectivas funciones del bloque del EA se habilitan y operan.

Como tal no se utilizan los indicadores. Su único propósito es proporcionar el espacio del trazo.


Fig 2. Indicadores auxiliares

Existen algunas limitaciones en el uso de indicadores. Cualquier indicador externos puede ser arrastrados al una ventana del pseudoindicator, pero no al revés como se determinó la presencia de una ventana con el nombre de pseudoindicator y las funciones respectivas del bloque simplemente no se conseguen habilitar.


3. Interfaz de usuario

3.1. Configuración del Asesor Experto

Los ajustes fueron tomados de la librería para formar una funcionalidad del bloque separada. Esto nos permitió realmente singularizar y colocar la funcionalidad completa en la librería y realizar a ajustes externamente antes y durante la operación del Asesor Experto. Además, la configuración puede dividirse en bloques lógicos separados, sin escatimar en especificaciones.

El proceso en sí consiste en aplicar el script correspondiente en el gráfico requerido.

Por el momento, hay 3 secuencias de comandos de configuración:

  • DragTrade_CommentsSettings.mq4 – ajustes de observaciones (registros mostrados en la subventana de comercio).
  • DragTrade_ObjectsSettings.mq4 – configuración de la interfaz de usuario general - de objetos de información y control..
  • DragTrade_TradeSettings.mq4 – librería de configuración del trading.

El script proporciona una descripción de cada propiedad por lo que no debería haber ningún problema en averiguar cómo se establecen.

La implementación de esta característica se basa en el uso de variables globales del terminal para almacenar la configuración. Esto impone algunas limitaciones en su uso - las líneas no puede pasar de esta manera ya que el tamaño máximo de información es limitado y es igual a la del tipo doble, es decir, 8 bytes.

A continuación se muestra un ejemplo de configuración de las propiedades de Asesor Experto. Los ajustes del comentario y del objeto de salida se cambian por un Asesor Experto ejecutandose:

Para poder probar libremente estrategias en el probador sin tener miedo de reajustar o cambiar los parámetros para el trading en línea, el parámetro diferente si se pasa por online o por modo de prueba. Ajustando en el los parámetros no afectará en el otro.

Por lo tanto, si desea cambiar los parámetros por defecto en el medidor, debe usar los scripts similares para el modo de prueba:

  • DragTrade_TesterCommentsSettings.mq4 – configuración de comentario (registros mostrados en la subventana de comercio).
  • DragTrade_TesterObjectsSettings.mq4 – configuración de la interfaz de usuario general - de objetos de información y control.
  • DragTrade_TesterTradeSettings.mq4 – librería de configuración del trading.
3.2. Funcionalidad

Por lo tanto, la interfaz está dividida en 3 zonas independientes que pueden ser desactivadas:

  • DragTrade_Infobar (Bloque de información))
  • DragTrade_OrdersBar (Bloque de control de orden)
  • DragTrade_Toolbar (Bloque del Trading)

En su conjunto se ve así:


Echemos un vistazo más detallado a cada uno de ellos.

3.2.1. Panel de información

El panel de información es un área de visualización de la información. Esta es la parte más sencilla de la funcionalidad. Muestra información general de la cuenta o del instrumento así como la configuración actual de la librería.

Fig. 3. Panel de información

La información para su presentación se puede ampliar fácilmente pero sin embargo requieren modificaciones de código de la librería.

Si no está sorpredido, la funcionalidad está representada por las siguientes funciones: void ClearInformation() y void DrawInformation()

3.2.2. Panel de ordenes

Este panel muestra información sobre órdenes actuales (abiertas) de los instrumento y contiene controles para manipularlos.

Fig 4. Panel de ordenes

Qué puede hacer habilitando este panel:

  • cerca de cualquier orden de la lista de órdenes para un cierto par de divisas (en lo sucesivo de acuerdo con la configuración de número mágico EA), incluyendo órdenes de mercado y pendientes.
  • cerrar todas las órdenes de compra
  • cerrar todas las órdenes de venta
  • eliminar todas las órdenes pendientes
  • eliminar y cerrar todas las órdenes

El siguiente video ofrece una demostración gráfica de la funcionalidad de este panel:

3.2.3. Panel de Trading

Este panel se utiliza para mostrar la funcionalidad de trading. Es el grupo más importante y necesario ya que contiene la funcionalidad principal de la librería. Conseguir este panel activo te da la oportunidad de hacer pedidos y manejar a través de algunos controles directamente en el gráfico.


Fig. 5. Panel de Trading

Qué puede hacer habilitando este panel:

  • Coloque y cierre de órdenes de mercado.
  • Abrir órdenes pendientes, tanto stops como límites. Puesto que todavía no he encontrado una buena y suficiente forma de establecer niveles de stop de órdenes pendientes, que actualmente faltan y sólo se pueden definir mediante las características del terminal integradas (es decir ventana de modificación de órdenes).
  • Borrar órdenes pendientes
  • Cambio de niveles de stop de las órdenes.
  • Cambiar el precio de activación de las órdenes de stop y de límite.

Las órdenes de mercado se colocan como sigue:

  • fijar el precio de stop loss de la futura orden mediante el puntero del precio
  • superponer los controles para la "Orden de mercado abierta"

Una orden de mercado se cierra simplemente arrastrando cualquiera de los niveles de stop al otro lado del precio.

El video de abajo muestra ejemplos de órdenes de mercado

Manejo de órdenes de compra:




Manejo de órdenes de venta:




Órdenes pendientes se colocan como sigue:

  • establecer el precio de activación de la orden futura mediante el puntero de precio
  • superponer los controles por "orden de stop abierta" Si usted quiere poner una orden de stop o por "Orden de límite abierta" si usted quiere poner una orden limitada.

Una orden pendiente es cerrada simplemente arrastrando la línea de orden al otro lado del precio.

El video de abajo muestra ejemplos de manejo de órdenes pendientes.

Manejo de órdenes de stop:




Manejo de órdenes de límite:



4. Integración en el Asesor Experto

Y por último, la parte más interesante.

De hecho es muy simple. El proceso de integración se simplifica considerablemente debido a que sólo el mínimo necesario de configuración se pasa a la librería durante la integración; los valores restantes están cubiertos por scripts externos.

El ejemplo más simple de un Asesor Experto se puede demostrar envolviendo en un caparazón a la librería dentro del EA. Aparecerá como sigue:

//+------------------------------------------------------------------+
//|                                      DragTrade_Example_v_1.0.mq4 |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, TheXpert"
#property link      "theforexpert@gmail.com"

extern int      Magic          = 1111;
extern int      EAMagic        = 1234;
extern int      TimesToRepeat  = 3;
extern int      Slippage       = 3;

#include <DragTrade_v_1.0/DragTradeLib_v_1.0.mqh>

bool Testing;

int init()
{
   Testing = IsTesting();
   DragTrade_Init(Magic, EAMagic, TimesToRepeat, Slippage, "Drag Trade Example");

   Comment_("Prueba ejemplo de uso de librería de trazado de trade");

   return(0);
}

int deinit()
{
   DragTrade_Deinit();
   return(0);
}

int start()
{
   DragTrade_Start();
   
   return(0);
}

El código anterior puede ser aplicado como una lista para usar el EA en el trade con el ratón.

Los eventos en este código se tratan con cada nuevo tick.

Los puntos de integración principal de la librería:

  • Las funciones init y deinit son esenciales y necesarias en el asesor experto.
  • Incluir el fichero cabeza de librería DragTradeLib_v_1.mqh y asegúrese de que los componentes de la librería están todos en los lugares apropiados.
  • Se llamarán a las siguientes funciones de la librería, en las funciones correspondientes del EA:
  1. DragTrade_Init
  2. DragTrade_Deinit
  3. DragTrade_Start

The DragTrade_Init la función es la siguiente:

   void DragTrade_Init(int magic, int eaMagic, int timesToRepeat, int slippage, string ordersComment = "");

Vamos a tener una vista detallada de los parámetros que deben pasarse:

  • int magic – el número mágico es utilizado por la librería. Las órdenes realizadas mediante la librería dará este número. Si el valor es igual a -1, las órdenes se abrirán con el número mágico 0 y la opción de filtrado por la cifra mágica no estará disponible durante la visualización.
  • int eaMagic – el número mágico de la estrategia.. Se introduce para que las órdenes se coloquen automáticamente y manualmente se distinguen por la estrategia implementada. Si desea que la estrategia sea capaz de "ver" estas órdenes, puede establecer idénticos números mágicos o implementar trazabilidad de dos diferentes números mágicos. Si el valor es -1, el número mágico adicional no se utilizará.
  • int timesToRepeat – parámetro de trading. El número de intentos para hacer un pedido si la causa del error permite para reintentar inmediatamente.
  • int slippage – parámetro de trading. Deslizamiento.
  • string ordersComment – el comentario de las órdenes a través de la librería.

Si desea una rápida ejecución de comandos, función Inicio del EA se puede colocar:

int start()
{
   while (!IsStopped())
   {
      DragTrade_Start();
      Sleep(200);
   }
   return(0);
}

Sin embargo será imposible probar el EA en el probador - se congelará.

Puede encontrar una solución haciendo una provisión para un comportamiento diferente del probador:

int start()
{
   if (Testing)
   {
      DragTrade_Start();
   }
   else
   {
      while (!IsStopped())
      {
         RefreshRates();
         
         DragTrade_Start();
         Sleep(200);
      }
   }
   
   return(0);
}

El paquete estándar que se adjunta al artículo contiene este particular EA más simple.

Además, el paquete incluye un asesor experto estandar MACD muestra que cuenta con la librería integrada y la librería de funciones de trading.

Aparte de las funciones necesarias para la integración, el archivo DragTradeLib_v_1.0.mqh proporciona un conjunto de funciones que pueden ser útiles en la implementación de estrategias que se utilizan en la librería y pueden utilizarse para implementar el código de comercio.


5. Instalación de la librería

La instalación es simple: necesitas descomprimir el archivo adjunto en la carpeta terminal, reiniciar el terminal si estaba trabajando, para que los archivos ejecutables aparezcan en la lista de ficheros disponibles en el terminal.


6. Licencia de

/* =============================================================================================== */
/* Copyright (c) 2010 Andrey Nikolaevich Trukhanovich (aka TheXpert)                               */
/*                                                                                                 */
/* Por la presente se autoriza, de forma gratuita, a cualquier persona obtener una copia de este   */
/* software y archivos de documentación (el "Software")                                            */
/* en el Software sin restricción, incluyendo sin limitación los derechos                          */
/* para utilizar, copiar, modificar, fusionar, publicar, distribuir,                               */
/* sublicenciar, y/o vender copias del Software y permitir personas                                */
/* para que el Software está equipado para ello, conforme a las siguientes condiciones:            */
/*                                                                                                 */
/*                                                                                                 */
/* El aviso de copyright y este aviso de permiso serán incluidos                                   */
/*  en todas las copias o sustancial porciones del Software.                                       */
/*                                                                                                 */
/* ESTE SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA                   */
/* O IMPLÍCITA, INCLUYENDO PERO NO LIMITADAS A, LAS GARANTÍAS DE COMERCIABILIDAD,                  */
/* APTITUD PARA UN PROPÓSITO PARTICULAR Y NO INFRACCIÓN. EN NINGÚN CASO, LOS AUTORES O             */
/* LOS TITULARES DEL COPYRIGHT SERÁN RESPONSABLES DE CUALQUIER RECLAMACIÓN, DAÑOS U OTROS          */
/* RESPONSABILIDADES, YA SEA EN UNA ACCIÓN DE RESPONSABILIDAD CONTRACTUAL,                         */
/* EXTRACONTRACTUAL O DE OTRO TIPO, QUE SE PRESENTA, DE O                                          */
/* EN RELACIÓN CON EL SOFTWARE O EL USO DE OTRAS RELACIONES EN EL SOFTWARE.                        */
/* =============================================================================================== */

Conclusión

La librería fue probada mientras trabajaba con una cuenta real y demostró ser una herramienta útil, fiable y estable.

Una vez más, quisiera expresar mi profundo agradecimiento a Viktor Khabibulaevich Rustamov. Fue el creador de la idea de crear la librería, así como un tester y una fuente valiosa de asesoramiento en la implementación de la idea.

Hay un buen montón de código con tantos pequeños errores y fallos que están muy probablemente presentes. Realmente apreciaría si usted me lo hace saber.

Y voy a tratar de hacer el mantenimiento de código (no garantizado) factible. Otros progresos del proyecto en los términos de la licencia por otras personas tendrán todo mi apoyo. Todos los comentarios y sugerencias con respecto a la librería se tendrán en cuenta en la medida posibles en futuras versiones.

¡Que tengan un trade fácil y buena suerte!


Traducción del ruso hecha por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/ru/articles/1354

Archivos adjuntos |
MetaTrader 4 en Mac OS MetaTrader 4 en Mac OS
Los productos de Apple se han convertido en muy populares. MetaQuotes Software Corp. siguiendo atentamente el progreso de la industria TI ya se han publicado las aplicaciones especiales móviles para dispositivos basados en iOS - MetaTrader 4 para iPhone y MetaTrader 5 para iPhone. Hay muchos temas en el foro de MQL4.community, donde la gente está buscando una solución para el funcionamiento de MetaTrader 4 bajo sistema operativo Mac OS. En este artículo, usted encontrará la manera de trabajar en MetaTrader 4 a través del popular sistema operativo de Apple.
Programamos los modos de funcionamiento del Asesor Experto usando la programación orientada a objetos Programamos los modos de funcionamiento del Asesor Experto usando la programación orientada a objetos
En este artículo se considera la idea de la programación multi-modo de los robots comerciales usando el lenguaje MQL5. Se utiliza el enfoque orientado a objetos para la implementación de cada uno de los modos. Se muestra el ejemplo de la jerarquía de las clases de régimen y el ejemplo de las clases para el testeo (prueba). Se supone que la programación multi-modo de los robots comerciales toma en consideración las particularidades de cada modo de trabajo del Asesor Experto MQL5. Para la identificación de los modos se crean las funciones y enumeraciones.
Dibujo de indicadores de aguja usando la clase CCanvas Dibujo de indicadores de aguja usando la clase CCanvas
Los instrumentos indicadores de esfera nos rodean por todas partes: en los coches y aviones, en la industria y en nuestra vida cotidiana. Se aplican cuando se requiere una rápida reacción al valor controlado por parte del operador. En este artículo conoceremos la biblioteca de instrumentos indicadores para MetaTrader 5.
Recetas MQL5 - órdenes ОСО Recetas MQL5 - órdenes ОСО
En el comercio, el trader usa diferentes mecanismos e interacciones, también entre órdenes. En este artículo se propone una solución para procesar las órdenes OCO. Además, implica las clases de la Biblioteca Estándar, y también se crean los nuevos tipos de datos.