Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1260

 
Valeriy Yastremskiy:

No entiendo, ¿cómo puedo rastrear el momento en que se cierra una posición, que no sea consultando el estado de la posición en cada tick? Por supuesto, no se consultan todas las posiciones, pero sigue habiendo una consulta en cada tic.

Estudie cuidadosamente la documentación.

Документация по MQL5: Обработка событий / OnTradeTransaction
Документация по MQL5: Обработка событий / OnTradeTransaction
  • www.mql5.com
При обрабокте транзакций типа TRADE_TRANSACTION_REQUEST для получения дополнительной информации необходимо анализировать второй и третий параметры функции OnTradeTransaction() – Отправка торгового запроса на покупку приводит к цепи торговых транзакций, которые совершаются на торговом счете: 1) запрос  принимается на обработку, 2) далее для...
 
Yevhenii Levchenko:
No se comprueba en cada garrapata. Si hay una señal, empieza a comprobar y abre un trato. Eso es todo :)

En mql4, a falta de un cocinero *** el conserje. La pregunta era sobre mql5

 
Alexey Viktorov:

Estudie cuidadosamente la documentación.

Gracias. Si sustituimos el orden por una orden, es más fácil de entender. No he visto que la ejecución de la orden sea un trato. En general, es difícil de escribir y aplicar))).
Pero sí. No hayOnTradeTransaction() en mt4.
 
Valeriy Yastremskiy:
Gracias. Si se sustituye el orden por una orden es más fácil de entender. No he visto que la ejecución de una orden sea un acuerdo. En definitiva, es complicado de escribir e implementar).
Tal como está, sí. No hayOnTradeTransaction() en mt4.

Es mejor que intente aceptar la terminología que tiene y no sustituirla por la suya propia. Con el tiempo te acostumbrarás y lo entenderás según el idioma que utilices. Por el contrario, en MT4, una orden de mercado es mejor llamarla posición. Eso es lo que mucha gente entiende.

 
Alexey Viktorov:

Será mejor que intentes aceptar la terminología tal y como es, en lugar de sustituirla por la tuya. Con el tiempo te acostumbrarás y lo entenderás dependiendo de la lengua de que se trate. Incluso a la inversa, en MT4 una orden de mercado se denomina mejor posición. Así lo entiende mucha gente.

Entendimientos misteriosos))) el take profit y el stop loss son órdenes. Las órdenes serían más claras. La confusión viene de mt4 donde una orden es una orden, una operación y una posición. Por eso digo orden en mt5 y me refiero a órdenes)
 

¿Cómo se inicializa una estructura de este tipo?

struct Data
  {
   double            open[];
   double            high[];
   double            low[];
   double            close[];
  };

   Data rates[5]= {0.0,0.0,0.0,0.0}; //ошибка
 
Fast235:

¿cómo se inicializa una estructura de este tipo?

4 a 5. No conozco la sintaxis. Parece que debería estar en un array de 2 dimensiones por lógica.
 
Fast235:

¿cómo se inicializa una estructura de este tipo?

no hay manera ( solo cada campo de la estructura uno por uno )

necesitas establecer el tamaño de las matrices, podrías escribir un constructor para eso, pero habrá un problema - la sintaxis no te permitirá crear una matriz de estructuras con un constructor

solución - utilizar una clase en lugar de la estructura y utilizar punteros, puede inicializar los tamaños de las matrices en el constructor de la clase, y los datos se pueden copiar en ellos


Valeriy Yastremskiy:
4 a 5. No conozco la sintaxis. Debería estar en el array de 2 dimensiones por lógica.
struct S
  {
   int a;
   double b;
  };

//+------------------------------------------------------------------+
void OnStart()
{
   S s[2] = {{1, 1.1},{9, 9.9}};
   ArrayPrint(s);
}
//+------------------------------------------------------------------+

2020.09.23 08:27:09.554 tst (EURUSD,H1) [a] [b]

2020.09.23 08:27:09.554 tst (EURUSD,H1) [0] 1 1.10000

2020.09.23 08:27:09.554 tst (EURUSD,H1) [1] 9 9.90000

 
Fast235:

¿cómo se inicializa una estructura de este tipo?

   Data rates[5]= {0.0,0.0,0.0,0.0}; //ошибка

Inicializar y anular son conceptos diferentes. Si la puesta a cero, a juzgar por sus intentos, es así

  ZeroMemory(rates);
 
Igor Makanu:

no hay manera ( solo cada campo de la estructura uno por uno )

necesitas establecer el tamaño de los arrays, puedes escribir un constructor para esto, pero habrá un problema - la sintaxis no permitirá crear un array de estructuras con el constructor

solución - utilizar la clase en lugar de la estructura y utilizar punteros, entonces usted puede en el constructor de la clase inicializar los tamaños de las matrices, y los datos se pueden copiar en ellos


2020.09.23 08:27:09.554 tst (EURUSD,H1) [a] [b]

2020.09.23 08:27:09.554 tst (EURUSD,H1) [0] 1 1.10000

2020.09.23 08:27:09.554 tst (EURUSD,H1) [1] 9 9.90000

Gracias. Paréntesis)))) no es sintaxis de array)
Razón de la queja: