Преамбула. Зіткнувся з проблемою, з якою зтикається з часом, мабуть, будь-який трейдер, а тим більше такий, що програмує на MQL4, коли кількість встановлених на комп’ютері терміналів перевищила два десятки і не менше десятка у використанні, а набір та версії використовуваних радників (індикаторів, скриптів і таке інше) увесь час оновлюються. Спочатку я якось справлявся ручним копіюванням по декільком каталогам терміналів, але зараз це стало просто нестерпно нудною процедурою, що віднімає багато часу.
Тому я й вирішив написати скрипт, що брав би вказаний набір радників, слідкував за версіями і оновлював та поширював їх по всім встановленим терміналам, що заходяться у використанні.
Амбула або опис параметрів та принципу дії скрипта. Ідея така. Ви використовуєте як робочу (ту де ви створюєте чи оновлюєте радників вручну) одну з версій термінала, тут і потрібно встановити мій bvneaupdater, тобто скопіювати його в каталог MQL4/Scripts. В нього є всього 2 параметри: EAListFile та MT4ListFile, які вказують на два CSV-файли, які треба створити в каталозі MQL4/Files.
Почнемо з останнього, адже він простіший для розуміння, там ви повинні просто перелічити всі наявні у вас термінали, вказавши шляхи до них по одному на рядок. Можна використовувати як повні, так і відносні шляхи, наприклад:
У файлі, на який вказує EAListFile, потрібно перелічити всі радники, які ви бажаєте оновляти та поширювати на вказані термінали, при чому робити це потрібно від каталогу MQL4 і без вказування розширень, а також через крапку з комою необхідно вказати час останнього оновлення (про це ми поговоримо нижче). Приклад:C:\Program Files\Metatrader Of Some Company
..\Metatrader Of Another Company
Скрипт сам знаходить ex4-файли і оновлює їх, якщо час модифікації файлу новіший за збережений у CSV-файлі час, крім того скрипт також "дивиться" чи є у наявності вихідний файл з розширенням mq4, якщо є, то він також оновлює і його, після чого перезаписує цей CSV-файл з вказанням часу останнього оновлення радника.Scripts/bvnopen;2015.02.19 20:44
Scripts/bvnbuy;2015.02.19 20:44
Scripts/bvnsell;2015.02.19 20:44
Scripts/bvnclose;2015.02.19 20:44
Scripts/bvnpending;2015.02.19 20:44
Scripts/bvncloser;2010.02.13 12:00
Scripts/bvnsetsl;2015.02.19 20:44
Scripts/bvnsettp;2015.02.19 20:44
Scripts/bvnspreadswaprev;2015.02.19 20:44
Experts/bvnts3;2015.02.19 20:44
Indicators/bvngvtoucher;2015.02.19 20:44
Indicators/bvnregr;2015.02.19 20:44
Indicators/DT_ZZ;2015.02.19 20:44
Indicators/i-Regr;2015.02.19 20:44
Indicators/Search vv_patterns_v6;2015.02.19 20:44
Indicators/Swing_ZZ;2015.02.19 20:44
Що треба розуміти про час останнього оновлення?
1. Що, створивши CSV-файл один раз, вам не потрібно його редагувати, хіба що задля додавання нових радників.
2. Вказавши завідомо стару дату (наприклад, 1970.01.01 00:00) перед запуском скрипта, цим самим ви ініціюєте примусове оновлення вказаного радника (майте на увазі, що скрипт не аналізує дати модифікації кожної окремої версії, що встановлені в тому чи іншому терміналі). Є сенс так робити для всіх вперше доданих радників, щоб поширити їх на всі копії терміналів.
3. Вказавши завідомо нову дату перед запуском скрипта, цим самим ви відкладаєте будь-які оновлення вказаного радника до настання цієї дати.
Остання версія скрипта:
bvneaupdater0.5.1.zip
Попередні версії:
bvneaupdater.0.5.0.zip