TradingBoxing: Tu Asesor Experto para MetaTrader 5

Mike 2018.06.18 22:58 12 0 0
Archivos adjuntos

En el desarrollo de TradingBoxing, nos inspiramos en el código de TradingBoxing. Sin embargo, el código que te mostramos a continuación se basa únicamente en la idea original, ya que toda la implementación está en MQL5 y utiliza nuevas clases de trading.

El panel de trading cuenta con un único parámetro de entrada: el número mágico, que es el identificador único para el EA.

A continuación, te presentamos la apariencia del panel de trading:

TradingBoxing

Para mostrar los volúmenes (tanto para las posiciones como para las órdenes pendientes), se modificó ligeramente la clase estándar CSpinEdit y se guardó como CSpinEditDouble. Lamentablemente, no pudimos crearla mediante herencia, ya que tuvimos que modificar los miembros de la clase declarados como "privados".

Como puedes deducir por el nombre de la clase, fue creada para mostrar datos de tipo doble. Por lo tanto, añadimos el método DisplayedDigits, que define la precisión de visualización del texto en el control.

El campo de texto en este control también es editable, lo cual puede ser muy útil cuando necesitas ingresar un precio o un volumen que difiere bastante del valor que aparece en el campo de texto. Para que el texto del campo de texto se guarde como un valor, se añadió el método EndEdit a la clase CSpinEditDouble:

   int               m_digits;              // dígitos mostrados
   //---
   void              EndEdit() { Value(StringToDouble(Text())); }

public:
                     CSpinEditDouble(void);

Este método memoriza el texto ingresado como un valor.


El método EndEdit se llama desde la clase CSpinEditDouble en OnEvent:

//+------------------------------------------------------------------+
//| Manejador común de eventos del gráfico                                   |
//+------------------------------------------------------------------+
EVENT_MAP_BEGIN(CSpinEditDouble)
  ON_EVENT(ON_CLICK,m_inc,OnClickInc)
  ON_EVENT(ON_CLICK,m_dec,OnClickDec)
  ON_EVENT(ON_END_EDIT,m_edit,EndEdit)
EVENT_MAP_END(CWndContainer)

Para que las órdenes de trading se procesen lo más rápido posible (incluso en un mercado muy tranquilo donde los ticks llegan a grandes intervalos), cada clic en el botón del panel de trading llamará forzosamente al manejador interno CTradingBoxingDialog::OnTick().

Lista
Comentarios 0