Página 1 de 1
Ayuda Programando metatrader
Publicado: 09 Feb 2010 15:30
por theblade
Buenas,
Alguien me puede dar el codigo para poder insertar ordenes limitadas cada "x" pips??
lo he intentado y no tengo forma de que se pongan... solo consigo una pero no como yo quiero..
Amm y bueno esto ya seria perfecto, si alguien sabe de algun experto que mire cuales de las ordenes anteriores se han cerrado y las abra otra vez (pero solo las que se han cerrado...)
Muchas gracias por vuestra ayuda!!
Re: Ayuda Programando metatrader
Publicado: 11 Feb 2010 16:40
por theblade
Al final lo conseguí!!
Mira que era sencillisimo....
Código: Seleccionar todo
double a;
int start()
{
for(int i=1;i<=5;i++)
{ OrderSend(Symbol(),OP_BUYSTOP,0.01,Ask + a+ 0.0020,3,0, Ask+ a +0.0030);
a = a + 0.0020;
}
}
Asi se crean 5 ordenes limites...
ahora solo me falta un EA que cada vez que se cierre alguna de las ordenes BUYSTOP me cree otra vez esa misma orden...
Si me podeis ayudar se agredeceria
Re: Ayuda Programando metatrader
Publicado: 16 Feb 2010 15:42
por theblade
ya lo tengo solucionado!!
era tambien muy facil.... era con la funcion
Código: Seleccionar todo
OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY)
alguien sabe donde puedo encontrar en Castellano (si puede ser) para que sirve cada función predefinida?? es que voy tan lento porque me tengo que entretener en buscar por Internet cada cosa que quiero hacer...
Gracias, aunque me estoy respondiendo yo solito!! xD
Re: Ayuda Programando metatrader
Publicado: 19 Feb 2010 13:17
por elcctrro
lo que yo tengo es esto y por supuesto la web de metatrader:
http://www.mql4.com/
Un saludo.
Re: Ayuda Programando metatrader
Publicado: 19 Feb 2010 13:23
por elcctrro
este es el segundo libro, un saludo.
Re: Ayuda Programando metatrader
Publicado: 21 Feb 2010 01:49
por theblade
Muchas gracias, le echare un vistazo
Re: Ayuda Programando metatrader
Publicado: 15 Mar 2010 17:14
por theblade
Buenas,
otra vez me he quedado atrancado en un problemita... yo creo k es sencillo pero no me sale, si alguien me puede decir donde me equivoco...
voy a explicar un poco el codigo antes de pegarlo...
lo que quiero hacer es abrir las ordenes cerradas y ponerlas en pendiente... es decir recorrer la lista de historico y compararla con la lista trades, el que no este pues se crea... ahora mismo lo hago buscando en la lista la ultima orden cerrada y creandola pero claro si hay un movimiento muy fuerte de repente se cierran 3 operaciones y solo se abriria la ultima... x eso ahora estoy intentando hacer que revise toda la lista...
aqui va el codigo para recorrer las dos listas...
Código: Seleccionar todo
int n, m, precioapertura, precioapertura2, dni, crearorden, comentario, comentario2, dia;
bool encontrado = false;
//----------------------------------------------------------+
int start()
{
dia = TimeDayOfYear(TimeCurrent())-(TimeDayOfWeek(TimeCurrent())+1);
for(n=OrdersHistoryTotal(); n > 0; n--)
{
if ( OrderCloseTime() >= dia)
{
m = OrdersTotal();
while (( m > 0) && (!encontrado))
{
OrderSelect ( m, SELECT_BY_POS, MODE_TRADES);
precioapertura2 = OrderOpenPrice();
if ( OrderComment() == "compra")
{
comentario = 1;
}
else if (OrderComment() == "venta")
{
comentario = 2;
}
else
{
comentario = 0;
}
OrderSelect ( n, SELECT_BY_POS, MODE_HISTORY);
precioapertura = OrderOpenPrice();
dni = OrderTicket();
if ( OrderComment() == "compra[tp]")
{
comentario2 = 1;
}
else if (OrderComment() == "venta[tp]")
{
comentario2 = 2;
}
else
{
comentario2 = 0;
}
if ((precioapertura == precioapertura2) && (comentario == comentario2) && (comentario == 0))
{
crearorden = 1;
encontrado = true;
}
else
{
crearorden = 0;
}
m--;
}
if (crearorden == 0)
{
OrderSelect(dni,SELECT_BY_TICKET);
OrderSend(OrderSymbol(),OP_BUYLIMIT,0.01,OrderOpenPrice(),3,0,OrderTakeProfit(),"compra");
OrderSend(OrderSymbol(),OP_SELLLIMIT,0.01,OrderOpenPrice(),3,0,OrderTakeProfit(),"venta");
}
}
}
}
lo primero que no me cuadra es al seleccionar la orden con select ticket.... en la parte del experto no me aparece la orden... y no se por que ocurre...
las ordenes habria que cambiarlas dependiendo si estan encima o debajo del precio... xo es solo una prueba.
Perdonad por el tocho pero intento que el que me pueda ayudar le quede claro.
GRACIAS!!
Re: Ayuda Programando metatrader
Publicado: 15 Mar 2010 22:32
por elcctrro
if( crearorden==0 )
{
OrderSelect(dni,SELECT_BY_TICKET);
// Aqui a hay que determinar si OrderOpenPrice() de la orden pendiente es mayor o menor que el Bid o el Ask actual.
// porque de ello de pende que la orden "compra" deba ser lanzada como BUYLIMIT o BUYSTOP igual para la "venta"
OrderSend(OrderSymbol(),OP_BUYLIMIT,0.01,,3,0,OrderTakeProfit(),"compra");
OrderSend(OrderSymbol(),OP_SELLLIMIT,0.01,OrderOpenPrice(),3,0,OrderTakeProfit(),"venta");
}
Un saludo.
Re: Ayuda Programando metatrader
Publicado: 16 Mar 2010 15:51
por theblade
elcctrro escribió:if( crearorden==0 )
{
OrderSelect(dni,SELECT_BY_TICKET);
// Aqui a hay que determinar si OrderOpenPrice() de la orden pendiente es mayor o menor que el Bid o el Ask actual.
// porque de ello de pende que la orden "compra" deba ser lanzada como BUYLIMIT o BUYSTOP igual para la "venta"
OrderSend(OrderSymbol(),OP_BUYLIMIT,0.01,,3,0,OrderTakeProfit(),"compra");
OrderSend(OrderSymbol(),OP_SELLLIMIT,0.01,OrderOpenPrice(),3,0,OrderTakeProfit(),"venta");
}
Un saludo.
Gracias por tu respuesta, eso lo se, por eso he puesto que es una prueba lo de lanzar las ordenes... lo que me ocurre esk el bucle no coge las ordenes cerradas... y no se xq, coge algunas y otras no...
Re: Ayuda Programando metatrader
Publicado: 16 Mar 2010 17:06
por elcctrro
Si estas probando con la Prueba de estrategia" es puede ser normal, ami con expertos que se que funcionan correctamente alguans veces me abre las ordenes y otras no, dicen que es porque simulan los fallos de la operativa normal... pruebalo corriendo en tiempo real sobre la demo.
Un saludo.
Re: Ayuda Programando metatrader
Publicado: 16 Mar 2010 23:10
por theblade
elcctrro escribió:Si estas probando con la Prueba de estrategia" es puede ser normal, ami con expertos que se que funcionan correctamente alguans veces me abre las ordenes y otras no, dicen que es porque simulan los fallos de la operativa normal... pruebalo corriendo en tiempo real sobre la demo.
Un saludo.
Estoy utilizando el tiempo real con demo en el experto... creo k tiene k ser algun problema en el código, algo estoy haciendo mal pero no lo veo

Re: Ayuda Programando metatrader
Publicado: 16 Mar 2010 23:33
por elcctrro
Si me pasas el expert por email te lo miro.
Un saludo
Re: Ayuda Programando metatrader
Publicado: 24 Abr 2010 13:02
por morph3us
guau gracias por la información, muy útil.
Un saludo