Выпущена бета-версия MetaTrader 4 Build 529 с новым компилятором - страница 46

 
540-й вышел...
 
VOLDEMAR:
Парни у кого есть минутка скинте веб инстал последней версии, Спасибо .


Держи 540-й.

из папки C:\Users\ХХХХХ\AppData\Roaming

 
ENUM_TIMEFRAMES дает выбрать массу таймфремом, все ли таймфремы будут работать или только стандартные таймфремы мт4 ????
 

После обновления до 540-го. Потерялся МЕ. Терминал запущен с ключом /portable. МЕ тоже должен запускаться с ключом /portable. Из терминала МЕ не запускается по F4:


На скрине открыт каталог данных из терминала. Он верный и редактор на месте.

После перезапуска терминала МЕ открылся по нажатию F4 в терминале.

Интересно получается:

  1. Терминал не видит обновления. Перезапускаю терминал. 1.
  2. Терминал пишет, что обновление загружено. Перезапускаю терминал. 2.
  3. Терминал загружается и просит внести изменения. Разрешаю. Терминал перезапускается сам. 3.
  4. После автоматического перезапуска терминала он "забывает " о своих настройках и открывается не пойми в какой конфигурации - нет бывших окон, индикаторов и шаблонов. Перезапускаю терминал. 4.
  5. После перезапуска, терминал запускается "вспомнив" о бывших настройках: открываются нужные графики с индикаторами и шаблонами, но ... терминал "теряет" редактор и пишет в журнале, что он не найден. Перезапускаю терминал. 5.
  6. Терминал загружается и теперь всё нормально - графики мои, настройки мои, шаблоны мои, индикаторы мои. МЕ нашёлся и запускается. 6.
Итого имеем шесть перезапусков терминала чтобы обновиться и продолжить работать в том же режиме.
 
artmedia70:

После обновления до 540-го. Потерялся МЕ. Терминал запущен с ключом /portable. МЕ тоже должен запускаться с ключом /portable. Из терминала МЕ не запускается по F4:


Спасибо за обращение, проверим.
 
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);

Заваливает сообщениями

 

Я извиняюсь, что здесь... А что означает предупреждение, что not all control paths return a value ?

А то появились такие варнинги при компиляции в этой бете, а что и про что, не понимаю.

Спасибо.

 
St0nE:

Я извиняюсь, что здесь... А что означает предупреждение, что not all control paths return a value ?

А то появились такие варнинги при компиляции в этой бете, а что и про что, не понимаю.

Спасибо.

некоторые варианты, по которым мог бы выполнятся алгоритм кода, могут не вернуть значение.

например, у вас есть функция Switch () но не предусмотрен вариант при default: где должен быть return().

 

Спасибо за ответ, а посмотрите плиз кусочек кода, где тут может быть подобный косяк, а то я как то не улавливаю...

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:

Спасибо за ответ, а посмотрите плиз кусочек кода, где тут может быть подобный косяк, а то я как то не улавливаю...

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() где?)
}
Причина обращения: