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

 
TheXpert >> :

Alerta, como opción. Comentario - está bien.

Sustituir while(true) por while(!IsStopped())

Tarde)))

Sí, me olvidé de IsStopped.

 
Svinozavr >> :

Tarde)))

La próxima vez te puedo adelantar :) .

Svinozavr >> :

Escribe la f-fi donde se hará la salida y escribe lo que necesites a través de ella.

Opción.


 
TheXpert >> :

>> Gracias. ¿Es posible cambiar el color del comentario? ¿O sólo blanco?

 
TheXpert >> :
La próxima vez te puedo adelantar :) .

Por cierto sí, gracias, respuesta muy rápida aquí :)

 
Mathers >> :

Gracias. ¿Es posible cambiar el color de los comentarios? ¿O sólo blanco?

>>No, no lo sé.

 

Cuando no es necesario procesar cada tick, ¿cómo puedo hacer que el código se procese sólo cuando aparece una nueva barra?

Seguramente debe haber una función preparada. Lánzame un enlace...


ACTUALIZACIÓN

Gracias, lo he encontrado (:

//+------------------------------------------------------------------+
//|  возвращает признак появления нового бара для указанного периода |
//+------------------------------------------------------------------+
bool isNewBar(int timeFrame)
   {
   bool res=false;
   
   // массив содержит время открытия текущего (нулевого) бара
   // по 7 (семь) таймфреймам
   static datetime _sTime[7];  
   int i=6;
 
   switch ( timeFrame) 
      {
      case 1  : i=0; break;
      case 5  : i=2; break;
      case 15 : i=3; break;
      case 30 : i=4; break;
      case 60 : i=5; break;
      case 240: break;
      case 1440:break;
      default:  timeFrame = 1440;
      }
//----
   if (_sTime[ i]==0 || _sTime[ i]!=iTime(Symbol(), timeFrame,0))
      {
      _sTime[ i] = iTime(Symbol(), timeFrame,0);
      res=true;
      }
      
//----
   return( res);   
   }
 

¿Cómo puedo utilizar el script para establecer mi propia escala en el gráfico?

Las funciones que le indican qué barra se muestra primero están ahí, pero la forma de restablecerla no.

 

Hola a todos, ¿quién puede explicarlo? La función RefreshRates(), ¿es necesario llamarla siempre o cuando un Asesor Experto o un script realiza cálculos largos, funciona automáticamente, por ejemplo, en funciones de manejo de errores?
Segunda pregunta: aquí hay un ejemplo de código, arreglé un error, pasé un parámetro al operador switch...

int start()
  {
      int A = 1000;
      bool B=true;       // Условие успешной работы
//--------------------------------------------------------------
    if(Bars < A)         // Недостаточно баров
    {      
      Alert("Недостаточно баров в окне инструмента.");
      return;            // Выход из start()
    }
    if( B==false)         // Критическая ошибка   
      {      
      Alert("Эксперт не работает.");     
      return;            // Выход из start   
      }
//+-------------------------------------------------------------- 
  return(0);
  }
//--------------------------------------------------------------
    int Bloc_Error(int S)    // Пользовательская ф-ия обработки ошибок
    {   
      switch( S)    
      { 
      case 3:                // Неверные параметры:
      B=false;
      return(0);                                
      }  
    }

Bueno, ahora hay otro error, parece que la variable indefinida B
, ¿no la declaré?

bool B=true;

Este es el aspecto del mensaje de error:
'B' - variable no definida ----------------- C:\N-Archivos de Programa\N-MetaTrader - Masterforex\perts\scripts\2.mq4 (31, 7)

Aquí hay otra pregunta, ¿qué son estos números? (31, 7), siempre son diferentes para diferentes errores, miré las mismas entradas en el directorio especificado, es como un nombre de error en un documento... ¿es posible en MetaEditor 4, en algún lugar para ver la descripción de la solución, por ejemplo, como en el Asesor de Expertos, los errores de ejecución y la ejecución corresponden a sus valores, donde para cada número una causa específica de error??

 
Daiver2 писал(а) >>

Hola a todos, ¿quién puede explicarlo? La función RefreshRates(), ¿es necesario llamarla siempre o cuando el experto o el script realizan cálculos largos, se activa automáticamente, por ejemplo, en las funciones de gestión de errores?
Segunda pregunta: aquí hay un ejemplo de código, arreglé un error, pasé un parámetro al operador switch...

bueno, ahora hay otro error, como la variable indefinida B
¿no lo declaré?

Este es el aspecto del mensaje de error:
'B' - variable no definida ----------------- C:\N-Archivos de Programa\N-MetaTrader - Masterforex\perts\scripts\2.mq4 (31, 7)

De ahí otra pregunta, ¿qué son esos números? (31, 7), siempre son diferentes para diferentes errores, miré las mismas entradas en el directorio especificado, es como un nombre de error en el documento... ¿hay algún lugar en MetaEditor 4, en algún lugar para ver la descripción de la solución, por ejemplo, como en el Asesor de Expertos, la ejecución y errores de tiempo de ejecución corresponden a sus valores, donde para cada número una causa específica del error?

Debería definirse fuera de la función start(), hacerla global. Entonces la variable estará disponible desde cualquier función

 
Vinin >> :

Debería definirse fuera de la función start(), hacerla global. Entonces la variable estará disponible desde cualquier función

Déjeme explicarle. Start es la misma función que otras, por lo que todas las definiciones de variables dentro de Start no tienen efecto fuera de ella. La variable puede ser definida globalmente sólo en el cuerpo del Asesor Experto, antes del init. Entonces será visible para todas las funciones.

Los números son el número de línea y el número de caracteres de la línea en la que se ha producido el error.

Razón de la queja: