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

 
Artyom Trishkin:

Ver las operaciones pertenecientes a la posición y ver su volumen.

Sólo hay que desanclar todas las operaciones de posición encontradas (las propiedades de cada una) y averiguar lo que hay que encontrar allí.

Gracias.

 

Necesito ayuda para crear un archivo, en particular, especificando la ubicación correcta para su almacenamiento.

Uso la versión portable de MT5 y necesito que el archivo se cree en la carpeta MT5\MQL5\Files, pero se crea en MT5\Tester/Agent-127.0.0.1-3000\MQL5\Files durante la inicialización en el Probador de Estrategias.

   filename = (Dir=="" ? filename : Dir+"\\"+filename)+".csv";
   handle= Common ? FileOpen(filename,FILE_CSV|FILE_COMMON|FILE_READ|FILE_WRITE|FILE_SHARE_READ) :
                        FileOpen(filename,FILE_CSV|FILE_READ|FILE_WRITE|FILE_SHARE_READ);
 
Aleksey Vyazmikin:

Necesito ayuda para crear un archivo, en particular, especificando la ubicación correcta para su almacenamiento.

Uso la versión portable de MT5 y necesito que el archivo se cree en la carpeta MT5\MQL5\Files durante la inicialización en el Probador de Estrategias, pero se crea en MT5\Tester/Agent-127.0.0.1-3000\MQL5\Files.

No hay solución en el MQL puro. Tienes que usar WinAPI. O a mano))

La forma en que se distribuyen los archivos se hizo especialmente por razones de seguridad.

 
Ihor Herasko:

No hay solución en el MQL puro. Sólo mediante el uso de WinAPI. O a mano))

Esta distribución de archivos se hizo por razones de seguridad.

El optimizador almacena los datos no en la carpeta de agentes, sino en la carpetaMT5\MQL5\Files - no es lógico.

 
if(crossed==1)
     {
      double sl=(InpStopLoss==0)?0.0:m_symbol.Bid()+ExtStopLoss;
      double tp=(InpTakeProfit==0)?0.0:m_symbol.Bid()-ExtTakeProfit;
      m_trade.Sell(InpLots,m_symbol.Name(),m_symbol.Bid(),
                   m_symbol.NormalizePrice(sl),
                   m_symbol.NormalizePrice(tp));
      datetime time=TimeCurrent();
      for(int i=0;i<4;i++)
        {

¿Cómo puedo establecer un número mágico diferente a la orden que se va a realizar en este código? Diferente de este genérico -

int OnInit()
//---
   m_trade.SetExpertMagicNumber(m_magic);
//---
 
ilyav:

¿Cómo puedo establecer un número mágico diferente a la orden que se va a realizar en este código? Diferente de este genérico -

Antes de enviar una orden de apertura con un mago diferente, ejecute esta línea con el mago deseado. A continuación, devuelve el mago a su lugar.
 
Por favor, aconseje cómo hacer una función para establecer el número de órdenes requerido! por ejemplo, para abrir un número específico de órdenes sin más. en mql4
 
Este es el último parámetro de la función OrderSend en MQL-4:

arrow_color=clrNONE[in] El color de la flecha de apertura en el gráfico. Si CLR_NONE - no hay flecha. En MT5, la flecha siempre se muestra - no hay ningún parámetro correspondiente en la estructura MqlTradeRequest. ¿Cómo lo afronta? Es fácil hacerlo en su gráfico. Sin embargo, si se abre otro gráfico para el símbolo, hay que volver a intentarlo...


 
Лауреат:
Por favor, aconsejen cómo hacer una función que establezca el número correcto de órdenes. Por ejemplo, quiero que abra las órdenes que hemos especificado pero no más que eso. en mql4
if(OrdersTotal() < OrdersMax) OrderSend(...); else Alert("Se ha abierto el número requerido de órdenes");
 
Artyom Trishkin:
Antes de enviar una orden de apertura con otro mago, ejecute esta línea con el mago deseado. A continuación, devuelve el mago a su lugar.


if(crossed==1)
     {
      m_trade.SetExpertMagicNumber(m_magic2); // меняем мэджик на новый
      double sl=(InpStopLoss==0)?0.0:m_symbol.Bid()+ExtStopLoss;
      double tp=(InpTakeProfit==0)?0.0:m_symbol.Bid()-ExtTakeProfit;
      m_trade.Sell(InpLots,m_symbol.Name(),m_symbol.Bid(),
                   m_symbol.NormalizePrice(sl),
                   m_symbol.NormalizePrice(tp));
      m_trade.SetExpertMagicNumber(m_magic);  // меняем мэджик на оригинал
      datetime time=TimeCurrent();
      for(int i=0;i<4;i++)
        {
¿Es eso correcto? Gracias