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

 
buxs:

¡Buenos días o noches! Una pregunta para los desarrolladores de mt4 y todos los demás también.

¿Cuáles son los requisitos mínimos del sistema para el cliente MT?

Quiero ejecutarlo en mi viejo hardware: Athlon 800mg, 512mb, XP SP3. Cuando ejecuto MT 4 o 5, se apaga después de 2 segundos. Está claro que el problema no está en el bobinado ni en el hardware, este hardware funciona con Visual Studio con depurador (yo mismo soy programador), y la excepción no se produce en el sistema (ya que mi depurador no funciona). Supongo que al propio cliente no le gusta algo y por eso se cierra. Así que la pregunta, ¿cuál es la razón y lo que mt no le gusta, realmente la frecuencia de la CPU ? ))

A MT4 no le gusta el depurador desde la build 226, a MT5 desde el principio.
 
buxs:

¡Buenos días o noches! Una pregunta para los desarrolladores de mt4 y todos los demás también.

¿Cuáles son los requisitos mínimos del sistema para el cliente MT?

Quiero ejecutarlo en mi viejo hardware: Athlon 800mg, 512mb, XP SP3. Cuando ejecuto MT 4 o 5, se apaga después de 2 segundos. Está claro que el problema no está en el bobinado ni en el hardware, este hardware funciona con Visual Studio con depurador (yo mismo soy programador), y la excepción no se produce en el sistema (ya que mi depurador no funciona). Supongo que al propio cliente no le gusta algo y por eso se cierra. Así que la pregunta, ¿cuál es la razón y lo que mt no le gusta, realmente la frecuencia de la CPU ? ))

Procesadores que cumplen los requisitos mínimos para ejecutar MetaTrader 4
 


Gracias por el enlace. Ahora está claro que MT usa SSE3, pero ese gizmo no tiene estas instrucciones establecidas, y ahora entiendo esos cuelgues sin logs :)

Es una pena, yo también quería hacer funcionar este viejo muchacho para el autotrading...

 

Hola.

Tengo una pregunta sobre la función iCustom: Tengo un indicador de flecha ordinario que contiene dos buffers - una flecha hacia abajo y una flecha hacia arriba. Hice un Asesor Experto usando este indicador y en lugar de abrir órdenes prescribí Alerta "flecha abajo" y"flecha arriba" para probar, como resultado ambos mensajes aparecen en cada tick y esto sucede durante todo el período de prueba. Los valores en ambos buffers se muestran con Alerta y tienen el mismo valor para ambos buffers en cada tick - 214783647.

No sé qué es lo que falla y qué condiciones hay que aplicar en el Expert Advisor para que mis operaciones se abran cuando la flecha llega y no en cada tick.

P.D. He probado otro indicador (dibuja el histograma en una ventana separada) aquí en algunos ticks da el valor del precio actual mezclado con el número214783647, es decir, son uno tras otro en cada tick, y luego sólo214783647

Código del indicador:

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 LimeGreen
#property indicator_color2 Red

double CrossUp[];
double CrossDown[];
extern int FasterEMA = 5;
extern int SlowerEMA = 8;
extern bool SoundON=true;
double alertTag;
 double control=2147483647;
 
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0, DRAW_ARROW, EMPTY,1);
   SetIndexArrow(0, 233);
   SetIndexBuffer(0, CrossUp);
   SetIndexStyle(1, DRAW_ARROW, EMPTY,1);
   SetIndexArrow(1, 234);
   SetIndexBuffer(1, CrossDown);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//---- 

//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start() {
   int limit, i, counter;
   double fasterEMAnow, slowerEMAnow, fasterEMAprevious, slowerEMAprevious, fasterEMAafter, slowerEMAafter;
   double Range, AvgRange;
   int counted_bars=IndicatorCounted();
//---- check for possible errors
   if(counted_bars<0) return(-1);
//---- last counted bar will be recounted
   if(counted_bars>0) counted_bars--;

   limit=Bars-counted_bars;
   
   for(i = 0; i <= limit; i++) {
   
      counter=i;
      Range=0;
      AvgRange=0;
      for (counter=i ;counter<=i+9;counter++)
      {
         AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]);
      }
      Range=AvgRange/10;
       
      fasterEMAnow = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i);
      fasterEMAprevious = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i+1);
      fasterEMAafter = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i-1);

      slowerEMAnow = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, i);
      slowerEMAprevious = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, i+1);
      slowerEMAafter = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, i-1);
      
      if ((fasterEMAnow > slowerEMAnow) && (fasterEMAprevious < slowerEMAprevious) && (fasterEMAafter > slowerEMAafter)) {
         CrossUp[i] = Low[i] - Range*0.5;
      }
      else if ((fasterEMAnow < slowerEMAnow) && (fasterEMAprevious > slowerEMAprevious) && (fasterEMAafter < slowerEMAafter)) {
          CrossDown[i] = High[i] + Range*0.5;
      }
        
  }
   return(0);
}
В советнике сделал следующее:
double ind1up0 = iCustom(NULL,0,"FXind-1",5,8,0,0);    //Стрелка вверх, на покупку на текущем баре
double ind1down0=iCustom(NULL,0,"FXind-1",5,8,1,0);    //Стрелка вниз, на продажу на текущем баре

if(ind1up0>0)Buy=true;
if(ind1down0>0)Sell=true;
 
if(ind1up0!=EMPTY)Buy=true;
if(ind1down0!=EMPTY)Sell=true;
 
midorum:
Gracias. Resultó ser fácil.
 
midorum:

También deberíamos añadir una comprobación de EMPTY_VALUE
 
midorum:

¡Ah, no! Ambos búferes se llenan con214783647 en cada tick, haya o no flecha.

¿Es esto normal?

 
Vinin:

También deberíamos añadir una comprobación de EMPTY_VALUE
Lo siento,EMPTY_VALUE, noEMPTY
 
Experto:

¡Ah, no! Ambos búferes se llenan con214783647 en cada tick, haya o no flecha.

¿Es esto normal?

https://docs.mql4.com/ru/constants/special
Razón de la queja: