OrderClose();
Esta función se utiliza para cerrar posiciones abiertas. Si se cierra con éxito devuelve true. Si se produce algún error devuelve false.
Veamos la estructura de la función.
bool OrderClose (
int ticket,
double lots,
double price,
int slippage,
color Color=CLR_NONE
);
ticket: Acá debemos colocar el número de identificación de la orden que queremos cerrar. Este lo recibimos cuando crearnos la orden con OrderSend();.
lots: La cantidad de lotes que se cerraran. Se pueden cerrar una porción de la posición, más no toda.
price: Esta parte es muy parecida a OrdenSend();. Aca colocamos el precio al que queremos cerrar la posición, y también podemos colocar un rango de pips en los que también se cerrara la posición aunque el precio no sea exacto. Queda mas claro viendo la explicación de OrderSend();
slippage: es el mismo slippage que el de OrderSend() pero aplicado al cierre de la posición.
Color: Es el color de la flecha que va a indicar cuándo se cerró la posición en la grafica. Si no se coloca nada no se ve ninguna flecha.
La función OrderClose(); no tiene sentido utilizarla si no tenemos la información sobre las posiciones abiertas. Por esta razón, es vital tener la información de las posiciones abiertas o tener alguna forma de conseguir esta información.
En MQL4, hay unas funciones especiales que sirven precisamente para obtener información de las posiciones abiertas o posiciones pendientes. Por ejemplo, la función OrderOpenPrice() devuelve el precio con el que se abrió una posición o el precio de ejecución de una orden pendiente. La función OrderLots() devuelve la cantidad de lotes. OrderType() devuelve el tipo de la orden, asi etc.
Todas las funciones que nos dan información de las pociones abiertas o las posiciones pendientes, necesitan antes tener una orden seleccionada. Para esto debemos utilizar OrderSelect().
Función OrderSelect ();
Para obtener información, modificar, cerrar o eliminar posiciones abiertas o ordenes pendientes, primero debemos utilizar OrderSelect();. Por lo que he visto de código OrderSelect() literalmente hace eso, seleccionar una orden, y al hacerlo todas las demás funciones que den información, modifiquen o eliminen una orden, van a trabajar con la orden seleccionada por OrderSelect(). El proceso por el que mediante OrderSelect() se termina seleccionando una orden, funciona parecido a un tamiz, en el cual, mediante un ciclo y varias condicionales, se va filtrando un grupo de órdenes, seleccionando varias órdenes en el proceso, hasta dejar solo la orden que se quiere seleccionar. Veamos su estructura.
bool OrderSelect(
int index,
int select,
int pool=MODE_TRADES
);
OrderSelect(); es una función que devuelve true si se ejecuta correctamente y si no, devuelve false.
index: En este parámetro hay dos opciones. Una es colocar el número único de una orden. La segunda opción es colocar la posición o índice de la orden con respecto a una lista. Cuál de estas dos opciones se elija depende del segundo parámetro.
select: En este parámetro elegimos el tipo de índice que queremos utilizar. Solo hay dos opción que son dos constantes. SELECT_BY_POS y SELECT_BY_TICKET.
- SELECT_BY_POS: Si colocamos SELECT_BY_POS en select, encontraremos la orden un índice de una lista.
- SELECT_BY_TICKET: Si elegimos SELECT_BY_POS en select, encontraremos la orden con el numero único de la orden.
pool: Este parámetro solo es útil si en select elegimos la opciones de encontrar por índice, ósea SELECT_BY_POS . Si en el segundo parámetro seleccionamos SELECT_BY_TICKET deberemos dejar en blanco este parámetro. Este parámetro sirve para seleccionar la lista en la que vamos a utilizar el índice. Solo hay dos opciones. MODE_TRADES y MODE_HISTORY
- MODE_TRADES (por defecto): Elige la lista donde están las posiciones abiertas y posiciones pendientes.
- MODE_HISTORY (por defecto): Elige la lista donde están las posiciones abiertas y posiciones pendientes.

0 respuestas hasta el momento ↓
Todavía no hay comentarios... Empiece usted rellenando el siguiente formulario.