ayuda con takeprofit y trailing stop
Publicado: 15 Feb 2011 22:47
Alguien me puede ayudar a colocar un takeprofit y un traling stop a este EA ?
gracias
//+------------------------------------------------------------------+
//| SimpleEMA.mq4 |
//| Programando Forex |
//| http://www.programandoforex.com |
//+------------------------------------------------------------------+
#property copyright "Programando Forex"
#property link "http://www.programandoforex.com"
extern int LargaEMA = 20;
extern int CortaEMA = 5;
extern int Size = 1;
int start()
{
static datetime MarcaTiempo = 0;
static int ticket;
int señal;
datetime NuevaTiempo = Time[0];
// A cada nueva barra
if(MarcaTiempo != NuevaTiempo)
{
// Tomamos datos de las dos EMAs (Corta y Larga).
double emaLargaA = iMA(NULL,0,LargaEMA,0,1,4,3);
double emaLargaB = iMA(NULL,0,LargaEMA,0,1,4,1);
double emaCortaA = iMA(NULL,0,CortaEMA,0,1,4,3);
double emaCortaB = iMA(NULL,0,CortaEMA,0,1,4,1);
// Calculamos si se han cruzado
if(emaCortaA < emaLargaA && emaCortaB > emaLargaB)
señal = 0; // ema corta cruza de abajo a arriba.
else if(emaCortaA > emaLargaA && emaCortaB < emaLargaB)
señal = 1; // ema corta cruza de arriba a abajo.
else
señal = -1; // no hay cruce.
// Si no hay órden abierta y hay señal podemos operar.
if(OrdersTotal() == 0 && señal != -1)
{
if(señal == 0) // Señal 0 -> COMPRA
ticket = OrderSend(Symbol(),OP_BUY,Size,Ask,3,0,0,NULL,23,0,Green);
else if(señal == 1) // Señal 1 -> VENTA
ticket = OrderSend(Symbol(),OP_SELL,Size,Bid,3,0,0,NULL,23,0,Green);
}
// Si hay una orden abierta y hay señal en contra cerramos
if(OrdersTotal() != 0 && señal != -1)
{
// Seleccionamos la orden.
OrderSelect(ticket,SELECT_BY_TICKET);
//Comprobamos si la señal es contraria
if(OrderType() == 0 && señal == 1)
OrderClose(ticket,Size,Bid,3,Yellow); // Cerramos la compra.
if(OrderType() == 1 && señal == 0)
OrderClose(ticket,Size,Ask,3,Yellow); // Cerramos la venta.
}
MarcaTiempo = NuevaTiempo;
}
return(0);
}
//+------------------------------------------------------------------+
gracias
//+------------------------------------------------------------------+
//| SimpleEMA.mq4 |
//| Programando Forex |
//| http://www.programandoforex.com |
//+------------------------------------------------------------------+
#property copyright "Programando Forex"
#property link "http://www.programandoforex.com"
extern int LargaEMA = 20;
extern int CortaEMA = 5;
extern int Size = 1;
int start()
{
static datetime MarcaTiempo = 0;
static int ticket;
int señal;
datetime NuevaTiempo = Time[0];
// A cada nueva barra
if(MarcaTiempo != NuevaTiempo)
{
// Tomamos datos de las dos EMAs (Corta y Larga).
double emaLargaA = iMA(NULL,0,LargaEMA,0,1,4,3);
double emaLargaB = iMA(NULL,0,LargaEMA,0,1,4,1);
double emaCortaA = iMA(NULL,0,CortaEMA,0,1,4,3);
double emaCortaB = iMA(NULL,0,CortaEMA,0,1,4,1);
// Calculamos si se han cruzado
if(emaCortaA < emaLargaA && emaCortaB > emaLargaB)
señal = 0; // ema corta cruza de abajo a arriba.
else if(emaCortaA > emaLargaA && emaCortaB < emaLargaB)
señal = 1; // ema corta cruza de arriba a abajo.
else
señal = -1; // no hay cruce.
// Si no hay órden abierta y hay señal podemos operar.
if(OrdersTotal() == 0 && señal != -1)
{
if(señal == 0) // Señal 0 -> COMPRA
ticket = OrderSend(Symbol(),OP_BUY,Size,Ask,3,0,0,NULL,23,0,Green);
else if(señal == 1) // Señal 1 -> VENTA
ticket = OrderSend(Symbol(),OP_SELL,Size,Bid,3,0,0,NULL,23,0,Green);
}
// Si hay una orden abierta y hay señal en contra cerramos
if(OrdersTotal() != 0 && señal != -1)
{
// Seleccionamos la orden.
OrderSelect(ticket,SELECT_BY_TICKET);
//Comprobamos si la señal es contraria
if(OrderType() == 0 && señal == 1)
OrderClose(ticket,Size,Bid,3,Yellow); // Cerramos la compra.
if(OrderType() == 1 && señal == 0)
OrderClose(ticket,Size,Ask,3,Yellow); // Cerramos la venta.
}
MarcaTiempo = NuevaTiempo;
}
return(0);
}
//+------------------------------------------------------------------+