Упомянутый скрипт для создания дистр.проектов готов и включен в состав библиотеки ATcl. В библиотеке расположен по пути Libraries/ATcl/app/mq45dist.tcl
Чтобы работал нужен(внезапно) tcl, и zip :-)
Если запустить без параметров, то он запросит выбор любого файла проекта и откроет консоль для вывода журнала работы.
Если в параметр сразу передать имя файла, то никаких окон открывать не будет, отработает как консольное приложение.
Рад представить вам библиотеку ATcl v1 beta - интерпретатор Tcl для MT4. Расширяте возможности ваших программ MQL, используйте СУБД, дополняйте сетевыми средствами, интегрируйте их с любыми программами используя Tcl.
Ещё одно, и самое простое (и насущное) применение : конфигурации софта/экспертов/панелей и прочего. То есть всякие файлы с настройками :-)
с ATcl очень просто всё это содержать в простых текстовых файлах.
# комментарии начинаются с # и идут до конца строки
# именованное значение "use_gui" set use_gui true
# список (вектор) значений set vector { 1.0 2.0 0.12 }
# список из список (матрица)
set matrix { { 1 2 3 } { 4 5 6 } { 7 8 9 } }
# хеш ( ключ->значение) set option(key1) "например строка" set option(key2) "другая строка"
# можно сразу
array set option { key3 0.21 another_key { можно задавать произвольные значения }
}
и считать всё это в MT4 очень просто:
ATcl *tcl=new ATcl; // создадим новый интерпретатор (их можно много делать)
tcl.Eval("source MQL4/Files/myconfig.tcl"); // прочесть конфигурациюbool use_gui = tcl.Long("use_gui",0); // взять переменную "use_gui" как long, или вернуть 0 по умолчаниюdouble vector[];
tcl.ToArray("vector",vector); // копировать список в массив.double matrix[][3];
tcl.ToArray("matrix",0,matrix[0]); // читать 1-ю строку матрицы
tcl.ToArray("matrix",1,matrix[1]); // и так далее
tcl.ToArray("matrix",2,matrix[2]);
string option_key1=tcl.String("option(key1)",""); // хеши можно читать указывая полное имяstring option_key2=tcl.String("option","key2",""); // или отдельно ключ, значение
delete tcl; // всё прочитали, интерпретатор больше ненужен
кстати как бонус, можно заодно прочесть и встроенные/системные переменные окружения :-)
string APPDATA=tcl.String("env","APPDATA",""); // окружение Windows - %APPDATA% string TEMP=tcl.String("env","TEMP",""); // рекомендованный каталог для временных файлов %TEMP%
Взял смелость и в статье объединяю большие «числогрызы» в одну главу. Они не решат наших задач про «взаимодействие с миром», про GUI, и так далее, но они востребованя. На них, с их помощью, благодаря им делаются и отрабатываюся торговые стратегии. Начну с R, так получилось что с практикой его применения в MT знаком очень плотно. Фактически это...
По материалам переписки - максимально детальная инструкция по установке
1. Вам необходимо установить Tcl 32 бита для Windows
К сожалению недавно (месяц или два назад) ActiveState прекратил поддержку 32 бита и удалил инсталлятор из доступных загрузок. Это был наиболее удобный дистрибутив для Windows и разработка ATcl велась на нём. Другие дистрибутивы ещё не тестировал, проверю только в выходные.
------------------------------ Установка Tcl 32 бит в Windows ------------------------------
1.1.2 Исполните инсталлятор. Обязательно согласитесь с установкой "С Redistributable" и также обязательно поставьте пункт "добавить Bawt в переменную PATH"
1.1.3 Чтобы изменения PATH вступили в силу надо перезайти в сессию Windows или просто перезагрузить компьютер.
------------------------------ Установка ATcl ------------------------------
2.1 Откройте каталог данных терминала MT4. В терминале выбрать "меню Файл / открыть каталог данных"
2.2 Распакуйте туда архив. В каталогах MQL4/Experts MQL4/Libraries и проч. должны появиться подкаталоги ATcl
2.3. ВАЖНО ! В разных дистрибутивах (поставках) Tcl основная DLL имеет разные названия. В ActiveTcl - tcl86t.dll и ATcl ожидает именно такого имени. В BAWT tcl86.dll (без буквы 't') просто в каталоге C:/tcl/bin скопируйте файл tcl86.dll в tcl86t.dll.
2.4. В терминале перечитайте каталоги или перезапустите терминал.
2.5. При запуске программ испоьзующих ATcl не забывайте ставить пункт "разрешить импорт функций из DLL"
1. когда запускаете советник/индикатор убедитесь что разрешен импорт из DLL
2. в предыдущей инструкции выделено цветом - если вы ставили дистрибутив BAWT то надо в нём, в каталоге c:/tcl/bin скопировать tcl86.dll в tcl86t.dll, то есть добавить к имени dll-ки букву t
других проблем, кроме разрешения использования DLL в терминале и имени DLL-ки дистрибьютера быть не должно - только что на чистом VDS, поставил MT4, поставил BAWT и библиотеку ATcl из sourceforge (не "вариант-в-разработке", а именно публично доступный). Полёт нормальный
1. когда запускаете советник/индикатор убедитесь что разрешен импорт из DLL
2. в предыдущей инструкции выделено цветом - если вы ставили дистрибутив BAWT то надо в нём, в каталоге c:/tcl/bin скопировать tcl86.dll в tcl86t.dll, то есть добавить к имени dll-ки букву t
других проблем, кроме разрешения использования DLL в терминале и имени DLL-ки дистрибьютера быть не должно - только что на чистом VDS, поставил MT4, поставил BAWT и библиотеку ATcl из sourceforge (не "вариант-в-разработке", а именно публично доступный). Полёт нормальный
Спасибо, это все уже попробовал и проверил результат тот же. Завтра уже попробую все поставить по новой вместе с мт4. Хотя есть вариант, что возможно, что то с правами доступа на win 10.
Упомянутый скрипт для создания дистр.проектов готов и включен в состав библиотеки ATcl.
В библиотеке расположен по пути Libraries/ATcl/app/mq45dist.tcl
Чтобы работал нужен(внезапно) tcl, и zip :-)
Если запустить без параметров, то он запросит выбор любого файла проекта и откроет консоль для вывода журнала работы.
Если в параметр сразу передать имя файла, то никаких окон открывать не будет, отработает как консольное приложение.
Скрипт tcl прикладываю.
Помимо добавления скрипта, исправлены некоторые баги,
и перезалиты архивы библиотеки на сайте http://nektomk.ru/ru:atcl:install и SourceForge https://sourceforge.net/projects/mt-atcl/
Ещё одно, и самое простое (и насущное) применение : конфигурации софта/экспертов/панелей и прочего. То есть всякие файлы с настройками :-)
с ATcl очень просто всё это содержать в простых текстовых файлах.
# именованное значение "use_gui"
set use_gui true
# список (вектор) значений
# список из список (матрица)set vector { 1.0 2.0 0.12 }
set matrix {
{ 1 2 3 }
{ 4 5 6 }
{ 7 8 9 }
}
# хеш ( ключ->значение)
# можно сразуset option(key1) "например строка"
set option(key2) "другая строка"
array set option {
}key3 0.21
another_key { можно задавать произвольные значения }
и считать всё это в MT4 очень просто:
кстати как бонус, можно заодно прочесть и встроенные/системные переменные окружения :-)
string APPDATA=tcl.String("env","APPDATA",""); // окружение Windows - %APPDATA%
string TEMP=tcl.String("env","TEMP",""); // рекомендованный каталог для временных файлов %TEMP%
По мотивам сообщения в английской части форума и для объяснения
"Зачем всё это надо и почему именно так"
набросал статью, на мой взгляд получается неплохая и полезная. Посвещена вопросу зачем может пригодится ещё один язык и как он выбирается.
Черновик первой части - http://nektomk.ru/atcl:why в ней идёт в постановка вопроса и выявление требований.
вычитаю, может какие ошибки поправлю и продублирую в местных блогах.Если есть вопросы, комментарии, предложения - отвечу и дополню :-)
во второй части будет разбор всех упомянутых языков и систем. Явно получается узко-специальная и требующая бэкграунда
давно не писал я столько текстов :-) но раз уж пообещал и начал, надо делать..
в продолжении первой части про выбор языка,
набросал вторую часть http://nektomk.ru/atcl:whynot где бегло рассмотрел довольно много всяких систем.
Даже людям далёким от ATcl и идей про расширение возможностей MQL может быть полезно и небезинтересно.
вместе с первой частью будет опубликована в местных блогах. Надо "взять паузу" и еще раз перечитать+подправить грамматику и обороты речи :-)
update: первая часть опубликована и в местных блогах https://www.mql5.com/ru/blogs/post/718610 чтобы можно было читать не выходя с сайта
1. Вам необходимо установить Tcl 32 бита для Windows
К сожалению недавно (месяц или два назад) ActiveState прекратил поддержку 32 бита и
удалил инсталлятор из доступных загрузок. Это был наиболее удобный дистрибутив для Windows
и разработка ATcl велась на нём. Другие дистрибутивы ещё не тестировал, проверю только в выходные.
------------------------------
Установка Tcl 32 бит в Windows
------------------------------
1.1 Дистрибутив BAWT
1.1.1 Загрузите дистибутив со страницы http://www.bawt.tcl3d.org/download.html (прямая ссылка на загрузку http://www.bawt.tcl3d.org/download/Tcl-BI/SetupTcl-8.6.8-x86_Bawt-0.8.0.exe )
1.1.2 Исполните инсталлятор. Обязательно согласитесь с установкой "С Redistributable" и также обязательно поставьте пункт "добавить Bawt в переменную PATH"
1.1.3 Чтобы изменения PATH вступили в силу надо перезайти в сессию Windows или просто перезагрузить компьютер.
------------------------------
Установка ATcl
------------------------------
2. Скачайте архив ATcl c SourceForge https://sourceforge.net/projects/mt-atcl/
2.1 Откройте каталог данных терминала MT4. В терминале выбрать "меню Файл / открыть каталог данных"
2.2 Распакуйте туда архив. В каталогах MQL4/Experts MQL4/Libraries и проч. должны появиться подкаталоги ATcl
2.3. ВАЖНО ! В разных дистрибутивах (поставках) Tcl основная DLL имеет разные названия. В ActiveTcl - tcl86t.dll и ATcl ожидает именно такого имени. В BAWT tcl86.dll (без буквы 't')
просто в каталоге C:/tcl/bin скопируйте файл tcl86.dll в tcl86t.dll.
2.4. В терминале перечитайте каталоги или перезапустите терминал.
2.5. При запуске программ испоьзующих ATcl не забывайте ставить пункт "разрешить импорт функций из DLL"
Добрый день заинтересовал ваш проект, но возникла проблема MT4 удаляет и советников и индикаторы, не могли бы вы подсказать в чем возможная причина.
Добрый день заинтересовал ваш проект, но возникла проблема MT4 удаляет и советников и индикаторы, не могли бы вы подсказать в чем возможная причина.
Не понял проблему ;-)
что значит "удаляет и советников и индикаторы" ? поясните суть, если можно со скриншотами
Не понял проблему ;-)
что значит "удаляет и советников и индикаторы" ? поясните суть, если можно со скриншотами
Да конечно, вот скриншоты журнала
Да конечно, вот скриншоты журнала
1. когда запускаете советник/индикатор убедитесь что разрешен импорт из DLL
2. в предыдущей инструкции выделено цветом - если вы ставили дистрибутив BAWT то надо в нём, в каталоге c:/tcl/bin скопировать tcl86.dll в tcl86t.dll, то есть добавить к имени dll-ки букву t
других проблем, кроме разрешения использования DLL в терминале и имени DLL-ки дистрибьютера быть не должно - только что на чистом VDS, поставил MT4, поставил BAWT и библиотеку ATcl из sourceforge (не "вариант-в-разработке", а именно публично доступный). Полёт нормальный
1. когда запускаете советник/индикатор убедитесь что разрешен импорт из DLL
2. в предыдущей инструкции выделено цветом - если вы ставили дистрибутив BAWT то надо в нём, в каталоге c:/tcl/bin скопировать tcl86.dll в tcl86t.dll, то есть добавить к имени dll-ки букву t
других проблем, кроме разрешения использования DLL в терминале и имени DLL-ки дистрибьютера быть не должно - только что на чистом VDS, поставил MT4, поставил BAWT и библиотеку ATcl из sourceforge (не "вариант-в-разработке", а именно публично доступный). Полёт нормальный