[¡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 260

 

Hola ciudadanos.

Para no saturar el foro realmente, he decidido escribir en este hilo. Respuesta Por favor, en mis dos ordenadores había (y ahora sólo queda uno, después de reinstalar Windows a toda prisa) MetaTrader 4 con la misma cuenta, tuve una tormenta de ideas y perdí la contraseña, así que donde aún queda MT4 sin tocar, puedo ver, e iniciar sesión, y trabajar con esta cuenta normalmente, pero veo la contraseña sólo bajo los asteriscos. He visto que en MT4 en el cuadro de diálogo para introducir el número y la contraseña hay una casilla de verificación "Almacenar información personal", ¿puedo ver este archivo en algún lugar y de alguna manera, y estará la contraseña en él?

 
vovdec >> :

... Perdí mi contraseña, así que aquí es donde MT4 sigue sin ser tocado, puedo ver, e iniciar sesión, y trabajar con esta cuenta normalmente, pero sólo veo la contraseña bajo los asteriscos. He visto en MT4 que en el cuadro de diálogo para introducir el número y la contraseña hay una casilla de verificación "Almacenar información personal", ¿puedo ver este archivo en algún lugar y de alguna manera, y estará la contraseña en él?

La contraseña en MT4 se almacena de forma encriptada y su ubicación no se hace pública.

Algunos de los bisontes locales lo han sacado, pero es un reto, por decirlo suavemente.

Al copiar/transferir la carpeta de MT4, se pierde la contraseña. Hecho por motivos de seguridad.

La contraseña de cualquier cuenta real se puede restaurar a través de TP.

De las demostraciones es mejor guardarla o cambiarla por la que no olvidará, inmediatamente después

>> Es mejor guardarlo o cambiarlo después de abrir la demo.

 

Hola. He construido un pequeño EA aquí que sólo abre una posición por tiempo. Básicamente todo funciona, pero no puedo probarlo en el historial. Ayúdame a entenderlo.

//+------------------------------------------------------------------+
//| Midnight.mq4 |
//| BaceK |
//| |
//+------------------------------------------------------------------+
#property copyright "BaceK"
#enlace de la propiedad ""

//---- parámetros de entrada
extern int Dist_SL=20;
extern int_TP=30;
extern double Prots=0,35;
//+------------------------------------------------------------------+
//| función de inicialización de expertos |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| función de desinicialización experta |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| función de inicio experto |
//+------------------------------------------------------------------+
int inicio()
{

string Symb=Símbolo(); // instrumento financiero.
int Min_Dist=MarketInfo(Symb,MODE_STOPLEVEL);// Min_Dist
//Alert("Distancia mínima = ",Distancia mínima);
double Min_Lot=MarketInfo(Symb,MODE_MINLOT);//Tamaño de lote mínimo
//Alert("Tamaño de lote mínimo = ",Lote_mínimo);
double Free =AccountFreeMargin(); // Free significa
//Alert("Dinero libre = ",Libre);
double One_Lot=MarketInfo(Symb,MODE_MARGINREQUIRED);/Valor de One_Lot
//Alerta("Coste por lote = ",One_Lot);
double Lote=MathFloor((Libre*Prots)/(Un_Lote*Min_Lote))*Min_Lote;//Lotes
//Alert("Barras = ",Lote);
//Alert("Bares = ",Bares);

//-----------------------------------------------
// Comprobación de espacios libres
si ( Lot != 0 )
{
//Alert("Trabajo en adelante = ",OrderSymbol());

// Comprobación del tiempo de trabajo
int h=Hora(HoraActual());
si ( h < 1 )
{
for(int i=1; i<=TotalPedidos(); i++) // Bucle de pedidos
{
if(OrderSelect(i-1,SELECT_BY_POS)==true) // si hay un
{
// Análisis de pedidos:
if (OrderSymbol()!= Symb) // No es nuestro instrumento financiero.
{
//Alert("Trabajo siguiente = ",Símbolo de orden());
// Determinación de la forma de apertura
si (iOpen(NULL,PERIOD_D1,1)-iClose(NULL,PERIOD_D1,1)< 0)
{
//Alert("Posición larga = ",iOpen(NULL,PERIOD_D1,1)-iClose(NULL,PERIOD_D1,1));
int ticket=OrderSend(Symb,OP_BUY,Lot,Ask,3,Bid-Dist_SL*Point,Bid+Dist_TP*Point);
}sin embargo
{
//Alert("Posición corta = ",iOpen(NULL,PERIOD_D1,1)-iClose(NULL,PERIOD_D1,1));
int ticket1=OrderSend(Symb,OP_SELL,Lot,Bid,3,Bid+Dist_SL*Point,Bid-Dist_TP*Point);
}
if (ticket>0 || ticket1>0) // ha funcionado :)
{
// Alerta ("Se establece una orden de VENTA ",ticket || ticket1);
Dormir(5000);
}sin embargo
{
int Error=GetLastError(); // falló :(
switch(Error) // Errores insalvables
{
case 129:Alert("Precio erróneo. Inténtelo de nuevo...");
RefreshRates(); // Actualizar datos.
return(0);
case 135:Alert("El precio ha cambiado. Inténtelo de nuevo...");
RefreshRates(); // Actualizar datos.
return(0); // Siguiente iteración.
case 146:Alert("El subsistema de comercio está ocupado. Inténtelo de nuevo...");
Sleep(500); // Solución simple.
RefreshRates(); // Actualizar datos.
return(0); // Siguiente iteración
}
switch(Error) // Errores críticos
{
caso 2 : Alerta("Error general;)
break; // Salir del interruptor
caso 5 : Alerta("Versión antigua del terminal cliente.");
return(0); // Salir del interruptor.
caso 64 : Alerta("Cuenta bloqueada.");
return(0); // Salir en el interruptor
caso 133:Alerta("Comercio prohibido");
return(0); // Salir del interruptor
por defecto: Alert("Se ha producido un error ",Error);// Otras opciones
}
//Alert("GetLastError();
return(0);
}


}sin embargo
{
//Alert("Salida por Symb = ",Symb);
return(0);
}
}sin embargo
{

//Alert("Salida sin orden = ",Symb);
si (iOpen(NULL,PERIOD_D1,1)-iClose(NULL,PERIOD_D1,1)< 0)
{
//Alert("Posición larga = ",iOpen(NULL,PERIOD_D1,1)-iClose(NULL,PERIOD_D1,1));
int ticket2=OrderSend(Symb,OP_BUY,Lot,Ask,3,Bid-Dist_SL*Point,Bid+Dist_TP*Point);
}sin embargo
{
//Alert("Posición corta = ",iOpen(NULL,PERIOD_D1,1)-iClose(NULL,PERIOD_D1,1));
int ticket3=OrderSend(Symb,OP_SELL,Lot,Bid,3,Bid+Dist_SL*Point,Bid-Dist_TP*Point);
}
if (ticket2>0 || ticket3>0) // ha funcionado :)
{
//Alerta ("Orden de venta establecida ",ticket2 || ticket3);
Dormir(5000);
}sin embargo

{
int Error1=GetLastError(); // falló :(
switch(Error1) // Errores insalvables
{
case 129:Alert("Precio erróneo. Inténtelo de nuevo...");
RefreshRates(); // Actualizar datos.
return(0);
case 135:Alert("El precio ha cambiado. Inténtelo de nuevo...");
RefreshRates(); // Actualizar datos.
return(0); // Siguiente iteración.
case 146:Alert("El subsistema de comercio está ocupado. Inténtelo de nuevo...");
Sleep(500); // Solución simple.
RefreshRates(); // Actualizar datos.
return(0); // Siguiente iteración
}
switch(Error1) // Errores críticos
{
caso 2 : Alerta("Error general;)
break; // Salir del interruptor
caso 5 : Alerta("Versión antigua del terminal cliente.");
return(0); // Salir del interruptor.
caso 64 : Alerta("Cuenta bloqueada.");
return(0); // Salir en el interruptor
caso 133:Alerta("Comercio prohibido");
return(0); // Salir del interruptor
por defecto: Alert("Se ha producido un error ",Error1);// Otras opciones
}
Alert("GetLastError();
return(0);
}

}
}

}sin embargo
{
// Alerta("Salida por tiempo = ",Hora());
return(0);
}
}sin embargo
{
//Alert("Salida por lote = ",Lote);
return(0);
}

//----


//Alert ("Script finished -----------------------------");
return(0);
}
//+------------------------------------------------------------------+

 

¿Qué es exactamente lo que no funciona? Si la alerta está tan en el probador que no funciona, sustitúyala por una impresión o un comentario.

En lugar de alertas, pon una función como ésta:

void ComAlert(string text)
{//+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
 if(IsTesting())Comment( text);else Alert( text);
return;
}//+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+


 

El asesor no ha hecho ni una sola operación en el probador. Todo es nulo.

 
BaceK1 >> :

El asesor no ha hecho ni una sola operación en el probador. Todo por cero.

>> ¿Funciona en directo?

 
Funciona en modo directo. Abre la posición en la dirección deseada con los parámetros establecidos. No abre nada en el probador.
 
BaceK1 >> :
Funciona en modo directo. Abre la posición en la dirección deseada con los parámetros establecidos. En el probador no se abre nada.

¿Qué dice el registro? Sé valiente o tengo que sacarte cada palabra.

 

2009.10.16 20:33:19 2009.07.31 22:43 Medianoche EURJPY,Diario: Alerta: Tiempo de espera = 22

Tercero desde abajo Alerta

 
¿Cómo puedo abrir una posición en un momento preciso? Por ejemplo, una posición debe abrirse a las 00.15 hora local.