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

 
odyn:

Por favor, explique.

La funciónOnTradeTransaction.

¿Tiene que ser en el Asesor Experto?

Si no es así, ¿en qué casos debe incluirse en el código y por qué?

Sólo OnInit() y OnTick() son obligatorios, el resto son opcionales. La razón de ello se describe claramente en la documentación del lenguaje.

El motor del foro ha puesto un enlace con el nombre de la función, pincha en él y léelo.
 
Alexey Viktorov:

Sólo OnInit() y OnTick() son obligatorios, el resto son a discreción del codewriter. Por qué está claramente descrito en la documentación del lenguaje.

El motor del foro ha puesto un enlace con el nombre de la función, para que podamos leerla.

Sólo hago una pregunta cuando no puedo entender la explicación en la documentación, los artículos y el foro.

Si estuviera "claramente descrito", no lo pediría.

La función está diseñada para manejar los resultados de una solicitud de comercio. Esta función no devuelve nada.

La función no es necesaria para ello.

Entonces, ¿la función es necesaria cuando el Asesor Experto recibe los resultados del procesamiento de las solicitudes del servidor? ¿Pero no los envía ningún Asesor Experto? Entonces, ¿la función debe insertarse siempre en el Asesor Experto?

 

¡Hola! ¡Pregunta para usuarios experimentados!

MQL5 tiene OBJ_CHART.

Por favor, indique cómo utilizar indicadores, en particular MA, en OBJ_CHART, y si es posible.

 
odyn:

Sólo hago una pregunta cuando no puedo entender la explicación en la documentación, en los artículos y en el foro.

Si estuviera "claramente descrito", no lo pediría.

La función está diseñada para procesar los resultados de una solicitud de comercio. Esta función no devuelve nada.

La función no es necesaria para ello.

Entonces, ¿la función es necesaria cuando el Asesor Experto recibe los resultados del procesamiento de las solicitudes del servidor? ¿Pero no los envía ningún Asesor Experto? Entonces, ¿la función debe insertarse siempre en el Asesor Experto?

Algunos programadores están atascados con esos ejemplos que dominaron en mql4 y no pueden dejarlos. La función OnTradeTransaction() es como una cola de perro para estos programadores. Pero si se quiere, por ejemplo, detectar fácilmente un evento cuando se activa una orden pendiente, no se puede hacer más fácil que en OnTradeTransaction(). Si necesita tomar alguna decisión y realizar alguna acción en el momento del cierre de la posición, le resultará tan fácil como OnTradeTransaction(). Y si es necesario realizar algunas acciones al cerrar por TP, y otras acciones al cerrar por SL, no se puede hacer más fácil que en OnTradeTransaction().

Pero¡¡ ahora vendrán los que he mencionado y empezarán a especular sobre cuántos milisegundos hay aquí y allá... En definitiva, depende del aficionado. Si te interesa, ejecútalo y mira lo que puedes obtener en OnTradeTransaction() y piensa cómo puedes utilizarlo para ti.

 

Dígame, si necesito abrir dos operaciones al mismo tiempo, pero comprobar si hay un error al abrir una de ellas, ¿cómo capto el error?

¿Existe una función que devuelva la posibilidad de abrir una operación en un activo?

 
Alexey Viktorov:


Gracias por la respuesta.

 

No puedo abrir el archivo en el probador. Me sale el error 5004.

int               m_file_handle;
short             m_delimiter;

m_delimiter='\t';
m_file_handle=FileOpen(m_filename,FILE_READ|FILE_CSV,m_delimiter);
if(m_file_handle==INVALID_HANDLE)
  {
   Print(__FUNCTION__+": file open failed. Error: ",GetLastError());
   return false;
  }

Es un archivo csv normal con tabulación como separador. Lo puse en la carpeta MQL5\Files del agente. Tras intentar abrirlo, el archivo desaparece.

 
leonerd:

No puedo abrir el archivo en el probador. Me sale el error 5004.

Es un archivo csv normal con tabulación como separador. Lo puse en la carpeta MQL5\Files del agente. El archivo desaparece después de intentar abrirlo.

ok, sin #property tester_file aparentemente no funciona.

 
Roman Sharanov:

Dígame, si necesito abrir dos operaciones al mismo tiempo, pero comprobar si hay un error al abrir una de ellas, ¿cómo capto el error?

¿Existe una función que devuelva la posibilidad de abrir una operación sobre un activo?

Utilice OnTradeTransaction().

 

Por favor, sugiera un análogo de la función MQL4 MarketInfo(asymbol, MODE_MARGIN_REQUIRED) en MQL5.

Necesito conseguirla cantidad de fondos libres necesarios para abrir 1 lote para comprar.

He probado diferentes variantes de la función SymbolInfoDouble(symbol, ...) en MQL5, no puedo encontrar la variante correcta, devuelve 0 en todas partes.

Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация о счете
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация о счете
  • www.mql5.com
, то позиции по каждому символу разрешается закрывать только в том порядке, в котором они были открыты — сначала самую старую, затем более новую и т.д. При попытке закрыть позиции в ином порядке будет получена ошибка. Уровень залоговых средств, при достижении которого происходит принудительное закрытие самой убыточной позиции (Stop Out...