Errores, fallos, preguntas - página 1815

 
Error de compilación
template<typename T>
class A { public:
    A( const T * ) {} //Error: 'T' - unexpected token
};
class B {};
void OnStart()
{
    A<const B> a( new B );
}
 

Hola, me está pasando lo siguiente en mi cuenta demo en Otkritie

sucede lo siguiente: si modifico y borro con éxito un pedido

de tipo ORDER_FILLING_RETURN(una orden regular a límite de recorrido)

el volumen variable de la estructuraMqlTradeResult es establemente igual al tamaño de la orden inicial (en este caso, la orden no ha sido ejecutada en absoluto).

Parece ser que debería dar un volumen ejecutado (0 en mi caso), ¿o me equivoco?

 
Sergey Kudryavtsev:

Creo que debería dar un volumen ejecutado (0 en mi caso) o estoy equivocado?

Este era el caso originalmente

Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias

Bibliotecas: MT4Orders

fxsaber, 2017.02.10 12:01

Resultado del guión
OrderSend(NULL,OP_BUYLIMIT,1,Ask-100*Point,100,0,0,My Order)
Request.action = TRADE_ACTION_PENDING (5)
Request.magic = 0
Request.order = 0
Request.symbol = EURUSD
Request.volume = 1.0
Request.price = 1.06356
Request.stoplimit = 0.0
Request.sl = 0.0
Request.tp = 0.0
Request.deviation = 100
Request.type = ORDER_TYPE_BUY_LIMIT (2)
Request.type_filling = ORDER_FILLING_IOC (1)
Request.type_time = ORDER_TIME_GTC (0)
Request.expiration = 1970.01.01 00:00:00
Request.comment = My Order
Request.position = 0
Request.position_by = 0
Result.retcode = 10009
Result.deal = 0
Result.order = 57777
Result.volume = 1.0
Result.price = 1.06356
Result.bid = 0.0
Result.ask = 0.0
Result.comment = My Order
Result.request_id = 592
Result.retcode_external = 0
Ahora es fácil entender cómo formar correctamente las solicitudes de comercio pertinentes en MT5.
 
fxsaber:
Fue así desde el principio.
Gracias.
 
Una búsqueda de "MqlTradeResult " no puede producir un enlace a la descripción en la Ayuda.
 

Durante la ejecución de OrderSend, no es posible salir del modo de depuración o eliminar el EA/script.

A veces OrderSend se ejecuta durante 180 segundos, con Request timeout. Hay que esperar tres minutos para poder compilar en el editor, si el script se estaba ejecutando en modo de depuración.

 

Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading

Bichos, errores, preguntas

fxsaber, 2017.02.16 07:55

2017.02.16 08:53:03.158 Network '2250': disconnected from FXOpen-MT5
2017.02.16 08:53:03.285 MQL5    wrong type, loading of Test failed
2017.02.16 08:53:03.813 Network '5122740': authorized on MetaQuotes-Demo through Access Point EU Amsterdam (ping: 50.93 ms)

¿Qué es?

No se está ejecutando nada en el único gráfico. Cada vez que cambio de cuenta aparece este mensaje.

Se han eliminado todos los archivos Test.ex*. El mensaje sigue apareciendo.
 

Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading

Un caché loco de agentes de prueba

Renat Fatkhullin, 2017.02.21 04:04

Pruebe la nueva compilación del viernes de MT5 1545 - algo se ha mejorado.

También hay que tener en cuenta que tenemos más de 230.000 cuentas permanentemente activas en MetaQuotes-Demo MT5 y es una auténtica bacanal de trading.

Creo que la bacanal es aún más poderosa en el intercambio, pero el afrontamiento.

1545 - parece que está mejorando. Pero todo se escapa de las manos.

Solicitud/respuesta.

Request.action = TRADE_ACTION_DEAL (1)
Request.magic = 0
Request.order = 0
Request.symbol = EURCAD
Request.volume = 0.01
Request.price = 1.39016
Request.stoplimit = 0.0
Request.sl = 0.0
Request.tp = 0.0
Request.deviation = 100
Request.type = ORDER_TYPE_SELL (1)
Request.type_filling = ORDER_FILLING_RETURN (2)
Request.type_time = ORDER_TIME_GTC (0)
Request.expiration = 1970.01.01 00:00:00
Request.comment =
Request.position = 134821044
Request.position_by = 0
Result.retcode = 10009
Result.deal = 118450870
Result.order = 134821045
Result.volume = 0.01
Result.price = 1.39016
Result.bid = 1.39016
Result.ask = 1.39043
Result.comment = Request executed 57.225 + 18.108 ms
Result.request_id = 4096
Result.retcode_external = 0

