[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 30

 

Disculpas por salirme del tema. Por favor, avise si alguien conoce un EA que cierre

Me gustaría preguntarles si conocen un Asesor Experto que cierre todas las posiciones de su cuenta una vez que se haya alcanzado el total de TP y SL. Se lo agradezco de antemano.

 
Chatlanen >> :

Disculpas por salirme del tema. Por favor, avise si alguien conoce un EA que cierre

Me gustaría preguntarles si conocen un Asesor Experto que cierre todas las posiciones de su cuenta una vez que se haya alcanzado el total de TP y SL. Gracias de antemano.

Una vez que se haya alcanzado la totalidad de la toma y la pérdida, las posiciones se cerrarán de todos modos. Por favor, exponga la pregunta de forma más precisa

 

Tengo un problema, pulso el botón de compilar y me salen 2 errores:

1. En la línea:

int Fun_Error(int Error) // Función de gestión de errores

'(' - definición de la función inesperada C:\Nsers\Paul\Desktop\Heiniken M.mq4 (209, 14)
2. En la línea:

por defecto: Alert('Se ha producido un error no identificado', Error); // Otras opciones

'Error' - variable no definida C:\NUsers\Pàâåë\NDesktop\NHeiniken M.mq4 (242, 53)

Tengo una pregunta - ¿es Fun_Error() una función estándar o hay que escribirla (tomé esta parte del código de otro EA)?

El segundo error es consecuencia del primero, no puedo entender cuál puede ser el problema((.

 

cambiar el nombre de la variable por err, por ejemplo

 
JavaDev >> :

cambiar el nombre de la variable por, por ejemplo, err

ahora no puede encontrar err(

 
Mostrar el código de la función
 
  //-----------------------------------------------------------10-+
int Fun_Error(int Err) // Fie de gestión de errores
{
switch(Err)
{ // Errores que pueden ser superados.
caso 4: Alerta("El servidor de comercio está ocupado. Inténtelo de nuevo...");
Sleep(3000); // Solución simple.
return(1); // Salir de la función.
case 135:Alert("El precio ha cambiado. Inténtelo de nuevo...");
RefreshRates(); // Actualizar datos.
return(1); // Salir de la función.
case 136:Alert("No hay precio. Esperando un nuevo tick...");
while(RefreshRates()==false) // Till a new tick
Sleep(1); // Retraso en el bucle
return(1); // Salir de la función
case 137:Alerta("El corredor está ocupado. Inténtelo de nuevo...");
Sleep(3000); // Solución simple.
return(1); // Salir de la función.
case 146:Alert("El subsistema de comercio está ocupado. Inténtelo de nuevo...");
Sleep(500); // Decisión simple
return(1); // Salir de la función
// Errores críticos
caso 2: Alert("Error general;)
return(0); // Salir de la función.
caso 5: Alert("Versión antigua del terminal.");
Work=false; // Ya no funciona
return(0); // Salir de la función
caso 64: Alerta("Cuenta bloqueada.");
Work=false; // Ya no funciona
return(0); // Salir de la función
caso 133:Alerta("Prohibido comerciar");
return(0); // Salir de la función
caso 134:Alerta("No hay suficiente dinero para ejecutar la transacción");
return(0); // Salir de la función
por defecto: Alert("Se ha producido un error no identificado", Err); // Otras opciones
return(0); // Salir de la función
}
}
//-------------------------------------------------------------- 11 --
int New_Stop(int Parametr) // Comprueba la parada.
{
int Min_Dist=MarketInfo(Symb,MODE_STOPLEVEL);// Distancia mínima
if (Parametr<Min_Dist) // Si es menor de lo permitido.
{
Parametr=Min_Dist; // Establecer la tolerancia.
Alert("La distancia de parada ha aumentado;)
}
return(Parametr); // Valor de retorno.
}
//-------------------------------------------------------------- 12 --
 
¿Hay algún compilador práctico en algún lugar que cuente los pájaros? Es muy difícil contar los errores en el código((
 

Quería que mi Asesor Experto enviara un pequeño informe al correo a las 8 y a las 11:30 de la mañana, así

if(Hour()==8 && Time[z]!= LastTimeHS)
SendMail(""," Balanse "+AccountBalance()+" "+AccountCurrency()+
" \n Total Orders " +OrdersHistoryTotal()+
" \n Open Orders "+OrdersTotal()+
" \n Orders Profit "+AccountProfit()+
" \n Equity " +AccountEquity()+" "+AccountCurrency());
LastTimeHS = Time[z];
return;

if(Hour()==11 && Minute()==30 && Time[z]== LastTimeHS)
SendMail(""," Balanse "+AccountBalance()+" "+AccountCurrency()+
" \n Total Orders " +OrdersHistoryTotal()+
" \n Open Orders "+OrdersTotal()+
" \n Orders Profit "+AccountProfit()+
" \n Equity " +AccountEquity()+" "+AccountCurrency());
LastTimeHS = 0;
return;


Este código corta el Expert Advisor por alguna razón (lo puse en el lugar equivocado, al principio) y envía el correo electrónico cada 5 minutos (parece que es en cada nueva vela). Por favor, ayúdenme a entender qué es lo que he estropeado, no puedo entender qué es lo que está mal...

 
Reshetov >> :

Una vez alcanzadas las pérdidas y ganancias, todas las posiciones se cerrarán igualmente. Quizás quieras ser un poco más específico.

Digamos que tengo 5 posiciones diferentes abiertas (no tienen TP y SL), una vez que el beneficio total será de +$100 o -$100, necesito cerrar todas las órdenes, independientemente

si están en el lado positivo o en el negativo