Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 570

 
dmitriyriy666:

Gracias. Sobre TimeCurrent es cierto, mi hora no coincide con la del servidor. Lo he arreglado, pero sigue sin funcionar... No escribe ningún error en el registro.


P.D. En mi post anterior, el código sin espacios fue insertado de alguna manera. Pero creo que he puesto todas las llaves correctamente.

Por favor, especifica si has corregido todo lo que he escrito o sólo TimeLocal() a TimeCurrent()
 
AlexeyVik:
Especifica, ¿arreglaste todo lo que escribí o sólo TimeLocal() a TimeCurrent()


Corregidos los tangos a ints, eliminadas las comillas, y probado sin turno - sólo al cruzar, y probado con iTime en todas partes y allí estar. No lo entiendo en absoluto. Ahora lo reescribí para abrir inmediatamente el bucle allí después de encontrar el tiempo, y esto es lo que obtuve:

extern int Magic = 66622210;
extern double Lot = 400.0;
color Colorrr;
datetime Vremyaaa;
//datetime shi = 120;
color col = Black; 
int operacia;
//-
void OnTick()
{
   int AllObject = ObjectsTotal(); 
   for ( int i = 0; i < AllObject; i++)
   {
    int kolpos = 0;
    string NameObj = ObjectName(i); 
    Colorrr = ObjectGet(NameObj, OBJPROP_COLOR);
    Vremyaaa = ObjectGet(NameObj, OBJPROP_TIME);
    if((Colorrr == Green)||(Colorrr == Aqua)){operacia = OP_BUY;}
    if((Colorrr == Red)||(Colorrr == Purple)){operacia = OP_SELL;}
    if(Vremyaaa == TimeCurrent())
      {
       for (int pos = 0; pos < OrdersTotal(); pos++)
          {
           if(OrderSelect(pos, SELECT_BY_POS, MODE_TRADES) == true)
             {
              if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
                {
                 kolpos++;
                }
             }   
          }
          
       if(kolpos == 0)
         {
           printf("otkrivaem order");
           int ticket = OrderSend(Symbol(), operacia, Lot, Bid, 10, 0, 0, "5", Magic, 0, col);
         }  
              
            
      }
    }
 
}

¿Tal vez sea porque iTimeCurrent da la hora en segundos y se desliza en un tiempo par?

 

¿Existe alguna función o variable que devuelva el estado de parada forzada del EA (esto es cuando se pulsa "Stop") en modo test?

 
dmitriyriy666:

Corregidos los tangos a ints, eliminadas las comillas, y probado sin turno - sólo al cruzar, y probado con iTime en todas partes y allí estar. No lo entiendo en absoluto. Ahora lo reescribí para abrir inmediatamente el bucle allí después de encontrar el tiempo, y esto es lo que obtuve:

¿Tal vez la cosa es que TimeCurrent da tiempo a los segundos y se desliza hasta el tiempo?

Sí, lo más probable es que no le haya prestado atención. Es mejor que pongas Time[0] o puedes usar . varias conversiones de TimeCurrent() a cadena a minutos y de vuelta de cadena a datetime
 
qomment:

¿Existe alguna función o variable que devuelva el estado de parada forzada del EA (esto es cuando se pulsa "Stop") en modo test?

IsStopped()
 
AlexeyVik:
Sí, probablemente no presté atención a eso. Mejor pon Time[0] o puedes a través de . varias conversiones de TimeCurrent() a cadena a minutos y de vuelta de cadena a datetime


El tiempo[0] tampoco ha funcionado. Necesito tiempo sin segundos: ¿cómo lo consigo? He intentado if(Vremyaaa == TimeToString(TimeCurrent(), TIME_DATE|TIME_MINUTES)) no funciona...
 
¿hay un indicador de tick que muestre el tiempo de cada tick en lugar de mostrar sólo los ticks como un mt4 normal
 

Buenas tardes,

Recibo una advertencia durante la compilación

posible pérdida de datos debido a la conversión de tipos

en la línea:

int Stop_Loss = MarketInfo(Symbol(),MODE_STOPLEVEL);

La descripción de MarketInfo dice que devuelve el tipo double.

Pero el nivel de parada es un entero y quiero utilizarlo

como un número entero...

... ¿Es culpa de los desarrolladores, o la advertencia es correcta y yo no la entiendo?

 

Buen tiempo señores, decidí empezar a postear en este tema tonto, si alguien tiene algún consejo.

MT4 está perdiendo la red - el reloj del servidor no hace tictac, pero el "estado de la conexión" muestra que todo está bien. Internet está garantizado y no está ocupado de ninguna manera.

Esto sucede muchas veces al día, el cambio del corredor no afecta a la situación. El terminal se queda atascado en alguna posición y parece que puede quedarse en esta posición para siempre.

Se agradecerá cualquier consejo.

 

Buenas tardes.

¿Puedes decirme qué broker tiene el mínimo retraso (ping) en MT4?