Resaltado: es el tiempo que aparece una entrada en el historial de pedidos y transacciones después de un OrderSend exitoso. Mucho.

Registro

NO      0       08:51:22.422    Trades  '5245006': instant sell 0.01 EURCAD at 1.39016, close #134821044 buy 0.01 EURCAD 1.39043 (deviation: 100)
MM      0       08:51:22.480    Trades  '5245006': accepted instant sell 0.01 EURCAD at 1.39016, close #134821044 buy 0.01 EURCAD 1.39043 (deviation: 100)
LH      0       08:51:22.480    Trades  '5245006': deal #118450870 sell 0.01 EURCAD at 1.39016 done (based on order #134821045)
EQ      0       08:51:22.480    Trades  '5245006': order #134821045 sell 0.01 / 0.01 EURCAD at 1.39016 done in 57.165 ms

Y otro caso de ejecución del mismo script.

Solicitud/Respuesta

Request.action = TRADE_ACTION_PENDING (5)
Request.magic = 0
Request.order = 0
Request.symbol = EURCZK
Request.volume = 0.01
Request.price = 27.043
Request.stoplimit = 0.0
Request.sl = 0.0
Request.tp = 0.0
Request.deviation = 100
Request.type = ORDER_TYPE_BUY_LIMIT (2)
Request.type_filling = ORDER_FILLING_RETURN (2)
Request.type_time = ORDER_TIME_GTC (0)
Request.expiration = 1970.01.01 00:00:00
Request.comment = Benchmark_Order
Request.position = 0
Request.position_by = 0
Result.retcode = 10009
Result.deal = 0
Result.order = 134821281
Result.volume = 0.01
Result.price = 0.0
Result.bid = 0.0
Result.ask = 0.0
Result.comment = Request executed 392.585 + 0.299 ms
Result.request_id = 4457
Result.retcode_external = 0

Registro

HP      0       08:51:43.740    Trades  '5245006': buy limit 0.01 EURCZK at 27.04300
RE      0       08:51:44.133    Trades  '5245006': accepted buy limit 0.01 EURCZK at 27.04300
JS      0       08:51:44.133    Trades  '5245006': order #134821281 buy limit 0.01 / 0.01 EURCZK at market done in 392.533 ms

Ping ~54 ms.

 

No es posible copiar nada de la ventana de Alerta.

Por favor, añada a la ventana de Alerta la posibilidad de seleccionar varias líneas, haciendo clic con el botón derecho del ratón en el menú "Copiar" e "Ir al Diario" - para mostrar en el Registro de Expertos la línea correspondiente a la alerta.

 

Buenas tardes.

Me he enfrentado a un comportamiento incorrecto (en mi opinión) de los punteros de los objetos. Es relevante tanto para MT5 como para MT4. Por favor, aclare si esto es un error o una característica. Aquí está el código:

class CBaseObject { };

class CDescObject:public CBaseObject { };

void OnStart()
  {
      CDescObject *obj1 = new CDescObject(), *obj2;
      CBaseObject *baseObj1 = obj1;
      
      obj2 = baseObj1;//Пока не грохнули объект - no problem
      delete(obj1);

      //Если добавить эти строки, ошибки в последней строке не будет
      //if(CheckPointer(baseObj1)==POINTER_INVALID)
         //baseObj1 = NULL;
      
      obj2 = obj1;//Указатели одного типа - no problem
      obj2 = baseObj1;//здесь ошибка "Invalid pointer access"
  }

Entiendo que los punteros aquí no son lo mismo que en C, pero tienen un rico mundo interno. Aun así, sería más lógico que la tarea de la última línea pasara tranquilamente. En mi caso, la comprobación de POINTER_INVALID era posterior a la asignación, por lo que no entendí de inmediato por qué se produce "Acceso inválido al puntero", aunque nadie haga ningún acceso.

P. S.: Por si acaso - Metatrader 5 build 1545, Win 7 SP1 x86