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

 
Sile Si:

Bien, eso es lo que hago.

Luego comparo el id de la transacción con el ticker de la posición, y creo que he seleccionado la transacción,

pero devuelve el precio de la posición. ¿Por qué?

Pregunta para el fondo de mi mente: ¿usas

PositionGetDouble(POSITION_PRICE_OPEN)

¿Recibes el precio del comercio? ¿O sigue siendo el precio de la posición?

 
Alexey Kozitsyn:

Pregunta para sus consultas: con la ayuda de

¿Consigues el precio de la transacción? ¿O sigue siendo el precio de la posición?

Bueno, si he preseleccionado una operación, entonces es el precio de la operación. No he podido encontrar el precio de apertura en la documentación.

 
Sile Si:

Bueno, si he preseleccionado un comercio, entonces ese es el precio del comercio. No he podido encontrar el precio de apertura de la oferta en la documentación.

¿Cómo se selecciona el oficio? ¿Qué función?

Después de todo, no hay una forma trivial de determinar el precio de apertura de una operación (no de una posición) en MT5. En casos particulares es posible (cuando un acuerdo por parámetros coincide con una posición), pero no hay una forma universal.

 
Ihor Herasko:

¿Cómo se selecciona la transacción? ¿Qué función?

Después de todo, no hay una forma trivial de determinar el precio de apertura de una operación (no de una posición) en MT5. En casos particulares, es posible (cuando los parámetros del acuerdo coinciden con la posición), pero no hay una forma universal.

Elegir un acuerdo por identificación

DEAL_POSITION_ID

Identificador de la posición, en cuya apertura, modificación o cierre participó esta operación. Cada posición tiene un identificador único, que se asigna a todas las operaciones realizadas sobre el símbolo durante la vida de la posición.

largo

 
Sile Si:

Oferta seleccionada por ID

DEAL_POSITION_ID

Identificador de la posición, en la apertura, modificación o cierre de la que ha intervenido esta operación. Cada posición tiene un identificador único, que se asigna a todas las operaciones realizadas en el instrumento durante la vida de la posición.

largo


En el probador, el precio medio se considera correcto. En la cuenta real aparece el precio de otra persona en el comentario.

En las cuentas como el Netting, la posición y la operación son conceptos diferentes. Acaba de mostrarnos la selección de posiciones.

 
¿Cómo puedo encontrar el máximo de N barras en mql5? Similar a iHighest
 
lil_lil:
¿Cómo en mql5 encontrar el máximo para N barras? Similar a iHighest

¿Qué pasa con iHighest?

 
lil_lil:
En mql5, ¿cómo encontrar el valor máximo de N barras? Similar a iHighest

CopiarAlto en un array yArrayMáximo en este array.

Este será el valor máximo, a diferencia de iHighest que devuelve el índice de la barra con el valor máximo.

Документация по MQL5: Доступ к таймсериям и индикаторам / CopyHigh
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyHigh
  • www.mql5.com
Функция получает в массив high_array исторические данные максимальных цен баров для указанной пары символ-период в указанном количестве. Необходимо отметить, что отсчет элементов от стартовой позиции ведется от настоящего к прошлому, то есть стартовая позиция, равная 0, означает текущий бар. При копировании заранее неизвестного количества...
 
lil_lil:
¿Cómo puedo encontrar el máximo de N barras en mql5? Similar a iHighest
//+------------------------------------------------------------------+
//| Возвращает индекс максимального значения таймсерии High          |
//+------------------------------------------------------------------+
int Highest(const int count,const int start)
  {
   double array[];
   ArraySetAsSeries(array,true);
   return(CopyHigh(Symbol(),PERIOD_CURRENT,start,count,array)==count ? ArrayMaximum(array)+start : WRONG_VALUE);
  }
//+------------------------------------------------------------------+
//| Возвращает индекс минимального значения таймсерии Low            |
//+------------------------------------------------------------------+
int Lowest(const int count,const int start)
  {
   double array[];
   ArraySetAsSeries(array,true);
   return(CopyLow(Symbol(),PERIOD_CURRENT,start,count,array)==count ? ArrayMinimum(array)+start : WRONG_VALUE);
   return WRONG_VALUE;
  }
//+------------------------------------------------------------------+
 
Gracias.