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

 
Hola.
No tengo pestañas en la ventana de herramientas de MT-5 - calendario, señales, ¿podría decirme cómo añadirlas?
 
sergey966121:
Hola.
no tengo pestañas en la ventana de herramientas de MT5: calendario, señales, ¿me pueden decir cómo añadirlas?

La configuración en el servidor de comercio es responsable de la pestaña "Calendario". Si no hay ficha, solicite su inclusión al comerciante en el que está abierta la cuenta de operaciones.

Si no existe la pestaña "Señales":

Si no existe la pestaña "Señales" en MetaTrader

Añadido: ¿Es el sistema operativo Windows?

 

¡Hola!

Puedo obtener los valores TP y SL de una posición utilizandoPositionGet...(), pero ¿cómo puedo establecer el takeprofit de toda la posición?

No puedo conseguirlo ahora mismo.

 
Alexander Kharlamov:

¡Hola!

Puedo obtener los valores TP y SL de una posición utilizandoPositionGet...(), pero ¿cómo puedo establecer el takeprofit de toda la posición?

Gracias.

Así, utilizando la biblioteca estándar y la clase CTrade:

#include <Trade\Trade.mqh>
Ctrade my_trade
...
my_trade.Buy(...
//или
my_trade.Sell(...
//или
my_trade.PositionModify(...
 
Karputov Vladimir:

Así, utilizando la biblioteca estándar y la clase CTrade:

Gracias.
 
Alexander Kharlamov:
Gracias.
De nada. El uso de la biblioteca estándar hace que la programación sea muy fácil.
 
Alexander Kharlamov:
Gracias.

Aquí hay un ejemplo de un script (PositionModify(SL).mq5) - primero abre una posición, y luego cambia el stop loss de esta posición:

//+------------------------------------------------------------------+
//|                                           PositionModify(SL).mq5 |
//|                              Copyright © 2016, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2016, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.00"
#include <Trade\Trade.mqh>
//--- variable
CTrade   my_trade;         // object CTrade
int      my_stop_loss=30;  // stop level
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   my_trade.Buy(0.01);
   Sleep(6000);

   double m_adjusted_point;         // point value adjusted for 3 or 5 points
//--- tuning for 3 or 5 digits
   int digits_adjust=1;
   if(Digits()==3 || Digits()==5)
      digits_adjust=10;
   m_adjusted_point=Point()*digits_adjust;

   double m_stop_loss=my_stop_loss*m_adjusted_point;

   MqlTick m_tick;
   SymbolInfoTick(Symbol(),m_tick);

   double sl=NormalizeDouble(m_tick.bid-m_stop_loss,Digits());
   my_trade.PositionModify(Symbol(),sl,0);
  }

Restricción de uso: sólo funcionará correctamente en las cuentas de compensación.

Archivos adjuntos:
 

Conseguí fijar el TP para la posición, gracias.

Me pregunto si es posible utilizar MQL5 para rastrear el evento - TP desencadenado? ¿O es necesario comprobar el estado de la posición?

 
Alexander Kharlamov:

Conseguí fijar el TP para la posición, gracias.

Me pregunto si es posible utilizar MQL5 para rastrear el evento - TP desencadenado? ¿O es necesario comprobar el estado de la posición?

Por supuesto que sí, la posición le informará sobre el evento - es sólo una entidad (un registro en la base de datos + algo más) en el servidor de la empresa de corretaje.
 

Todavía no lo he tratado por falta de practicidad, pero ¿los eventos OnTrade y OnTradeTransaction no trazarán el cierre de posiciones por toma?

Trade

El evento decomercio se genera cuando se completa una operación de comercio en el servidor de comercio. La función OnTrade( ) gestiona el evento Trade para las siguientes operaciones comerciales

  • fijación, modificación o supresión de una orden pendiente;
  • cancelar una orden pendiente en caso de insuficiencia de fondos o al expirar;
  • activación de una orden pendiente;
  • apertura, adición o cierre de una posición (o de una parte de una posición);
  • modificación de una posición abierta (cambio de topes).

TradeTransaction

Como resultado de ciertas acciones realizadas en una cuenta comercial, su estado cambia. Estas acciones incluyen:

  • Envío de una solicitud de comercio por cualquier aplicación MQL5 en el terminal del cliente utilizando las funciones OrderSend y OrderSendAsync y su posterior ejecución;
  • Envío de una solicitud de negociación a través de la interfaz gráfica del terminal y su posterior ejecución;
  • Lanzamiento de órdenes pendientes y de stop en el servidor;
  • Ejecución de operaciones en el lado del servidor comercial.

Como resultado de estas acciones, se realizan operaciones comerciales para la cuenta:

  • tramitación de una solicitud de comercio;
  • modificación de las órdenes abiertas;
  • Modificación del historial de pedidos;
  • Cambiar la historia de los acuerdos;
  • Cambiando de posición.

Por ejemplo, cuando se envía una orden de compra a mercado, se procesa, se crea una orden de compra apropiada para la cuenta, se ejecuta la orden, se elimina de la lista de órdenes abiertas, se añade al historial de órdenes, y luego se añade la operación correspondiente al historial y se crea una nueva posición. Todas estas acciones son transacciones comerciales. La llegada de cada una de estas transacciones al terminal es el evento TradeTransaction. Este evento es manejado por la función OnTradeTransaction.


Razón de la queja: