MetaTrader 4 Build 529 beta lançado com novo compilador - página 46

 
O 540 está fora...
 
VOLDEMAR:
Rapazes, se tiverem um minuto, por favor, enviem-me a instalação web da última versão, obrigado.


Aqui estão os 540.

de C:\Users\XXXXX\AppData\Roaming

 
ENUM_TIMEFRAMES dá a você a escolha da massa de tempo, todos os prazos funcionarão ou apenas os prazos padrão mt4 ????
 

Após a atualização para 540. O ME está perdido. O terminal é iniciado com o interruptor /portátil. ME também deve começar com o interruptor /portátil. A partir do terminal ME não começa com F4:


A captura de tela abre o diretório de dados a partir do terminal. Está correto e o editor está no lugar.

Após reiniciar o terminal, ME abriu pressionando F4 no terminal.

Interessante como isto funciona:

  1. O terminal não pode ver a atualização. Reinicialização do terminal. 1.
  2. O terminal diz que a atualização foi baixada. Reinicialização do terminal. 2.
  3. Cargas terminais e pede para fazer mudanças. Eu o permito. O terminal se reinicia sozinho. 3.
  4. Após o reinício automático, o terminal esquece suas configurações e abre com configuração aleatória - sem janelas, indicadores e modelos anteriores. Reinicialização do terminal. 4.
  5. Depois de reiniciar, o terminal "lembra" suas configurações anteriores: abre os gráficos necessários com indicadores e modelos, mas ... o terminal "perde" o editor e escreve na revista que não é encontrado. Eu reinicio o terminal. 5.
  6. O terminal carrega e agora está tudo bem - meus gráficos, minhas configurações, meus modelos, meus indicadores. ME é encontrado e funciona. 6.
Um total de seis reinicializações do terminal para atualizar e continuar no mesmo modo.
 
artmedia70:

Após a atualização para 540. O ME está perdido. O terminal é iniciado com o interruptor /portátil. ME também deve começar com o interruptor /portátil. A partir do terminal ME não começa com F4:


Obrigado por perguntar, vamos verificar.
 
extern string     symbol        = ""  ;

void OnTick()
  {
string sy = sym();
double ask = MarketInfo(sy,MODE_ASK);
  }

string sym    ()
{ 
 string symm = symbol;
 if ( symm == "" ) 
 symm=Symbol () ;
 
 return (symm);

Inundado com mensagens

 

Peço desculpas aqui... O que significa a advertência de que nem todos os caminhos de controle retornam um valor?

Porque tais variações apareceram ao compilar neste beta, e o que e sobre o que, eu não entendo.

Obrigado.

 
St0nE:

Peço desculpas aqui... O que significa a advertência de que nem todos os caminhos de controle retornam um valor?

Porque tais variações apareceram ao compilar neste beta, e o que e sobre o que, eu não entendo.

Obrigado.

algumas variantes em que o algoritmo de código poderia ser executado poderiam não retornar um valor.

Por exemplo, você tem uma função Switch () mas nenhuma opção por padrão: onde o retorno() deve estar.

 

Obrigado pela resposta, você pode verificar um pedaço de código onde pode haver tal bug, não consigo lidar com ele...

bool isDodgi(string TypeOrder, int NumBar) // 
{ 
  double Price1=0, Price2=0, Price3=0;

  if (TypeOrder=="BUY") {
    if (Cut_Digits(Open[NumBar])==Cut_Digits(Close[NumBar])) {
      return(true);
    }
    if (Cut_Digits(Open[NumBar])>Cut_Digits(Close[NumBar])) {
      Price1=Open[NumBar];
      Price2=Close[NumBar];
      Price3=Low[NumBar];
    }
    if (Cut_Digits(Close[NumBar])>Cut_Digits(Open[NumBar])) {
      Price1=Close[NumBar];
      Price2=Open[NumBar];
      Price3=Low[NumBar];
    }
    if (((Price2-Price3)/(Price1-Price2))>=2) {
      return(true);
    }
  }
  if (TypeOrder=="SELL") {
    if (Cut_Digits(Open[NumBar])==Cut_Digits(Close[NumBar])) {
      return(true);
    }
    if (Cut_Digits(Open[NumBar])>Cut_Digits(Close[NumBar])) {
      Price1=Open[NumBar];
      Price2=Close[NumBar];
      Price3=High[NumBar];
    }
    if (Cut_Digits(Close[NumBar])>Cut_Digits(Open[NumBar])) {
      Price1=Close[NumBar];
      Price2=Open[NumBar];
      Price3=High[NumBar];
    }
    if (((Price3-Price1)/(Price1-Price2))>=2) {
      return(true);
    }
  }
}
 
St0nE:

Obrigado pela resposta, você pode verificar um pedaço de código onde pode haver tal bug, não consigo lidar com ele...

bool isDodgi(string TypeOrder, int NumBar) // 
{ 
  double Price1=0, Price2=0, Price3=0;

  if (TypeOrder=="BUY") {
    if (Cut_Digits(Open[NumBar])==Cut_Digits(Close[NumBar])) {
      return(true);
    }
    if (Cut_Digits(Open[NumBar])>Cut_Digits(Close[NumBar])) {
      Price1=Open[NumBar];
      Price2=Close[NumBar];
      Price3=Low[NumBar];
    }
    if (Cut_Digits(Close[NumBar])>Cut_Digits(Open[NumBar])) {
      Price1=Close[NumBar];
      Price2=Open[NumBar];
      Price3=Low[NumBar];
    }
    if (((Price2-Price3)/(Price1-Price2))>=2) {
      return(true);
    }
  }
  if (TypeOrder=="SELL") {
    if (Cut_Digits(Open[NumBar])==Cut_Digits(Close[NumBar])) {
      return(true);
    }
    if (Cut_Digits(Open[NumBar])>Cut_Digits(Close[NumBar])) {
      Price1=Open[NumBar];
      Price2=Close[NumBar];
      Price3=High[NumBar];
    }
    if (Cut_Digits(Close[NumBar])>Cut_Digits(Open[NumBar])) {
      Price1=Close[NumBar];
      Price2=Open[NumBar];
      Price3=High[NumBar];
    }
    if (((Price3-Price1)/(Price1-Price2))>=2) {
      return(true);
    }
  }
  ТУТ КОСяК ( return() где?)
}