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

 
Marco Nicholas #:
Hola. ¿Puede aconsejar cómo implementar correctamente esta condición en el código?

Necesito abrir la primera posición después de la hora especificada en la configuración (hora, minuto, ejemplo "abrir la primera operación después de 23-55") y luego ignorar esta condición.

Este código funciona perfectamente, pero abre absolutamente todas las ofertas después de "one_time_current.hour" y "one_time_open.min" Sólo necesitamos ejecutar esta condición una vez (para la apertura de 1 posición) y no aplicarla a las siguientes.

Así que debería haber otra condición para los siguientes, pero sin ignorar la condición "después de las 23:55", ¿es así como lo entiendo?

 
MrBrooklin #:

¡Hola Marco! Pidió ayuda para que se abriera un puesto. Ahora estás escribiendo eso:

En primer lugar, tiene que decidir cuántas posiciones quiere abrir: muchas o una. Tal vez, la traducción automática de las palabras no le permita formular correctamente su solicitud.

Saludos, Vladimir.

Sí, es cierto, nos entendimos mal. Cuando escribí:

"Este código funciona bien, pero absolutamente todas las operaciones se abren después de "one_time_current.hour" y "one_time_open.min"pero sólo tenemos que ejecutar esta condición una vez (para abrir 1 posición) y no aplicarla a las siguientes".

Quería aclarar esto, no abrir una posición " 1 posición" (lo habrás entendido así), me refería a aplicar la condición de abrir sólo la primera posición y no aplicarla a las siguientes.

Gracias por responder.

 
Alexey Viktorov #:

Así que debería haber otra condición para las siguientes posiciones, pero sin ignorar la condición "después de las 23:55", ¿es así como lo entiendo?

Resulta que sí, que no es necesario aplicarla (anularla) para las siguientes posiciones. Sólo necesitamosabrir la primera posición (como para el inicio del EA, después de una hora y minuto determinados), y para las siguientes posiciones no es necesario aplicar esta condición.

¿Es posible hacerlo todo en una sola condición?

if(one_time_current.hour>=one_time_open.hour && one_time_current.min>=one_time_open.min)
 
Marco Nicholas #:

Resulta que sí, no es necesario aplicarlo (anularlo) a las siguientes posiciones, sólo es necesario aplicarlopara abrir la primera posición (como para el inicio del EA, después de una hora y minuto determinados), y para las siguientes posiciones no es necesario aplicar esta condición.

¿Es posible hacerlo todo en una sola condición?

  bool first_position_was_opened=false;
  ...
  if(first_position_was_opened || ( one_time_current.hour>=one_time_open.hour && one_time_current.min>=one_time_open.min))

Y no olvides poner "first_position_was_opened=true" después de abrir cualquier posición.

La variable "primera_posición_fue_abierta" debe ser global o estática.
 
Por favor, ¡¡¡ayuda!!!
Necesito una función que calcule las ganancias de la última semana para un símbolo y magik específicos.
He encontrado ejemplos sin magik, pero no consigo que el magik funcione(((.
 
JRandomTrader #:

Y no olvides poner "first_position_was_opened=true" después de abrir cualquier posición.

La variable "primera_posición_fue_abierta" debe ser global o estática.

Gracias. Interesante variante de trabajo.

También me gustaría señalar que mi primera variante originalmente también resultó funcionar, con una condición: si se dividen las aperturas para la primera y para las siguientes posiciones. También es posible a través de otra vía.

if(one_time_current.hour>=one_time_open.hour && one_time_current.min>=one_time_open.min)
if(item_positions==0) для первой


if(item_positions>0) для последующих

Gracias a tus respuestas, el aprendizaje de mql5 es mucho más rápido.
 

O puede utilizar PositionsTotal() en lugar de la variable first_position_was_opened en el código de @JRandomTrader:

if(PositionsTotal() > 0 || (one_time_current.hour>=one_time_open.hour && one_time_current.min>=one_time_open.min)) {}

En este caso, esta variable no es necesaria y no necesitas poner esta variable a True después de abrir y a False después de cerrar todas las posiciones.

 

Buenas tardes. Estoy probando un EA y cuando lo depuro usando datos históricos todo va como esperaba. Las operaciones se inician y cierran como deberían y el EA parece funcionar correctamente.
Sin embargo, cuando habilito este mismo EA para "operar" en la cuenta demo, simplemente no envía las órdenes, permaneciendo totalmente inerte.
En otras palabras, puedo realizar backtests basados en este EA, incluso seguirlo en el gráfico durante la depuración, pero por alguna razón no envía órdenes en el mercado en tiempo real (cuenta demo).

El activo que estoy probando es WINM22.


En el "diario" de MT5 aparecen los siguientes mensajes:
- expert loaded successfully
- automated trading is enabled

Y nada más. Ni siquiera un mensaje de error durante toda la sesión de trading.

¿Alguien puede ayudarme a entender qué está pasando?



Los comandos que estoy utilizando para enviar órdenes son:
mrequest.action = TRADE_ACTION_DEAL;
mrequest.price = NormalizeDouble(last_price,1);
mrequest.sl = NormalizeDouble(last_price + STP,1);
mrequest.tp = NormalizeDouble(last_price - TKP,1);
mrequest.symbol= _Symbol;
mrequest.volume = Lot;
mrequest.magic = EA_Magic; 
mrequest.type= ORDER_TYPE_SELL;
mrequest.type_filling = ORDER_FILLING_FOK;
mrequest.deviation=NormalizeDouble(slippage,_Digits);
OrderSend( mrequest , mresult );

Gracias.

 

Hola, quiero preguntar... ¿es posible escribir un Asesor Experto en MT4/5, de modo que al realizar una operación, se base no sólo en los indicadores integrados en MT, sino también en datos del exterior (por ejemplo, de mi servidor)?

Y una pregunta más: ¿puede un Asesor Experto ser guiado por indicadores no sólo para el instrumento vinculado a él, sino también para otros instrumentos (hablando en sentido figurado, un Asesor Experto en el par de divisas EURUSD es guiado por un indicador con DXY)?

 
key_Ex escribir un Asesor Experto en MT4/5 de modo que no sólo se base en indicadores integrados en MT, sino también en datos externos (por ejemplo, de mi servidor)?

Y una pregunta más: ¿puede un Asesor Experto ser guiado por indicadores no sólo para el instrumento vinculado a él, sino también para otros instrumentos (hablando en sentido figurado, un Asesor Experto en el par de divisas EURUSD es guiado por un indicador con DXY)?

Sí, es posible hacer todo lo anterior.

Razón de la queja: