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

 
Karputov Vladimir:

1. Sí, así es. La ejecución de una orden genera una transacción. Una transacción puede:

  • crear una posición
  • cambiar el tamaño de una posición
  • cerrar una posición
2. ¿Qué puede ser mejor que la práctica? :) Abrir una posición (manualmente) en cualquier gráfico. Ejecutar el script

- presta atención a la línea (mira la pestaña "Expertos" del terminal):

Aumenta el volumen, ejecuta el script de nuevo - compara la línea de nuevo

Como puede ver, la propiedad de posición (POSITION_IDENTIFIER) no cambia si la posición no se invierte.

Gracias! por las respuestas a ti y a todos los que han contestado.
 
Karputov Vladimir:

En MT5 existe el concepto de POSICIÓN. Puede cerrar una posición. Si quiere cerrar una posición por completo, utilice la biblioteca estándar. Para una cuenta de compensación un ejemplo de cómo cerrar una posición:

Gracias.
 
Ayuda, por favor.

Hay una cadena txt (descargada de un sitio de noticias)

cadena txt = "ИÐ'еÑк ожиа'ний в ÑÑ "еер уÑÐ "уг (авг)</a>\n";
codificación original UTF-8. se muestra como: windows 1252

necesita ser convertido por medios mql4 en la forma - Índice de Expectativa de Servicio (Aug)</a>

¡Gracias de antemano!
 

¡Hola!

Hay un trozo de código

Después de que se ejecutePositionsTotal()

muestra 22 por el número de órdenes abiertas (órdenes de mercado). Efectivamente, hay 22 órdenes abiertas, pero todas son para el mismo instrumento. Creo que debería haber un solo puesto. ¿Qué ocurre? Por favor, aconséjeme.

position_ID=0;
  for(int i=0;i<PositionsTotal();i++)  {
      string pos_symbol=PositionGetSymbol((uint)i);
      if(pos_symbol==Symbol())  {
      position_ID=PositionGetInteger(POSITION_IDENTIFIER);  
      break;    
      }
  }    
   double mProfit =PositionGetDouble(POSITION_PROFIT);
PrintFormat("вход в 0018 PositionsTotal()=%d  mProfit=%d  ticket=%d",PositionsTotal(),mProfit,ticket); 
 
Alexander Kharlamov:

¡Hola!

Hay un trozo de código

Después de que se ejecutePositionsTotal()

muestra 22 por el número de órdenes abiertas (órdenes de mercado). Efectivamente, hay 22 órdenes abiertas, pero todas son para el mismo instrumento. Creo que debería haber un solo puesto. ¿Qué ocurre? Por favor, aconséjeme.

Una posición y una orden son cosas completamente diferentes. Una posición es:"El resultado de lasoperaciones es la apertura de una posición".

Así que si tiene órdenes de compra o de venta, no son órdenes, eran órdenes antes de que se abriera la posición.

Además, el concepto de "orden de mercado" no existe, la orden puede ser pendiente - Límite y Stop, así como Stop Loss y Take Profit son también órdenes (orden del CC para cerrar). Comprar y vender son posiciones, no órdenes, ¡son sus posiciones en el mercado!

 
Vitaly Muzichenko:

Una posición y una orden son cosas completamente diferentes. Una posición es:"El resultado de unaoperación es la apertura de una posición".

Así que si tiene órdenes de compra o de venta, no son órdenes, eran órdenes antes de que se abriera la posición.

Además, el concepto de "orden de mercado" no existe, la orden puede ser pendiente - Límite y Stop, así como Stop Loss y Take Profit son también órdenes (orden del CC para cerrar). Comprar y vender son posiciones, no órdenes, ¡son sus posiciones en el mercado!

Gracias por la respuesta, pero su comentario me parece claro. Me refería a órdenes de mercado en el sentido de que ya están en el mercado, no a órdenes pendientes. La pregunta era por qué hay 22 puestos y no sólo uno. Creo que no has mirado el código y has respondido inmediatamente. Lo siento...
 
Alexander Kharlamov:
Gracias por responder, pero lo que has escrito me queda claro tal cual. He escrito órdenes de mercado en el sentido de que ya están en el mercado, no pendientes. La pregunta era por qué hay 22 puestos y no sólo uno. Creo que no has mirado el código y has respondido inmediatamente. Lo siento...
Aparentemente tienes una cuenta de cobertura. Puede haber muchas posiciones en un instrumento.
 
mila.com:

Hola.

Por favor, díganme cómo conseguir el texto situado en la primera barra en una variable.

Quiero obtener int TXT = 191;


ObjectGetString()

OBJPROP_TEXT

Descripción del objeto (texto contenido en el objeto)

cadena

 
Artyom Trishkin:

ObjectGetString()

OBJPROP_TEXT

Descripción del objeto (texto contenido en el objeto)

cadena

Por medio de
StringToInteger( 
   string  value      // строка 
   );
 
mila.com:

Gracias, no está muy claro cómo implementar esto en este caso.

¿Qué tiene de malo?

Lo más probable es que no haya espacio entre el nombre y la hora"L_V "+Hora[1]
Razón de la queja: