Orders / ordenes y operaciones en MT4

 

Publi

Orders / ordenes y operaciones en MT4

 

Publi

Resultados 1 al 4 de 4


  1. #1
    Avatar de capitalAmerica
    Heidelbergensis


    Reputación:
    Poder de reputación: 17

    Mensajes: 1.865
    Créditos: 147

    Re: Orders / ordenes y operaciones en MT4


    Publi
    Totalmente de acuerdo, esta super-respuesta bien vale Reputacion
    Foro de Forex Trading United



  2. Publi
    Publi


  3. #2
    Avatar de Puk33
    Heidelbergensis


    Reputación:
    Poder de reputación: 20

    Mensajes: 2.123
    Créditos: 1.961

    Re: Orders / ordenes y operaciones en MT4

    Menuda respuesta... no merece menos que reputacion!!
    Foro de Forex Trading United

  4. #3




    Reputación:
    Poder de reputación: 13

    Mensajes: 24
    Créditos: 50

    Re: Orders / ordenes y operaciones en MT4

    Reputacion y gracias
    Foro de Forex Trading United

  5. #4
    Avatar de wildfandango
    Erectus


    Reputación:
    Poder de reputación: 13

    Mensajes: 56
    Créditos: 55

    Orders / ordenes y operaciones en MT4


    Publi
    Buenas, pongo esto aquí porque lo veo más adecuado en la sección de EAS que en la de METATRADER. Un compañero (trader201) planteó la duda y creo que puedo para arrojar algo de luz sobre el tema
    (posiblemente si veo este post dentro de unos meses reniegue, pero bueno...)

    Introducción.
    Las ordenes/operaciones en METATRADER se van numerando por sesión, empezando por la uno, a esto se le llama número de ticket.

    Si tenemos 2 EAS funcionando estos crearán ordenes usando el siguiente número de ticket disponible por lo cual, la única forma que tiene un EA de "saber" qué operaciones son "suyas" es a través del Magic Number. DesertEagle lo explica mejor en este post.

    Seleccionar/Buscar Ordenes
    Para seleccionar una operación deberemos buscarla y en este punto conviene destacar que existen 2 tipos de operaciones y no me refiero a las que nos dan beneficios o pérdidas

    MODE_TRADES - Es la lista de las ordenes abiertas.
    MODE_HISTORY - Contiene las ordenes ya cerradas.

    La función para seleccionar ordenes es OrderSelect(int index, int select, int pool=MODE_TRADES)

    Si conocemos el número de ticket de la orden basta con ejecutar:
    Encontrado = OrderSelect(69, SELECT_BY_TICKET,MODE_TRADES);

    En este caso le estoy diciendo que me seleccione la orden 69, le digo que el 69 es un numero de ticket... y además le estoy diciendo que busque en las ordenes abiertas. Si la búsqueda tiene éxito Encontrado contrendrá true y habremos "seleccionado" la operación.

    Una vez seleccionada la orden, podemos obtener información sobre ella, por ejemplo con alguna de estas instrucciones:

    OrderClosePrice
    OrderCloseTime
    OrderComment
    OrderCommission
    OrderExpiration
    OrderLots
    OrderMagicNumber
    OrderOpenPrice
    OrderOpenTime
    OrderProfit
    OrderStopLoss
    OrdersTotal
    OrderSwap
    OrderSymbol
    OrderTakeProfit
    OrderTicket
    OrderType


    Si no conocemos el número de ticket, no nos queda más remedio que "rebuscar" entre todas las operaciones realizadas hasta encontrar la que buscamos y esto se haría con un bucle. Y como no sabemos el número de ticket, en cada ciclo del bucle debemos examinar cada operación para determinar si es la que buscamos... pondré un ejemplo.

    Supongamos que busco mi ultima operación cerrada. la búsqueda debería ser algo así:

    // no inicializamos esta variable de forma intencionada
    datetime ultima_fecha_cierre;

    // determino el numero de ordenes que hay en el historial
    int ordenes = OrdersHistoryTotal()

    int mi_ultima_orden = 0;

    for(int contador=0;contador<ordenes;contador++)
    {
    // con esto busco y al mismo tiempo verifico que haya seleccionado correctamente
    if(OrderSelect(contador,SELECT_BY_POS,MODE_HISTORY)==false) continue;

    if (ultima_fecha_cierre < OrderCloseTime())
    {
    // con esto obtengo el numero y la fecha_hora de la orden cerrada más recientemente
    mi_ultima_orden = OrderTicket();
    ultima_fecha_cierre = OrderCloseTime();
    }
    }
    // finalmente la seleccionamos
    Encontrado = OrderSelect(mi_ultima_orden, SELECT_BY_TICKET,MODE_HISTORY)
    Espero que no haya quedado muy complicado...

    salu2
    Foro de Forex Trading United
    Última edición por wildfandango; 15:52 a las


This website uses cookies
Utilizamos cookies propias y de terceros para elaborar información estadística y mostrarle publicidad personalizada a través del análisis de su navegación. Si continúa navegando acepta su uso. Más información y política de cookies.
     

 

Publi


Aviso Legal
Ley Orgánica 15/1999, de 13 de diciembre, de Protección de Datos de Carácter Personal