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

 

Una simple pregunta.

¿Es posible salir del ciclo de esta manera? ¿O es que esa sencillez no es gratuita?

while(1)
{
 .........
 if(............ ) return;
 ..........
}
 

Una pregunta más.

Existe una estructura MqlTick con el siguiente campo

longtime_msc;// Hora de la última actualización del precio en milisegundos

Según tengo entendido, time_msc almacena el número de milisegundos desde 1970.

La función CopyTick tiene el siguiente parámetro

ulongfrom=0,//fecha desde la que se solicitan los ticks

En la ayuda, se especifica que es "Fecha a partir de la cual se solicitan los ticks". Especificado en milisegundos desde el 01.01.1970".

Pregunta de atención.

¿Por qué se utilizan diferentes tipos de datos en la estructura MqlTick y en el parámetro de la función CopyTick? Al fin y al cabo, ambos guardan el tiempo desde 1970.

 
pivomoe:

Una pregunta más.

Existe una estructura MqlTick con el siguiente campo

longtime_msc;// Hora de la última actualización del precio en milisegundos

Según tengo entendido, time_msc almacena el número de milisegundos desde 1970.

La función CopyTick tiene el siguiente parámetro

ulongfrom=0,//fecha desde la que se solicitan los ticks

En la ayuda, se especifica que es "Fecha a partir de la cual se solicitan los ticks". Especificado en milisegundos desde el 01.01.1970".

Pregunta de atención.

¿Por qué se utilizan diferentes tipos de datos en la estructura MqlTick y en el parámetro de la función CopyTick? Al fin y al cabo, ambos guardan el tiempo desde 1970.

ulong - tipo unsigned long

 
Lo sé. ¿Por qué se utiliza un tipo con signo en un caso y un tipo sin signo en el otro? Los casos son similares, después de todo.
 
pivomoe:

Una simple pregunta.

¿Es posible salir del ciclo de esta manera? ¿O es que esa sencillez no es gratuita?

¿Cuál es la preocupación? Terminación por condición. Sólo si se quiere salir del bucle, no retornar sino romper

 
Alexey Viktorov:

¿Qué te preocupa? Finalización de la ejecución por condición. Sólo si se quiere salir del bucle, no retornar sino romper

No entiendo el consumo de memoria después de que dicho bucle returnom salga o no?
 
pivomoe:
No entiendo el consumo de memoria después de una salida tan returnom o no ?

¿Por qué debería hacerlo? No te comas la cabeza con tonterías. Este tipo de salida funcionará rápidamente.

 

¿Cómo puedo renunciar a una utilidad gratuita (indicador) descargada a través del mercado en el terminal. Desinstalarlo no ayuda. Sigo recibiendo mensajes sobre la actualización del producto, aunque hace tiempo que está desinstalado.

 

Señores, ayúdenme a entender la situación, en el Probador de Estrategias todo va sin errores y problemas en una cuenta demo también, pero cuando cargo un EA en el Mercado, el Autotester dice:

2016.04.01 00:00:12 falló la venta instantánea de 0,10 EURUSD a 1,13780 sl: 1,14030 tp: 1,13030 [Volumen no válido]
2016.04.01 00:00:24 falló la venta instantánea de 0,10 EURUSD a 1,13779 sl: 1,14029 tp: 1,13029 [Volumen no válido]
2016.04.01 00:00:59 falló la venta instantánea de 0,10 EURUSD a 1,13782 sl: 1,14032 tp: 1,13032 [Volumen no válido]
2016.04.01 00:01:00 falló la venta instantánea de 0,10 EURUSD a 1,13793 sl: 1,14043 tp: 1,13043 [Volumen no válido]
2016.04.01 00:01:08 falló la venta instantánea de 0,10 EURUSD a 1,13783 sl: 1,14033 tp: 1,13033 [Volumen no válido]
2016.04.01 00:01:17 falló la venta instantánea de 0,10 EURUSD a 1,13784 sl: 1,14034 tp: 1,13034 [Volumen no válido]
2016.04.01 00:01:25 falló la venta instantánea de 0,10 EURUSD a 1,13774 sl: 1,14024 tp: 1,13024 [Volumen no válido]
2016.04.01 00:01:34 falló la venta instantánea de 0,10 EURUSD a 1,13776 sl: 1,14026 tp: 1,13026 [Volumen no válido]
2016.04.01 00:01:59 falló la venta instantánea de 0.10 EURUSD a 1.13778 sl: 1.14028 tp: 1.13028 [Volumen no válido]
2016.04.01 00:02:00 falló la venta instantánea de 0.10 EURUSD a 1.13778 sl: 1.14028 tp: 1.13028 [Volumen no válido]
2016.04.01 00:02:08 falló la venta instantánea de 0,10 EURUSD a 1,13776 sl: 1,14026 tp: 1,13026 [Volumen no válido]

código de la función a continuación:

OpenPos(NormalizeDouble(Lot,2), NormalizeDouble(Bid,_Digits), NormalizeDouble(_sl,_Digits),NormalizeDouble(_tp,_Digits),ORDER_TYPE_SELL,MagicSell,Comm);
void OpenPos(const double volume,const double price, const double stop, const double take, const ENUM_ORDER_TYPE o_type, const int magic,const string coment=NULL)
{
   MqlTradeRequest request={0};
   MqlTradeResult result={0};
   
   string t=(o_type==ORDER_TYPE_BUY)?"Buy":"Sell";
   
   ZeroMemory(request);
   ZeroMemory(result);
   
   request.action=TRADE_ACTION_DEAL;
   request.symbol=Symbol();
   request.volume=volume;
   request.type=o_type;
   request.magic=magic;
   request.price=price;
   request.sl=stop;
   request.tp=take;
   request.comment=coment;
   
   if(IsFillingTypeAllowed(Symbol(),SYMBOL_FILLING_FOK))
      request.type_filling=ORDER_FILLING_FOK;
   else if(IsFillingTypeAllowed(Symbol(),SYMBOL_FILLING_IOC))
      request.type_filling=ORDER_FILLING_IOC;
   else
      request.type_filling=ORDER_FILLING_RETURN;
   
   if(!OrderSend(request,result))
      PrintFormat("Can't open position %s error %i",t,GetLastError());
}
 
Andrii Djola:

Quiero pedirles que me ayuden a entender la situación, en el Probador de Estrategias todo corre sin ningún error o problema, tampoco tengo problemas en mi cuenta demo, pero cuando cargo mi EA en el Mercado, el Autotester escribe:

Imprime el resultado de OrderCheck y su estructura completa. Haga lo mismo con OrderSend.

Configurar cuentas de demostración en diez servidores de negociación diferentes. Y prueba tu código allí. Lo más frecuente es que no se tenga en cuenta alguna característica particular del servidor de operaciones, que se reproduce al comprobar en el Mercado.

Y no te olvides de dar salida a LastError. Todo esto junto le permitirá llegar rápidamente al fondo de las causas del error.

Razón de la queja: