Скачать MetaTrader 5

Шайтан компиляция ex4

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Есть вопросы автору статьи? Обсуди их на форуме!
pksatori
56
pksatori 2016.03.10 09:45 

Добрый день!

Чувствую, что тема уже не нова (был значительный пропуск во времени когда "не брал шашки в руки") но как не искал поиском - найти решения не смог. 

Компилирую программы на одном  ПК - все ок, на другом - "cannot load..." Причем, например, индикатор из стандартных (MACD) запускается, потом его перекомпилирую - и он тоже перестает грузиться.

Тему с UAC исходил вдоль и поперек. Включал, выключал, в portable режиме и без. Папка данных - все ок, ex4 ложится правильно, индикатор видится, но не запускается. Т.е. выдает НЕ ошибку "cannot open file [2]" а  "cannot load". Реально откомпилированные ex4 файлы отличаются на разных ПК. На обоих Win7.

 

На одном  компе с 

0 19:18:51.064 MetaTrader 4 build 950 started (MetaQuotes Software Corp.)

0 19:18:51.064 Windows 7 Ultimate (x64 based PC), IE 11.00, UAC, 1 x Intel Core i5-2557M  @ 1.70GHz, RAM: 503 / 1423 Mb, HDD: 29418 / 29553 Mb, GMT+03:00

0 19:18:51.064 Data Folder: E:\MetaTrader 4

2 19:24:41.791 Custom indicator Standart\MACD GBPUSD,H1: loaded successfully

2 19:24:57.064 Custom indicator MACD GBPUSD,H1: removed

0 19:24:58.421 MetaTrader 4 build 950 stopped

На другом компе

0 19:32:16.829 MetaTrader 4 build 950 started (MetaQuotes Software Corp.)

0 19:32:16.829 Windows 7 Enterprise (x64 based PC), IE 11.00, 4 x Intel Core i5-2500  @ 3.30GHz, RAM: 4611 / 8103 Mb, HDD: 29418 / 29553 Mb, GMT+03:00

0 19:32:16.829 Data Folder: F:\MetaTrader 4

0 20:04:51.238 MetaTrader 4 build 950 stopped 

не запускается индикатор

3 19:32:45.177 cannot load 'F:\MetaTrader 4\MQL4\indicators\Standart\MACD.ex4'

3 20:04:42.497 cannot load 'F:\MetaTrader 4\MQL4\indicators\Standart\MACD.ex4' 

 

Или вот еще пример 

Индикатор показывает номер Бара. 

2016.01.26 20:52:11.229 BarsNumber GBPUSD,H1: Barsnumber comlete. TLB=1970.01.01 00:00

2016.01.26 20:52:11.229 BarsNumber GBPUSD,H1: initialized

компилируем на "проблемной" машине и он перестает грузиться.

2016.01.26 20:55:46.247 cannot load 'F:\MetaTrader 4\MQL4\indicators\BarsNumber.ex4'

 

Возвращаем флешку в первый ПК и там все работает. И старая компиляция индикатора и новая.

2 21:00:47.976 Custom indicator BarsNumber GBPUSD,H1: loaded successfully

2 21:00:51.875 Custom indicator BarsNumber_OLD GBPUSD,H1: loaded successfully 

Имею два ПК.

№1 Виртуальный, Parallels на MacOS.  0 19:18:51.064 Windows 7 Ultimate (x64 based PC), IE 11.00, UAC, 1 x Intel Core i5-2557M  @ 1.70GHz, RAM: 503 / 1423 Mb, HDD: 29418 / 29553 Mb, GMT+03:00

№2 Физический.  Windows 7 Enterprise (x64 based PC), IE 11.00, 4 x Intel Core i5-2500  @ 3.30GHz, RAM: 4611 / 8103 Mb, HDD: 29418 / 29553 Mb, GMT+03:00

Для наглядности берем флешку с установленным MetaTrader 4 build 950 (хотя такой же эффект наблюдается и на установленным на HDD МТ4).

Подключаем флешку к компу 1. Все работает. Программы компилируются, запускаются. Любые.

Подключаем флешку к компу 2 (физическому). Программы, которые уже были скомпилированы - работают. Но при попытке перекомпилировать, сама компиляция - ок, а программа (например, индикатор), не запускается в терминале. Т.е. сам файл ex4 видится терминалом, но не запускается. Новая версия после компиляции (которая не запускается) - отличается по размеру от предыдущей версии (которая работала).

При этом, на компе №1 запускаются обе версии: и старой компиляции и новой. 

Прикладываю, для примера, самый простой индикатор и обе версии компиляции 

BarsNumber_OLD.ex4 - то, что запускается на обоих компах. Старая компиляция.

BarsNumber.ex4 - новая компиляция, работает только на компе №1.

 

Прикрепленные файлы:
BarsNumber.ex4 (5.82 KB)
BarsNumber.mq4 (2.28 KB)
BarsNumber_OLD.ex4 (5.16 KB)
Карпутов Владимир
203
Карпутов Владимир 2016.03.10 09:54  
Попробуйте флешку отформатировать под NTFS. А потом уже копировать на неё файлы.
pksatori
56
pksatori 2016.03.10 10:02  

Дело не во флешке. При копировании на хард та же история. Хоть Program Files, хоть на диске D.

Впечатление, что компилятору чего-то не хватает в OS  и как следствие ex4 получается "битый". Но установка Win вполне стандартная.

Я пытался в сервис-деск обратиться с этой проблемой. Больше месяца ожидания - полная тишина. :о( 

Карпутов Владимир
203
Карпутов Владимир 2016.03.10 10:16  
На "четвёртом" форуме проверить не могу - не даёт качать файлы.
pksatori
56
pksatori 2016.03.10 10:49  
//#property  indicator_color2  Blue
double     ind_buffer1[];
//double     ind_buffer2[];
datetime TLB;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
//---- drawing settings
   SetIndexStyle(0,DRAW_NONE);
   IndicatorDigits(0);
//  SetIndexStyle(1,0,STYLE_SOLID,2,Green);
 
//   SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,3);
//   SetIndexDrawBegin(0,0);
//   IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
//---- indicator buffers mapping
  if(!SetIndexBuffer(0,ind_buffer1))
      Print("cannot set indicator buffers!");
  TLB=0;
//---- initialization done
   return(0);
//----

  }
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//---- 
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
  // Print(TimeToStr(Time[0])," 1111 ",TimeToStr(TLB));
   if (Time[0]==TLB) return(0);
   
   Print("Barsnumber comlete. TLB=",TimeToStr(TLB));

   TLB=Time[0];
   
   for (int i=Bars; i>=0; i--)
   ind_buffer1[i]=i;

   return(0);
  }
//+------------------------------------------------------------------+

Как видите, готовые ex4 отличаются друг от друга. Можно как-то попросить разработчиков по этим файлам понять чего "не хватает"?

Файлы:
pksatori
56
pksatori 2016.03.10 10:55  
Причем еще раз подчеркну, что такой же "фокус" могу произвести с любым индикатором из стандартной поставки. Т.е. он работает до тех пор, пока не перекомпилирован.
pksatori
56
pksatori 2016.03.10 11:42  

Не поверите, это уже делал.

Одна и та же копия, различий нет.

Копирую из "плохого" компа через сеть на другой, "хороший": терминал, метаедитор - все работает.

Может наоборот, после перекомпиляции именно терминалу чего-то не хватает в ОС? Потому что "проблемные" ex4 так же запускаются на другом компе. На "хорошем" компе - так же перекомпилируются нормально. "Хороший" комп теперь другой - виртуалка на vShere, но операционка такая же как на "проблемном" компе.

 

P.S. еще раз проделал на "плохом" компе ту же процедуру: скопировал на другой диск только екзешники, DLL и откомпилированные ex4. Результат тот же, не работает. Их же переношу на другой комп - работает.

P.P.S. на просторах инета видел тему что народ компилирует в старом компиляторе mq4 файлы, т.к. в новом они не компилируются. Может проблема одного поля ягоды? Потому что я взял старый метаедитор (до 600 билда) и в нем откомпилировал на "плохом" компе - заработало. Но не понятно почему новый компилятор один и тот же код на одном компе компилирует и запускает, а на другом компе - нет.

Ilyas
1206
Ilyas 2016.03.10 11:48  
Выполните вот эту строку в обоих терминалах и сравните результат:
Alert(MQLInfoString(MQL_PROGRAM_PATH));
pksatori
56
pksatori 2016.03.10 12:11  

Хм.. интересно.

На "хорошем" компе:

Создал скрипт, запустил, выдало окно с отображением пути каталога данных.

По сети скопировал исходник скрипта и  ex4 на "плохой" комп.

На "плохом" компе: 

Не запустился с той же ошибкой.

Попробовал перекомпилировать - тот же эффект.

Пробовал создать с нуля скрипт с той же строкой - тот же эффект, не запускается с той же ошибкой.

Но если вы про папку данных, то она корректна, указывает на папку MQL внутри папки запускаемого терминала.

pksatori
56
pksatori 2016.03.10 13:16  
Еще раз хочу обратить внимание, что ошибка не поиска файла  "cannot open file [2]" (это если не находит файл в папке) а  "cannot load". 
pksatori
56
pksatori 2016.03.10 13:18  
LRA:
Запускали оба терминала с индикаторами с флэшки на каждом компьютере?

И с флешки, и по сети копировал в новые папки. И флешку новую из упаковки брал. И по колесам стучал, и в выхлопную трубу дул. :о)

Короче, с папками и флешками как только не экспериментировал. 

1234
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий