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

 
evillive:
si hay errores durante la compilación, no aparecerá.
No, ¡¡¡no hay errores!!!
 
PozitiF:

Gracias por la respuesta. Yo mismo he encontrado (Google lo sabe casi todo) una solución de este tipo:

      int       timeframe;          // временной период графика
      double    or_op_time;         // время открытия последнего ордера
      int MaxBar = 3;               // через сколько свечей закрыть ордер
      or_op_time = Last_OrderOpTime(asset);
      
                          //  КРИТЕРИЙ ЗАКРЫТИЯ БАЙ
       
       if(!ClsB && OrderType()==OP_BUY && iBarShift( asset, timeframe, or_op_time) > MaxBar)    ClsB = true;

Parece que funciona claramente, pero aún no soy bueno con las variables estáticas.

Y una pregunta relacionada: que alguien le explique a un novato la lógica del siguiente fragmento:

if(lastsignal==Signal)Signal=0; 
else                            
lastsignal=Signal;              

Y mientras que a la variable local Señal se le asignan los valores 1 o 2 por condiciones, a la global Señal de duración no se le asignan valores en ningún sitio.

Y otra cosa: no entiendo cómo una variable con un valor aún no definido puede compararse con algo?

   if(timeCheckSignal!=Time[0])        //МОЙ КОММЕНТ: если время открытия позиции (КОТОРОЕ ЕЩЕ НЕ ОПРЕДЕЛЕНО)...
                                       //...не равно времени открытия текущего бара, то...

Ayúdame a entender. Gracias.

ZS: Pero lo más interesante, y para mí nada comprensible, es el comentario del desarrollador de la plantilla a este fragmento:

//+------------------------------------------------------------------+
// Если время торговли не истекло и мы не открывали позицию на этом баре: 
//+------------------------------------------------------------------+
 
No sé cómo puedo organizar la comparación de barras en un bucle. Será un bucle dentro de otro bucle.
int start()
  {

   int i,counted_bars=IndicatorCounted();
   int limit=Bars-1;
   if(limit>1) limit=Bars-N;
   if(limit==0) limit=counted_bars;
   if(IsTesting() || IsVisualMode()) limit=N+10;
   for(i=limit;i>=0;i--)
     {
     if(Close[i]>Open[i] && High[i]>High[i+1] && Low[i]>Low[i+1] && High[i+1]>High[i+2] && Low[i+1]>Low[i+2] && High[i+2]>High[i+3] && Low[i+2]>Low[i+3] && High[i+3]>High[i+4] && Low[i+3]>Low[i+4]) buybars++;
      //-------

     if(Open[i]>Close[i] && High[i]<High[i+1] && Low[i]<Low[i+1] && High[i+1]<High[i+2] && Low[i+1]<Low[i+2] && High[i+2]<High[i+3] && Low[i+2]<Low[i+3] && High[i+3]<High[i+4] && Low[i+3]<Low[i+4]) buybars--;

      //-------
      BuyBuffer[i]=buybars;
      }
   return(0);
  }
 
Por favor, aconséjeme, estoy escribiendo un Asesor Experto, compilándolo, sin errores, pero no se encuentra en ninguna parte del Navegador, sólo hay un archivo mq4 en el MetaEditor. Lo he probado en diferentes terminales, todos iguales, aunque antes todo iba bien.
 
antonovff:
Por favor, aconséjenme, estoy escribiendo un Asesor Experto, compilándolo, sin errores, pero no aparece por ningún lado en el navegador, sólo hay un archivo mq4 en el MetaEditor. Lo he probado en diferentes terminales, pero antes todo estaba bien.
Yo también perdí mi EA una vez, después de la compilación, resultó que accidentalmente corrompí el directorio al crear Eperts\MoySovetnik y se colocó en no recuerdo dónde, en mi opinión, la carpeta raíz.
 

Saludos

¿Tiene MT4 una característica o función) Enviar correo interno del terminal a o sms, (por ejemplo, para recibir mensajes de reinicio del servidor, etc.)?

 
PozitiF:
También perdí mi EA después de la compilación, resultó que borré accidentalmente el directorio al crear Eperts\MoySovetnik y se colocó en la carpeta raíz durante la compilación, no recuerdo dónde.
Ya he descargado un nuevo terminal y he creado un EA con una variable declarada en su código. Este EA sólo aparece en el navegador MetaEditor en la parte inferior, después de todos los directorios, como un archivo separado como mq4 y eso es todo, no está en ninguna otra parte, no puedo adjuntarlo al gráfico.
 
Llevo tres meses probando mi EA más sencillo, no sindicador, desde septiembre de este año, y algo no me cuadra: ¿puede ser posible que con un volumen fijo de 0,1 lote un beneficio durante tres meses sea de 29 112 céntimos y ni una sola operación perdedora? ¿Cuál es la trampa, alguien lo sabe?
 
rapid_minus:
Llevo tres meses probando mi EA más sencillo, no sindicador, desde septiembre de este año, y algo no me cuadra: ¿puede ser posible que con un volumen fijo de 0,1 lote un beneficio durante tres meses sea de 29 112 céntimos y ni una sola operación perdedora? ¿Cuál es la trampa, alguien lo sabe?
Hay muchos matices en las pruebas, empezando por el número de barras en el historial, el archivo de cotizaciones, etc. Tres meses no son suficientes, al menos un año. Si no sabes mucho sobre el tema, hay buenas fuentes en YouTube.
 
antonovff:
Ya he descargado un nuevo terminal, he creado un EA en cuyo código se declara una variable, la compilación no da errores. Este EA sólo aparece en el MetaEditor en la parte inferior, después de todos los directorios, como un archivo separado como mq4 y eso es todo, no se muestra en ningún otro lugar y no puedo adjuntarlo al gráfico.

Por eso aparece en la parte inferior, porque está borrando el nombre del directorio. No borre la palabra Expertos cuando escriba un nuevo nombre.


Razón de la queja: