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

 

¡Hola!

Abro una posición y quiero imprimir el contenido de MqlTradeResult así:


   //--- declare and initialize the trade request and result of trade request
        MqlTradeRequest request={0};
        MqlTradeResult  result={0};
        //--- parameters of request
        request.action   = TRADE_ACTION_DEAL;    // type of trade operation
        request.symbol   = Pair1;                // symbol
        request.volume   = lots;                 // volume of lot
        request.type     = oper;                 // order type
        request.price    = priceOpen;            // price for opening
        request.deviation= Slippage;             // allowed deviation from the price
        request.magic    = magic;   
 //============================================================     
        if(OrderSend(request,result))       
        Print ("result.retcode = " + result.retcode + "; ");        
        Print ("deal = " + result.deal + "; ");
        Print ("order = " + result.order + "; "); 
        Print ("volume = " + result.volume + "; ");  
        Print ("price = " + result.price + "; ");

result.retcode, se imprimen el pedido y el volumen, pero el trato y el precio son siempre ceros.
¿Podría decirme qué estoy haciendo mal?

 
Algotrader18:

¡Hola!

Abro una posición y quiero imprimir el contenido de MqlTradeResult así:


result.retcode, se imprimen el pedido y el volumen, pero el trato y el precio son siempre ceros.
Por favor, ¿qué estoy haciendo mal?

ArtículoPor dónde empezar a crear un robot de trading para la Bolsa de Moscú MOEX. Un ejemplo de listener "TradeTransactionListener":

Operar con robots es sencillo

El lenguaje MQL5 soporta inicialmente todas las características comerciales de la plataforma MetaTrader 5, proporcionando un gran númerode funciones comerciales para trabajar con órdenes, posiciones y solicitudes de negociación. No importa en qué mercado opere: futuros, acciones, opciones, etc.

Con las herramientas MQL5 se puede crearuna solicitud de operación y enviarla al servidor mediante las funcionesOrderSend() oOrderSendAsync(), obtenerel resultado de su ejecución, ver el historial de operaciones, conocerla especificación del contrato de un instrumento, procesarel evento de la operación y obtener mucha otra información necesaria.

Es importante que los desarrolladores de robots comerciales comprendan un hecho esencial: cada operación comercial, ya sea la apertura de una posición, el establecimiento de StopLoss o TakeProfit, o el cierre de una posición con una contraoperación, siempre consiste en una serie de transacciones realizadas en el servidor de MetaTrader 5 y en la Bolsa de Moscú. Para ver cómo sucede esto, puede ejecutar el Asesor ExpertoTradeTransactionListener.mql5 en su cuenta que simplemente escucha los eventosTradeTransaction y muestra un resumen de ellos:

//+------------------------------------------------------------------+
//|                                     TradeTransactionListener.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+


 
¿Alguien se ha encontrado con un problema, no puede iniciar sesión en mt5, problema - certificado no válido?
 
Impulsive87:
¿Alguien se ha encontrado con un problema, no puede iniciar sesión en mt5, problema - certificado no válido?
¿Es Windows real (no un emulador por casualidad)? ¿Se conecta con el corredor que emitió el certificado o con una empresa de corretaje normal?
 

¿Cuáles son las condiciones para que las pruebas continúen con el mismo caché en el \Tester\cache, no para crear una nueva tabla de optimización, sino para ser actualizado?

1 un archivo EA compilado sin cambios ex5

2 condiciones de prueba no cambiarían (excepto el equilibrio o el equilibrio + la rentabilidad).

3 ?

 
Impulsive87:
No puedo entrar en mt5, ¿el problema es el certificado no válido?
Me encontré con este problema hace mucho tiempo, compruebe en el almacén de certificados y en la carpeta del programa el certificado correcto
 
Vladimir Karputov:

ArtículoPor dónde empezar a crear un robot de trading para la Bolsa de Moscú MOEX. Ejemplo de un listener de TradeTransactionListener:

Gracias, pero no es exactamente lo mismo - funciona con el historial, necesito obtener los datos de MqlTradeResult inmediatamente después de la apertura de la posición. Es extraño, sale algunos parámetros pero no otros, es decir, hago algo mal. Me gustaría llegar al fondo de esta situación particular...
 
Algotrader18:

¡Hola!

Abro una posición y quiero imprimir el contenido de MqlTradeResult así:


result.retcode, se imprimen el pedido y el volumen, pero el trato y el precio son siempre ceros.
¿Podría decirme qué estoy haciendo mal?

Intente llamar antes de imprimir

//+------------------------------------------------------------------+
//| Get the result structure                                         |
//+------------------------------------------------------------------+
void CTrade::Result(MqlTradeResult &result) const
  {
   result.retcode   =m_result.retcode;
   result.deal      =m_result.deal;
   result.order     =m_result.order;
   result.volume    =m_result.volume;
   result.price     =m_result.price;
   result.bid       =m_result.bid;
   result.ask       =m_result.ask;
   result.comment   =m_result.comment;
   result.request_id=m_result.request_id;
   result.retcode_external=m_result.retcode_external;
  }
de la clase CTrade
 
Alexey Viktorov:

Intenta llamar a

de la clase CTrade
Gracias, me gustaría hacerlo sin CTrade.
 
Algotrader18:
Gracias, me gustaría hacerlo sin CTrade.

Así que saca la funcionalidad necesaria de la clase y escríbela tú mismo.

Razón de la queja: