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

 
En MQL5 para cerrar una orden hay que abrir una contraorden espejo y no hay otra forma?
 
new-rena:
En MQL5 para cerrar una orden hay que abrir una contraorden espejo y nada más?

Utilice su biblioteca estándar:

#include <Trade\Trade.mqh>
CTrade         m_trade;                      // trading object
...
m_trade.PositionClose(....
или
m_trade.PositionCloseBy(..

y no tienen que pensar en nada.

 
Vladimir Karputov:

Utilice su biblioteca estándar:

#include <Trade\Trade.mqh>
CTrade         m_trade;                      // trading object
...
m_trade.PositionClose(....
или
m_trade.PositionCloseBy(..

y no tienen que pensar en ello.

¿Cómo no pensar en ello? Estoy escribiendo un programa en MQL5 para el comercio real, es decir, con mi dinero real.

He leído la documentación. No veo ningún problema en cerrar una posición.

La cuestión es diferente. - Nuestra VENTA es bloqueada por la COMPRA, mientras que la VENTA y la COMPRA se fusionan en una sola orden con un volumen igual a cero, ¿es esto un cierre?

¿Así que MQL5 excluye los lotes? ¿Lo que significa que no tengo ninguna posibilidad de tener suerte, excepto la pérdida final e irrevocable en la inversión de la señal (orden)?

Mira las señales - MQL5 no es tan bueno como MQL4, por decirlo suavemente...

Será mejor que mejoren la situación y eliminen de MQL5 una tontería como la "posición"

 
new-rena:

He leído la documentación.

Lo muestra.

nuevo-rena:

...

¿Así que MQL5 excluye las cerraduras? ¿Significa que no tengo ninguna posibilidad de hacer un solo movimiento y obtener una pérdida permanente?

Mira las señales - MQL5 es penoso comparado con MQL4, por decirlo suavemente...

Será mejor que mejoren la situación y eliminen de MQL5 una tontería como la "posición"

Debería consultar la Ayuda de vez en cuando, para estar al tanto de las actualizaciones y leer los artículos: Seha añadido el sistema de cobertura para la contabilidad de posiciones en MetaTrader 5

 
new-rena:

¿Cómo no pensar en ello? Estoy escribiendo un programa en MQL5 para el comercio real, es decir, con mi dinero real.

He leído la documentación. No veo ningún problema en cerrar una posición.

La cuestión es diferente. - Nuestra VENTA es bloqueada por la COMPRA y la VENTA y la COMPRA se fusionan en una sola orden con un volumen igual a cero, ¿es esto un cierre?

¿Así que MQL5 excluye los lotes? Lo que significa que no hay ninguna posibilidad de que tenga suerte, además de obtener incontrovertible e irremediablemente una pérdida?

Mira las señales - MQL5 es penoso comparado con MQL4, por decirlo suavemente...

Hay que corregir la situación y eliminar una tontería como la "posición" de MQL5

Este es un ejemplo para una cuenta de cobertura:

La primera operación es Comprar 0,02 y la segunda operación es Vender 0,01. El total de dos posiciones: Comprar 0,02 y Vender 0,001. Entonces cerramos la posición de Vender 0,01 y cerramos la posición de Comprar 0,02:

//+------------------------------------------------------------------+
//|                                                       TestEA.mq5 |
//|                              Copyright © 2016, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2016, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.00"
#include <Trade\Trade.mqh>
#include <Trade\PositionInfo.mqh>
CTrade         m_trade;                      // trading object
CPositionInfo  m_position;                   // trade position object
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   static long counter=0;
   counter++;
   if(counter%300==0 && counter<700)
     {
      static int number=0;
      number++;
      if(number==1)
         m_trade.Buy(0.02);
      if(number==2)
         m_trade.Sell(0.01);
     }
   if(counter>7000)
     {
      int positions= PositionsTotal();
      if(positions == 0)
         return;
      int positions_total=PositionsTotal();
      for(int i=positions_total-1;i>=0;i--)
         if(m_position.SelectByIndex(i))
            m_trade.PositionClose(m_position.Ticket(),-1);
     }
  }
//+------------------------------------------------------------------+

y Diario:

Trade   2016.02.25 00:13:35   instant buy 0.02 EURUSD at 1.10167 (1.10158 / 1.10167 / 1.10158)
Trades  2016.02.25 00:13:35   deal #2 buy 0.02 EURUSD at 1.10167 done (based on order #2)
Trade   2016.02.25 00:13:35   deal performed [#2 buy 0.02 EURUSD at 1.10167]
Trade   2016.02.25 00:13:35   order performed buy 0.02 at 1.10167 [#2 buy 0.02 EURUSD at 1.10167]
TestEA (EURUSD,H1)      2016.02.25 00:13:35   CTrade::OrderSend: instant buy 0.02 EURUSD at 1.10167 [done at 1.10167]
Trade   2016.02.25 00:30:17   instant sell 0.01 EURUSD at 1.10157 (1.10157 / 1.10164 / 1.10157)
Trades  2016.02.25 00:30:17   deal #3 sell 0.01 EURUSD at 1.10157 done (based on order #3)
Trade   2016.02.25 00:30:17   deal performed [#3 sell 0.01 EURUSD at 1.10157]
Trade   2016.02.25 00:30:17   order performed sell 0.01 at 1.10157 [#3 sell 0.01 EURUSD at 1.10157]
TestEA (EURUSD,H1)      2016.02.25 00:30:17   CTrade::OrderSend: instant sell 0.01 EURUSD at 1.10157 [done at 1.10157]
TestEA (EURUSD,H1)      2016.02.25 02:12:06   PositionClose #3 POSITION_TYPE_SELL 0.01
Trade   2016.02.25 02:12:06   instant buy 0.01 EURUSD at 1.10131, close #3 (1.10123 / 1.10131 / 1.10123)
Trades  2016.02.25 02:12:06   deal #4 buy 0.01 EURUSD at 1.10131 done (based on order #4)
Trade   2016.02.25 02:12:06   deal performed [#4 buy 0.01 EURUSD at 1.10131]
Trade   2016.02.25 02:12:06   order performed buy 0.01 at 1.10131 [#4 buy 0.01 EURUSD at 1.10131]

TestEA (EURUSD,H1)      2016.02.25 02:12:06   CTrade::OrderSend: instant buy 0.01 position #3 EURUSD at 1.10131 [done at 1.10131]
TestEA (EURUSD,H1)      2016.02.25 02:12:06   PositionClose #2 POSITION_TYPE_BUY 0.02
Trade   2016.02.25 02:12:06   instant sell 0.02 EURUSD at 1.10123, close #2 (1.10123 / 1.10131 / 1.10123)
Trades  2016.02.25 02:12:06   deal #5 sell 0.02 EURUSD at 1.10123 done (based on order #5)
Trade   2016.02.25 02:12:06   deal performed [#5 sell 0.02 EURUSD at 1.10123]
Trade   2016.02.25 02:12:06   order performed sell 0.02 at 1.10123 [#5 sell 0.02 EURUSD at 1.10123]
TestEA (EURUSD,H1)      2016.02.25 02:12:06   CTrade::OrderSend: instant sell 0.02 position #2 EURUSD at 1.10123 [done at 1.10123]

¿Qué es exactamente lo que no está claro? ¿Que hay que abrir una orden opuesta con el mismo volumen para cerrar la posición?

Archivos adjuntos:
TestEA.mq5  5 kb
 
Anatoli Kazharski:

Ya lo veo.

Tolyana, estoy harto de ti.

¿No puedes escribir en los negocios sin ser sarcástico?

 
new-rena:

Tolyana, estoy harto de ti.

¿Se puede escribir en los negocios sin ser sarcástico?

¿Qué es esto?

Deberíasmirarla Ayuda a veces,estar atento a las actualizaciones y leer los artículos:MetaTrader 5 ha añadido un sistema de cobertura para la contabilidad de posiciones

 
Anatoli Kazharski:

¿Qué es esto?

Deberías mirarla Ayuda de vez en cuando,estar atento a las actualizaciones y leer los artículos:MetaTrader 5 ha añadido un sistema de cobertura para la contabilidad de posiciones

Este -"Se nota. ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡" no más!!!!!!!!!!!!!!!

Si puedes responder, entonces escribe una respuesta y basta.

Entonces diría: "Gracias".

Pero en este caso, por favor, puedo enviarlo.

 
new-rena:

Tolyana, estoy harto de ti.

¿Se puede escribir en los negocios sin ser sarcástico?

Parece que todo va al grano e incluso con referencias... Cuando alguien declara que ha leído la documentación y pide que se le quiten las redes (que, por cierto, se utilizan en los FORTS)... aquí no hay lugar para el sarcasmo.
 
new-rena:

Eso es:"Se nota. ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡" no más!!!!!!!!!!!!!!!

Si puedes responder, escríbenos y basta.

Entonces diría: "Gracias".

Pero en este caso, por favor, puedo enviarlo.

Asegúrate de que no te envíen. )