Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
esto es incorrecto : if(totalOrders==0 && Magic==OrderMagicNumber() &&
OrderSelect(i-1 , SELECT_BY_POS,MODE_HISTORY)==true)
porque está llamando a OrderMagicNumber() antes de OrderSelect(), por lo que probablemente se refiera a la llamada anterior.
Oh, lo siento, he expresado mal mi opinión.
Quiero codificar (pero no soy capaz de hacerlo) algo que detenga el comercio del EA (o parte del comercio del EA) si la equidad está por debajo de un valor.
Gracias por tu ayuda Roger09, pero no necesito mostrar la equidad rhe en el gráficoPruebe este EA
CloseAllBuySell - MQL4 Code Base
Utilice su idea y haga un código con algo como
if (AccountEquity()<YourValue) closeallorders();
¿Podría alguien añadir el trailing stop de la EMA al ejemplo de EA de media móvil?
EMA trailing establecida en 1
Entonces cambie la entrada a
Comprar=Abrir[1]>ma && Cerrar[1]>ma;
Sell=Open[1]<ma && Close[1]<ma;
Esto debería hacer un muy buen scalper simple.
Saludos
Beno
Añadir al principio del programa
extern int pips=2;//(o su número de pips)
luego reemplazar
sl = OrderOpenPrice() ;
if ((OrderType() == OP_SELL) && (OrderStopLoss() > OrderOpenPrice()))
sl = OrderOpenPrice() ;[/CODE]
to
[CODE]if ((OrderType() == OP_BUY) && (OrderStopLoss() < OrderOpenPrice()))
sl = OrderOpenPrice() +pips*Point;
if ((OrderType() == OP_SELL) && (OrderStopLoss() > OrderOpenPrice()))
sl = OrderOpenPrice() -pips*Point;¿Puede alguien ayudarme a poner una alerta en este indicador para cuando dibuje una nueva flecha?
Gracias.
No, arréglalo
extern int pips=2;
//+------------------------------------------------------------------+
//| función de inicio del programa de scripting ||.
//+------------------------------------------------------------------+
int inicio()
{
//----
string curr = Símbolo();
int ot = OrdersTotal();
int ords[200], ordType[200], ordTicket[200]; double ordLots[200];
string ordComments[200];
int ix=0;
for (int i=0; i<ot; i++)
{
int o = OrderSelect(i, SELECT_BY_POS);
if (OrderSymbol() == Symbol())
si ((OrderType() == OP_BUY) || (OrderType() == OP_SELL))
{
double sl = 0;
if ((OrderType() == OP_BUY) && (OrderStopLoss() < OrderOpenPrice()))
sl = OrderOpenPrice() +pips*Point;
si ((OrderType() == OP_SELL) && (OrderStopLoss() > OrderOpenPrice()))
sl = OrderOpenPrice() -pips*Point;
si (sl != 0+10)
OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0);
}
}
//----
return(0);
OK, el código ahora se ve así
extern int pips=10;//
//+------------------------------------------------------------------+
//| función de inicio del programa de scripting ||
//+------------------------------------------------------------------+
int inicio()
{
//----
string curr = Símbolo();
int ot = OrdersTotal();
int ords[200], ordType[200], ordTicket[200]; double ordLots[200];
string ordComments[200];
int ix=0;
for (int i=0; i<ot; i++)
{
int o = OrderSelect(i, SELECT_BY_POS);
if (OrderSymbol() == Symbol())
si ((OrderType() == OP_BUY) || (OrderType() == OP_SELL))
{
double sl = 0;
if ((OrderType() == OP_BUY) && (OrderStopLoss() < OrderOpenPrice()))
sl = OrderOpenPrice() +pips*Point;
si ((OrderType() == OP_SELL) && (OrderStopLoss() > OrderOpenPrice()))
sl = OrderOpenPrice() -pips*Point;
si (sl != 0)
OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0);
}
}
//----
return(0);
}
//+------------------------------------------------------------------+
Hola Roger09,
Muchas gracias por tu ayuda con este código. El código de mi script ahora se ve así (agregué los cambios en rojo sólo para esta respuesta, el código en MQ4 se ve igual que el resto que había):
//+------------------------------------------------------------------+
//| función de inicio del programa de script
//+------------------------------------------------------------------+
int inicio()
{
//----
extern int pips=2;//
string curr = Symbol();
int ot = OrdersTotal();
int ords[200], ordType[200], ordTicket[200]; double ordLots[200];
string ordComments[200];
int ix=0;
for (int i=0; i<ot; i++)
{
int o = OrderSelect(i, SELECT_BY_POS);
if (OrderSymbol() == Symbol())
si ((OrderType() == OP_BUY) || (OrderType() == OP_SELL))
{
double sl = 0;
if ((OrderType() == OP_BUY) && (OrderStopLoss() < OrderOpenPrice()))
sl = OrderOpenPrice() +pips*Point;
si ((OrderType() == OP_SELL) && (OrderStopLoss() > OrderOpenPrice()))
sl = OrderOpenPrice() -pips*Point;
si (sl != 0)
OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0);
}
}
//----
return(0);
¿Puedes decirme si lo he entendido bien? Estoy volando a ciegas aquí así que tened paciencia conmigo.
En realidad estará funcionando, pero este código no es bueno. Lamentablemente no conozco tus objetivos principales y no puedo recomendarte otra cosa.