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

 

komposter Видимо я неправильно сформулировал свою мысль :). Радуешься когда видишь что он "available". После апгрейда на новый билд вместо поубавившейся радости крепчает надежда и вера в следующий :) Ну вот, как-то так.... постарался максимально корректно выразить перепады эмоций.

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

 

Сделал во всех терминалах (MT4/MT5) в папке Files подпапку MyCommon, отобразил их все на один виртуальный диск (диск поставил в автозагрузку). // теперь эту папку видно везде. притом синхронно

В этой папке сделал подпапку Include (тоже теперь видно везде).

В этой папке (и подпапках) создаю универсальные mql4/5 включаемые файлы, доступные во всех терминалах сразу. // благо директивы семейства #ifdef наконец появились и отлично работают.

Стало реально очень удобно. // Всем рекомендую.

НО :

Столкнулся с проблемой несинхронности при редактировании файлов. // одновременно редактирую в MT4/ME4 и MT5/ME5 - чтоб сразу же, по ходу написания, тестить и mql4 и mql5 код

Проблема: При изменении файла в одном из редакторов, второй изменений не замечает. Никак. Не обнаруживает, не подхватывает, и даже не сообщает о "внешнем" изменении файла с предложением выбора "перезагрузить/проигнорировать".

Т.е. для того чтоб второй реактор увидел изменения, файл нужно в нём закрыть и потом открыть заново. Крайне неудобно.

Очень большая просьба к разработчикам : пожалуйста, сделайте "автообнаружение" и обработку внешней модификации файла загруженного в ME.

// Мне кажется раньше оно было, просто перестало работать ?

--

И ещё вопрос: почему нельзя определять собственные символы для условной компиляции? Как-то опять же не совсем полноценная фича получается. Или я просто плохо искал?

 
MetaDriver:

Сделал во всех терминалах (MT4/MT5) в папке Files подпапку MyCommon, отобразил их все на один виртуальный диск (диск поставил в автозагрузку). // теперь эту папку видно везде. притом синхронно

В этой папке сделал подпапку Include (тоже теперь видно везде).

В этой папке (и подпапках) создаю универсальные mql4/5 включаемые файлы, доступные во всех терминалах сразу. // благо директивы семейства #ifdef наконец появились и отлично работают.

Стало реально очень удобно. // Всем рекомендую.

НО :

Столкнулся с проблемой несинхронности при редактировании файлов. // одновременно редактирую в MT4/ME4 и MT5/ME5 - чтоб сразу же, по ходу написания, тестить и mql4 и mql5 код

Проблема: При изменении файла в одном из редакторов, второй изменений не замечает. Никак. Не обнаруживает, не подхватывает, и даже не сообщает о "внешнем" изменении файла с предложением выбора "перезагрузить/проигнорировать".

Т.е. для того чтоб второй реактор увидел изменения, файл нужно в нём закрыть и потом открыть заново. Крайне неудобно.

Очень большая просьба к разработчикам : пожалуйста, сделайте "автообнаружение" и обработку внешней модификации файла загруженного в ME.

// Мне кажется раньше оно было, просто перестало работать ?

А где про ifdef написано? Не могу найти информации в справке по MQL

 
MetaDriver:

1. Сделал во всех терминалах (MT4/MT5) в папке Files подпапку MyCommon, отобразил их все на один виртуальный диск (диск поставил в автозагрузку). // теперь эту папку видно везде. притом синхронно

В этой папке сделал подпапку Include (тоже теперь видно везде).

В этой папке (и подпапках) создаю универсальные mql4/5 включаемые файлы, доступные во всех терминалах сразу. // благо директивы семейства #ifdef наконец появились и отлично работают.

Стало реально очень удобно. // Всем рекомендую.

НО :

2. Столкнулся с проблемой несинхронности при редактировании файлов. // одновременно редактирую в MT4/ME4 и MT5/ME5 - чтоб сразу же, по ходу написания, тестить и mql4 и mql5 код

Проблема: При изменении файла в одном из редакторов, второй изменений не замечает. Никак. Не обнаруживает, не подхватывает, и даже не сообщает о "внешнем" изменении файла с предложением выбора "перезагрузить/проигнорировать".

Т.е. для того чтоб второй реактор увидел изменения, файл нужно в нём закрыть и потом открыть заново. Крайне неудобно.

Очень большая просьба к разработчикам : пожалуйста, сделайте "автообнаружение" и обработку внешней модификации файла загруженного в ME.

// Мне кажется раньше оно было, просто перестало работать ?

1. По моему, удобнее и надёжнее использовать символические, мягкие и жёсткие ссылки, чем виртуальный диск. Всё же, опции ОС надёжнее, чем софт.
2. Если уж автосохранение делать не хотят, то обнаружение изменений от внешнего редактора тем более не будут делать.
 
