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

 

Estoy muy confundido con las órdenes y posiciones pendientes al acceder al historial de operaciones.

Si una orden pendiente se dispara y se traslada a una posición y se cierra con éxito (trato), entonces ¿cómo se almacena en la caché del historial como una orden o como una posición?

¿Cómo lo dirijo como posición o como orden a través del estado?

 
vladzeit:

Estoy muy confundido con las órdenes y posiciones pendientes cuando se accede al historial de operaciones.

Si una orden pendiente se dispara y se traslada a una posición y se cierra con éxito (trato), entonces ¿cómo se almacena en la caché del historial como una orden o como una posición?

¿Cómo lo dirijo como posición o como orden a través del estado?

El estudio de esta sección de la documentación debería ayudar.

Primero una orden, pasa a ser una operación, luego una posición. Entonces si es una cuenta de compensación más órdenes y tratos y al final una orden en sentido contrario con un lote igual a la posición existente, de ella un trato y ninguna posición. Está cerrada y no hay ninguna posición en el historial, sólo hay órdenes y operaciones que han creado, modificado y cerrado esta posición. Pero todas ellas están conectadas con el identificador de posición.
Документация по MQL5: Торговые функции / HistorySelectByPosition
Документация по MQL5: Торговые функции / HistorySelectByPosition
  • www.mql5.com
Не следует путать между собой ордера из торговой истории и действующие отложенные ордера, которые отображаются на вкладке "Торговля" в панели "Инструменты". Список ордеров, которые были отменены или привели к проведению торговой операции, можно посмотреть  в закладке "История" на панели "Инструменты" клиентского терминала. Функция...
 

4758

No se ha calculado el beneficio o el margen


¿Cómo se puede arreglar esto?

 
Alexey Viktorov:

El estudio de esta sección de la documentación debería ayudar.

Primero una orden, pasa a ser una operación, luego una posición. A continuación, si se trata de una cuenta de compensación más órdenes y tratos y al final una orden en sentido contrario con un lote igual a la posición existente, de ella un trato y ninguna posición. Está cerrada y no hay ninguna posición en el historial, sólo hay órdenes y operaciones que han creado, modificado y cerrado esta posición. Pero todas ellas están conectadas al ID de posición.

Alexey. He leído la cartilla, pero tú lo has explicado todo con tus propias palabras de una manera más fácil de lo que estaba escrito allí... Todo es claro y comprensible. Gracias)

 
vladzeit:

Alexey. He leído la cartilla, pero tú lo has explicado todo con tus propias palabras de una manera más fácil de lo que estaba escrito allí... Todo es claro y comprensible. Gracias)

Por favor.




Pero he dicho "estudiar la sección", no leerla. Está todo ahí, pero disperso con descripciones de varias funciones de esta sección, es sólo documentación, no un libro para principiantes. También hay otros artículos. Seguramente habrá alguno que hable de ello.

 
Alexey Viktorov:
Por favor.




Pero he dicho "estudiar la sección", no leerla. Está todo ahí, pero disperso con descripciones de las diversas funciones de esta sección, es sólo documentación, no un manual para principiantes. También hay otros artículos. Seguro que debe haber alguno que hable de ello.

Tienes razón, debería estudiar, no sólo leer, lo que despertó el interés en este momento. Pero estoy siguiendo mis emociones y mi deseo de obtener un resultado rápido y práctico, implementado en forma de un algoritmo de trabajo.

Y estoy tratando de obtener de mql5 sólo lo que necesito para resolver esta estrecha tarea... Como resultado tengo muchas lagunas en la educación)

Parece que ya soy capaz de reconocer las letras, pero no quieren formar palabras y frases).

También es difícil porque no hay un libro de texto exacto con ejemplos y ejercicios, y la ayuda está diseñada para aquellos que ya tienen algo de experiencia en programación y de hecho sólo explica su propia sintaxis.

Por supuesto que hay mucha información en el foro, pero todo está muy disperso y a veces no es fiable debido a los nuevos cambios en mql5.

Probablemente debería haber empezado a conocer mql4... Obviamente hay más tutoriales allí, y luego, habiendo recibido la experiencia básica, una idea, empezar a utilizar mql5, estudiando sus diferencias.

En parte lo estoy haciendo, buscando ejemplos en mql4 y tratando de implementarlos en mql5 por analogía. Pero a veces, debido a las diferencias cardinales de algunas funciones y principios, me confunde aún más)))).

Al parecer, todos los autodidactas pasan por esto).

Lo que has dicho arriba, sin duda lo tendré en cuenta, al menos lo intentaré).

 

Después de actualizar el terminal, el Asesor Experto dejó de construirse.

Error

'INIT_FAILED' - expression not boolean  

¿Cuál puede ser el problema?

//+------------------------------------------------------------------+
//| Lots or risk in percent for a deal from a free margin            |
//+------------------------------------------------------------------+
bool LotsOrRisk(const double lots,const double risk,const int digits_adjust)
  {
   if(lots<0.0 && risk<0.0)
     {
      Print(__FUNCTION__,",ERROR: Parameter(\"lots\" or \"risk\") can't be less than zero");
      return(false);
     }
   if(lots==0.0 && risk==0.0)
     {
      Print(__FUNCTION__,", ERROR: Trade is impossible: You have set \"lots\" == 0.0 and \"risk\" == 0.0");
      return(false);
     }
   if(lots>0.0 && risk>0.0)
     {
      Print(__FUNCTION__,", ERROR: Trade is impossible: You have set \"lots\" > 0.0 and \"risk\" > 0.0");
      return(false);
     }
   if(lots>0.0)
     {
      string err_text="";
      if(!CheckVolumeValue(lots,err_text))
        {
         Print(__FUNCTION__,", ERROR: ",err_text);
         return(false);
        }
     }
   else if(risk>0.0)
     {
      if(m_money!=NULL)
         delete m_money;
      m_money=new CMoneyFixedMargin;
      if(m_money!=NULL)
        {
         if(!m_money.Init(GetPointer(m_symbol),Period(),m_symbol.Point()*digits_adjust))
            return(INIT_FAILED);
         m_money.Percent(risk);
        }
      else
        {
         Print(__FUNCTION__,", ERROR: Object CMoneyFixedMargin is NULL");
         return(INIT_FAILED);
        }
     }
//---
   return(true);
  }
//+------------------------------------------------------------------+

Esta es la función que el compilador está jurando

return(INIT_FAILED);
 
ilvic:

Después de actualizar el terminal, el Asesor Experto dejó de construirse.

Error

¿Cuál puede ser el problema?

Esta es la función que el compilador está jurando

La función LotsOrRisk() se declara como un bool. Significa que sólo puede devolver verdadero O falso.

 
Juer:

Aparentemente es más bien culpa de mi hardware... y mi sistema.

Actualicé el sistema a vin10, hice una comprobación de disco con localización de sectores de bits. Bueno, supongo que tendré que actualizar a SSD.

La compilación también tardó más de 10 minutos. No es normal que se tarde tanto en compilar...

 
Buenas tardes.
¿Es posible que el indicador muestre los parámetros de entrada en el gráfico? ¿Tal vez haya un ejemplo listo?
Razón de la queja: