[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 324

 
TheXpert >> :

Alerta, como opção. Comente -- está bem.

Substituir while(true) por while(!IsStopped())

Atrasado.)))

Sim, eu esqueci do IsStopped.

 
Svinozavr >> :

Atrasado.)))

Posso lhe dar um avanço na próxima vez :) .

Svinozavr >> :

Escreva o f-fi onde a saída será feita e escreva o que você precisa através dele.

Opção.


 
TheXpert >> :

>> Obrigado. É possível mudar a cor do Comentário? Ou apenas branco?

 
TheXpert >> :
Posso lhe dar um avanço na próxima vez :) .

A propósito, sim, obrigado, resposta muito rápida aqui :)

 
Mathers >> :

Obrigado. É possível mudar a cor do Comentário? Ou apenas branco?

>> Não, eu não tenho.

 

Quando não há necessidade de processar cada carrapato, como posso fazer com que o código seja processado somente quando uma nova barra aparece?

Certamente deve haver uma função pronta para uso. Atire-me um link...


ATUALIZAÇÃO

Obrigado, encontrei-o (:

//+------------------------------------------------------------------+
//|  возвращает признак появления нового бара для указанного периода |
//+------------------------------------------------------------------+
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);   
   }
 

Como usar o roteiro para definir minha própria escala na tabela?

As funções que dizem qual barra é exibida primeiro estão lá, mas como redefini-la não está.

 

Olá a todos, quem pode explicar? A função RefreshRates(), precisa sempre ser chamada ou quando um Expert Advisor ou script realiza cálculos longos, ela funciona automaticamente, por exemplo, em funções de tratamento de erros?
Segunda pergunta: aqui está um exemplo de código, consertei um erro, passei um parâmetro para mudar de operador...

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);                                
      }  
    }

Bem, agora há outro erro, parece variável indefinida B
, eu não a declarei?

bool B=true;

Esta é a aparência da mensagem de erro:
B' - variável não definida ----------------- C:\Program Files\MetaTrader - Masterforexexperts\2.mq4 (31, 7)

Aqui está outra pergunta, quais são esses números? (31, 7), são sempre diferentes para erros diferentes, olhei para as mesmas entradas no diretório especificado, é como um nome de erro em um documento... é possível no MetaEditor 4, em algum lugar ver a descrição da solução, por exemplo, como no Expert Advisor, os erros de execução e execução correspondem a seus valores, onde para cada número uma causa específica de erro???

 
Daiver2 писал(а) >>

Olá a todos, quem pode explicar? A função RefreshRates(), precisa sempre ser chamada ou quando especialistas ou roteiros efetuam cálculos longos, ela aciona automaticamente, por exemplo, em funções de tratamento de erros?
Segunda pergunta: aqui está um exemplo de código, consertei um erro, passei um parâmetro para mudar de operador...

bem, agora há outro erro, como a variável B indefinida
eu não o declarei?

Esta é a aparência da mensagem de erro:
B' - variável não definida ----------------- C:\Program Files\MetaTrader - Masterforexexperts\2.mq4 (31, 7)

Daí outra pergunta, quais são esses números? (31, 7), são sempre diferentes para erros diferentes, olhei para as mesmas entradas no diretório especificado, é como um nome de erro no documento... e no MetaEditor 4, há algum lugar para procurar uma descrição da solução, por exemplo, como em Expert, os erros de execução e tempo de execução correspondem a seus valores, onde para cada número uma causa específica de erro?

Deve ser definida fora da função start(), torná-la global. Então a variável estará disponível em qualquer função

 
Vinin >> :

Deve ser definida fora da função start(), torná-la global. Então a variável será acessível a partir de qualquer função

Deixe-me explicar. Start é a mesma função que outras, portanto, todas as definições de variáveis dentro de Start não têm efeito fora dele. A variável pode ser definida globalmente apenas no corpo de Expert Advisor, antes do init. Em seguida, ela será visível para todas as funções.

Os números são o número da linha e o número de caracteres na linha, onde o erro ocorreu.