MetaDriver:

Сделал во всех терминалах (MT4/MT5) в папке Files подпапку MyCommon, отобразил их все на один виртуальный диск

Имеется в виду хард линк?

Почему не в MQL4\ MQL5\? Зачем в Files\?

 
MetaDriver:

Сделал во всех терминалах (MT4/MT5) в папке Files подпапку MyCommon, отобразил их все на один виртуальный диск (диск поставил в автозагрузку). // теперь эту папку видно везде. притом синхронно

В этой папке сделал подпапку Include (тоже теперь видно везде).

В этой папке (и подпапках) создаю универсальные mql4/5 включаемые файлы, доступные во всех терминалах сразу. // благо директивы семейства #ifdef наконец появились и отлично работают.

Стало реально очень удобно. // Всем рекомендую.

НО :

Столкнулся с проблемой несинхронности при редактировании файлов. // одновременно редактирую в MT4/ME4 и MT5/ME5 - чтоб сразу же, по ходу написания, тестить и mql4 и mql5 код

Проблема: При изменении файла в одном из редакторов, второй изменений не замечает. Никак. Не обнаруживает, не подхватывает, и даже не сообщает о "внешнем" изменении файла с предложением выбора "перезагрузить/проигнорировать".

Т.е. для того чтоб второй реактор увидел изменения, файл нужно в нём закрыть и потом открыть заново. Крайне неудобно.

Очень большая просьба к разработчикам : пожалуйста, сделайте "автообнаружение" и обработку внешней модификации файла загруженного в ME.

// Мне кажется раньше оно было, просто перестало работать ?


Zhunko:
1. По моему, удобнее и надёжнее использовать символические, мягкие и жёсткие ссылки, чем виртуальный диск. Всё же, опции ОС надёжнее, чем софт.
2. Если уж автосохранение делать не хотят, то обнаружение изменений от внешнего редактора тем более не будут делать.

komposter:

Имеется в виду хард линк?

Почему не в MQL4\ MQL5\? Зачем в Files\?

А можно с иллюстрациями?
 
Barbarian:

А где про ifdef написано? Не могу найти информации в справке по MQL

Было в анонсах (по обновлениям MT5 точно было). Затем было реализовано.

//\files\MyCommon\Include\StatBasket_01.mqh
//+------------------------------------------------------------------+
//|                                                StatBasket_01.mqh |
//|                                           © 2013, MetaDriver Lab |
//|                       https://www.mql5.com/ru/users/MetaDriver |
//+------------------------------------------------------------------+
#property copyright "© 2013, MetaDriver Lab"
#property link      "https://www.mql5.com/ru/users/MetaDriver"

#ifndef __MQL5__
    #property strict
#endif 

#ifdef _DEBUG
class CLogPrint  // дебаг версия лог-файла (расширенная)
  {
public:
                     CBebugLog(void);
                    ~CBebugLog(void);
  };
#else 
class CLogPrint  // релиз версия
  {
public:
                     CBebugLog(void);
                    ~CBebugLog(void);
  };
#endif 

class CSBasket
  {
public:
                     CSBasket(void);
                    ~CSBasket(void);
  };

--

Всё это работает. Пользуйтесь.

 
Zhunko:
1. По моему, удобнее и надёжнее использовать символические, мягкие и жёсткие ссылки, чем виртуальный диск. Всё же, опции ОС надёжнее, чем софт.
2. Если уж автосохранение делать не хотят, то обнаружение изменений от внешнего редактора тем более не будут делать.

1. Чёт я не разобрался с мягкими/жёсткими ссылками. Как их делать, как пользоваться?

2. Ну посмотрим. Зачем уж так категорично. Я ж говорю, вроде раньше было (в ME5. редактор говорил "файл изменён, перезагрузить?")

 
komposter:

Имеется в виду хард линк?

Почему не в MQL4\ MQL5\? Зачем в Files\?

Про хард линк не совсем понял. Но таки наверное оно.

В Files - потому, что туда можно записывать из mql-программ. Мне это часто бывает нужно, для автогенерации инклюдников с какими-нибудь массивными Enum'ами или рутинными исходниками, где логику и/или данные можно менять в кодогенераторе.

// ничего сложного обычно не генерю. но таки часто бывает нужно что-то простое и регулярное (в смысле структуры) и очень рутинное (типа полсотни внешних переменных, напр. коэффициенты нейросетки для MT-оптимизации).

 
tara:

А можно с иллюстрациями?

Алексей, я один кусок исходника прилепил. достаточно?

просто не понял каких иллюстраций хочешь.

ну вот ещё. так выглядит виртуальная папка в проводнике:



а так можно добавлять пути к отображению виртуального диска: