ayuda!!! (orderselect)

Foro para cuestiones generales sobre la plataforma MetaTrader 4.

ayuda!!! (orderselect)

Notapor sandra_fx » 21 Ene 2011, 18:33

Hola a todos y feliz año!!! Espero que hayan disfrutado mucho este Diciembre que acaba de pasar y que hayan comido mucho :lol: , y que tengan un buen nuevo año, con muchos pips :D .

Les escribo porque quisiera que alguien me ayudara a aprender esto de OrderSelect en mql4. (Espero que esto sea fácil y rapido de explicar para usted).

Como uso orderselect? lo estoy entendiendo como es? :?


En la guias de la página de mql4.com, aparecen estos como parámetros de orderselect:

index - Order index or order ticket depending on the second parameter.

select - Selecting flags. It can be any of the following values:
SELECT_BY_POS - index in the order pool,
SELECT_BY_TICKET - index is order ticket.

pool - Optional order pool index. Used when the selected parameter is SELECT_BY_POS. It can be any of the following values:
MODE_TRADES (default)- order selected from trading pool(opened and pending orders),
MODE_HISTORY - order selected from history pool (closed and canceled order).

y sale este ejemplo:

OrderSelect(12470, SELECT_BY_TICKET)


Lo que yo entiendo de esto es que hay dos maneras de usarlo: una es selección por posición o por ticket, que si escogo por ticket, tengo que colocar el numero magico de la orden para que esta sea seleccionada por ese numero, y por tanto se veria asi: OrderSelect(12470, SELECT_BY_TICKET)

Lo de select by pos, que supongo que significa seleccion por posicion, viendo que dice que al usar esta puedo usar tambien
MODE_TRADES: para ordenes abiertas y pendientes, y MODE_HISTORY para ordenes cerradas y pendientes canceladas, me hace pensar que es para seleccionar, como bien lo dice, ordenes, es decir, sin numero magico? y que coloco entonces en el primer dato que me piden: OrderSelect(___,SELECT_BY_POS,MODE_TRADES)

otra cosita: cuando es mejor usar una o la otra?

hasta ahora, estoy ntendiendo bien?

facilitando el mensaje, mis 2 dudas son estas:

1)que pongo en donde va el ticket o numero de la orden cuando la selecciono por posición? (null, 0, otro?, lo dejo en blanco)
2) cuando es mejor usar una o la otra?


Bueno.. espero sea poco pedir, espero alguien pueda ayudarme, y muchassss graciassssss :D
Sandra_fx
sandra_fx
 
Mensajes: 11
Registrado: 06 Dic 2010, 20:16
Karma: 0

Re: ayuda!!! (orderselect)

Notapor elcctroo » 25 Ene 2011, 14:33

1)que pongo en donde va el ticket o numero de la orden cuando la selecciono por posición? (null, 0, otro?, lo dejo en blanco)
Debes poner algo como OrderTiket(), que no debes confundir con OrderNumberMagic().


2) cuando es mejor usar una o la otra?

MODE_HISTORY se usa par verifivcar el resultado deordenes ya cerradas, es para hacer alguna estadistica de los resultados usando las ordenes cerradas

MODE_TRADES es para hacer el seguimiento de las ordenes abiertas o simplemente para localizarlas, tomar su tiket y cerrarlas.

Un slaudo.
elcctroo
 
Mensajes: 56
Registrado: 01 Dic 2009, 17:41
Karma: 0

Re: ayuda!!! (orderselect)

Notapor sandra_fx » 25 Ene 2011, 17:53

Hola elcctroo! Muchas Gracias! Ya lo estoy usando! :D

PD: la pregunta de cuando es mejor usar cual, quise decir cual de las dos entre selectbyticket y selectbypos. :?

Creo que cuando se coloca select_by_ticket, seleccionaria solamente las órdenes que correspondan a su número mágico (el que se coloque en orderselect), y con select_by_pos, ¿selecciona todas las posiciones abiertas? ¿Es asi? :?:

Gracias, de nuevo
Sandra_fx
sandra_fx
 
Mensajes: 11
Registrado: 06 Dic 2010, 20:16
Karma: 0

Re: ayuda!!! (orderselect)

Notapor elcctroo » 26 Ene 2011, 15:05

Hola Sndra, confundes el typket con con el número magico.

El tiket es el número que asigna el broker a cada orden, mientras que el número magico es el número que asigna un expert a las ordenes que tiene que controlar, a las suyas.

Todas las ordenes tienen que tener siempre número de tiket, y el numero magico puede o no ser diferente de cero, en funcion del expert...

Un slaudo.
elcctroo
 
Mensajes: 56
Registrado: 01 Dic 2009, 17:41
Karma: 0

Re: ayuda!!! (orderselect)

Notapor FXWizard » 27 Ene 2011, 00:53

Dios, qué haríamos sin elcctroo!!! Muchas gracias por tu participación en el Foro, Miguel :)

Saludos,
FXWizard
Avatar de Usuario
FXWizard
 
Mensajes: 8493
Registrado: 12 Feb 2008, 15:17
Karma: 35

Re: ayuda!!! (orderselect)

Notapor sandra_fx » 27 Ene 2011, 21:29

Muchas gracias denuev elcctroo. Pensé que ya estba usándolo (pero no) :(

Estoy haciendo varias pruebas hasta que me deje de salir error 4051, y dice "ïnvalid ticket for OrderClose function"... pero no se cual es el error exactamente :oops: jeje

Para hacer la prueba, estoy olocando esto en mi asesor experto esoy colocándolo así:

if("condicion1")
{
ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,0,0,NULL,0,0,CLR_NONE);
OrderSelect(OrderTicket(),SELECT_BY_POS);
}

if ("condicion2") OrderClose(OrderTicket(),OrderLots(),Bid,3,CLR_NONE);

ok. El ea me esta diciendo que el error está en el ticket del orderclose. Cambie el Orderticket() por el numero "0" y nada, intente hacerlo tambien con Null, y hasta inventé colocarle orderstotal... :D

Puedes enseñarme a usar esta funcion? que tengo que poner alli y cuando? revise algunos codigos de mql4.com, y colocan orderticket, pero por que me sale error???

Sandra_fx
sandra_fx
 
Mensajes: 11
Registrado: 06 Dic 2010, 20:16
Karma: 0

Re: ayuda!!! (orderselect)

Notapor elcctroo » 28 Ene 2011, 13:04

sandra_fx escribió:Muchas gracias denuev elcctroo. Pensé que ya estba usándolo (pero no) :(

Para hacer la prueba, estoy olocando esto en mi asesor experto esoy colocándolo así:

if("condicion1")
{
ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,0,0,NULL,0,0,CLR_NONE);
OrderSelect(OrderTicket(),SELECT_BY_POS);
}

if ("condicion2") OrderClose(OrderTicket(),OrderLots(),Bid,3,CLR_NONE);

ok. El ea me esta diciendo que el error está en el ticket del orderclose. Cambie el Orderticket() por el numero "0" y nada, intente hacerlo tambien con Null, y hasta inventé colocarle orderstotal... :D

Puedes enseñarme a usar esta funcion? que tengo que poner alli y cuando? revise algunos codigos de mql4.com, y colocan orderticket, pero por que me sale error???

Sandra_fx


Hya que poner primero la OrderSelect(OrderTicket(),SELECT_BY_POS);
para posteriormente con el tiket de la orden seleccionada hacer la orden close.

si sigues con problemas ... agregame al skipe y lo vemos en directo.

Un saludo.
elcctroo
 
Mensajes: 56
Registrado: 01 Dic 2009, 17:41
Karma: 0

Re: ayuda!!! (orderselect)

Notapor sandra_fx » 28 Ene 2011, 20:51

Hola elcctroo. me dices que ponga primero orderselect antes de orderclose, pero en el codigo que coloqué lo puse de esa manera ¿o me estas diciendo que lo ponga justo anes de cerrar con orderclose? es decir, yo lo tengo asi:
1ro) ordersend,
2do) orderselect,
3ro) orderclose

aqui el codigo:

if("condicion1")
{
ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,0,0,NULL,0,0,CLR_NONE);
OrderSelect(OrderTicket(),SELECT_BY_POS);
}

if ("condicion2") OrderClose(OrderTicket(),OrderLots(),Bid,3,CLR_NONE);


(ya esta orderselect antes de orderclose). Supongo entonces que me estas diciendo que lo coloque "justo antes" de orderclose, así:

if("condicion1")
{
ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,0,0,NULL,0,0,CLR_NONE);
}

if ("condicion2")
{
OrderSelect(OrderTicket(),SELECT_BY_POS);
OrderClose(OrderTicket(),OrderLots(),Bid,3,CLR_NONE);
}


Pero probe esa forma me sigue saliendo el mismo error (invalid ticket for orderclose function) :( .
En vista de esto, podrias, por favor, por favor, ponerme el codigo aqui para ver como es y probarlo. Porfa, eso me ayudaria mucho

Gracias elcctroo y espero no sea mucho pedir
Sandra_fx
sandra_fx
 
Mensajes: 11
Registrado: 06 Dic 2010, 20:16
Karma: 0

Siguiente

Volver a MetaTrader 4

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

cron