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
Puede alguien ser tan amable de ayudarme a resolver esto:
Hay un problema con el código que he adjuntado debajo de este mensaje..., ¡siempre da la señal al principio de una formación de velas!
esto me ha llevado a entrar en el comercio tarde más especialmente en los marcos de tiempo más altos. Puede usted ayudarnos a que el código dé la alerta sólo cuando el precio actual de la MA suba para la compra y baje para la venta, en lugar de esperar el comienzo de otra vela.
Gracias Archivos adjuntos
Hola Mladen, ¿sabes qué puedo utilizar para desencadenar mi criterio de apertura de operaciones?
Lo que quiero saber es cómo puedo desencadenar una operación si la vela cierra por encima o por debajo de la línea media móvil por 10pips.
El sistema activará la operación basándose en si cierra por encima o por debajo de la línea de media móvil.
Estoy pensando en usar iClose, pero no tengo idea de cómo implementarlo. Aprecio su ayuda.
Gracias.
Ryan
Hola Mladen, ¿sabes qué puedo usar para activar mis criterios de apertura de operaciones?
Lo que quiero saber es cómo puedo desencadenar una operación si la vela cierra por encima o por debajo de la línea media móvil por 10pips.
El sistema activará la operación basándose en si cierra por encima o por debajo de la línea de media móvil.
Estoy pensando en usar iClose, pero no tengo idea de cómo implementarlo. Aprecio su ayuda.
Gracias.
RyanHola Mladen,
He hecho el código, parece estar trabajando, sin embargo, el comercio a veces no se activa cuando los criterios se cumple y no tengo idea de cómo ir sobre él de aquí en adelante.
//+------------------------------------------------------------------+
//---- parámetros de entrada
extern double TakeProfit = 250.0;
extern double Lots = 0.1;
extern double StopLoss = 200.0;
//+------------------------------------------------------------------+
//| función de inicialización de los expertos ||.
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| función de desinicialización experta ||
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| función de inicio experto ||
//+------------------------------------------------------------------+
double pBid, pAsk
datetime newbar;
int inicio()
{
//+------------------------------------------------------------------+
if(newbar==Time[0])return(0);
else newbar=Time[0];
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
double Up_MA = iMA(NULL,0,10,0,MODE_LWMA,PRICE_HIGH,0);
double Dwn_MA = iMA(NULL,0,10,0,MODE_LWMA,PRICE_LOW,0);
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//-- Activar el comercio
//+------------------------------------------------------------------+
int ticket, total;
double CD_Close = iClose(NULL,0,1);
total = OrdersTotal(); // comprueba el número total de operaciones actualmente abiertas
if(total < 2)
{
if (CD_Close >= Up_MA+50*Point)//Hour()==Entry_Hour_1st && Minute()==Entry_Minute_1st)
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,Ask-StopLoss*Point,Ask+TakeProfit*Point,
"Mi EA",Entry_magicNo_1st,0,Green);
return(0);
}
if (CD_Close <= Dwn_MA-50*Point)
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,Bid+StopLoss*Point,Bid-TakeProfit*Point,
"Mi EA",Entry_magicNo_1st,0,Red);
return(0);
}
return(0);
}
return(0);
}
//+------------------------------------------------------------------+
Hola Mladen,
He hecho el código, parece que está funcionando, sin embargo, el comercio a veces no se activa cuando los criterios se cumplen y no tengo idea de cómo hacerlo a partir de aquí.
//+------------------------------------------------------------------+
//---- parámetros de entrada
extern double TakeProfit = 250.0;
extern double Lots = 0.1;
extern double StopLoss = 200.0;
//+------------------------------------------------------------------+
//| función de inicialización de los expertos ||.
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| función de desinicialización experta ||
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| función de inicio experto ||
//+------------------------------------------------------------------+
double pBid, pAsk
datetime newbar;
int inicio()
{
//+------------------------------------------------------------------+
if(newbar==Time[0])return(0);
else newbar=Time[0];
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
double Up_MA = iMA(NULL,0,10,0,MODE_LWMA,PRICE_HIGH,0);
double Dwn_MA = iMA(NULL,0,10,0,MODE_LWMA,PRICE_LOW,0);
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//-- Activar el comercio
//+------------------------------------------------------------------+
int ticket, total;
double CD_Close = iClose(NULL,0,1);
total = OrdersTotal(); // comprueba el número total de operaciones actualmente abiertas
if(total < 2)
{
if (CD_Close >= Up_MA+50*Point)//Hour()==Entry_Hour_1st && Minute()==Entry_Minute_1st)
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,Ask-StopLoss*Point,Ask+TakeProfit*Point,
"Mi EA",Entry_magicNo_1st,0,Green);
return(0);
}
if (CD_Close <= Dwn_MA-50*Point)
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,Bid+StopLoss*Point,Bid-TakeProfit*Point,
"Mi EA",Entry_magicNo_1st,0,Red);
return(0);
}
return(0);
}
return(0);
}
//+------------------------------------------------------------------+¿Puedes mostrar algunos casos en los que debería haber desencadenado una operación y no lo hizo?
Hola Mladen,
Adjunta la captura de pantalla.
Saludos
Ryan
Hola Mladen, ¿podría ser algún tipo de error en algunas líneas lo que está causando este error?
Saludos
Hola Mladen, ¿podría ser algún tipo de error en algunas líneas lo que está causando este error? Saludos
tkuan77
Como primer paso comprueba en la pestaña de diario y expertos del terminal si sale algún mensaje de error
tkuan77 Como primer paso comprueba en la pestaña de diario y expertos del terminal si sale algún mensaje de error ahí
Hola mladen, gracias, el problema ya está resuelto.
Sin embargo, mi siguiente pregunta es ¿cómo puedo ordenar las operaciones en consecuencia?
Por ejemplo:
Cantidad total de operaciones en cualquier momento = 2
1 operación por cada conjunto de criterios. ¿Cómo me aseguro de que el sistema no active más de 1 operación para cada conjunto particular si los criterios se cumplen más de una vez?
Abajo están mis códigos para referencia:
total = OrdersTotal(); // comprueba el número total de operaciones actualmente abiertas
if(total < 2)
{
if (Hour()==Entry_Hour_1st || Hour()==Entry_Hour_2nd)
{
//Si no hay ninguna operación actualmente abierta bajo este criterio, comprueba si se cumplen las condiciones, si es así, activa una operación, si no, no activa una operación.
}
if (Hour()==Entry_Hour_3rd || Hour()==Entry_Hour_4th)
{
//Si no hay ninguna operación abierta bajo este criterio, comprueba si se cumplen las condiciones, si es así, activa una operación, si no, no la activa.
}
}
Agradezco su consejo. Gracias.
Saludos
¿Cómo deben tratarse exactamente las órdenes de los corredores ECN?
¿Cómo deben tratarse exactamente las órdenes de los corredores ECN?
aprendiz de codificador
La única diferencia es que en un broker ECN primero abres una orden con 0 campos sl y tp, y luego modificas la orden (si es necesario) para poner sl y tp, mientras que en un broker "normal" puedes poner sl y tp junto con la apertura de la orden. Todo lo demás es exactamente igual