Рад представить вам библиотеку ATcl v1 beta - интерпретатор Tcl для MT4. Расширяте возможности ваших программ MQL, используйте СУБД, дополняйте сетевыми средствами, интегрируйте их с любыми программами используя Tcl.
# комментарии начинаются с # и идут до конца строки
# именованное значение "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 знаком очень плотно. Фактически это...
脚本已经准备好了,并包含在ATcl库 中。
该库位于Libraries/ATcl/app/mq45dist.tcl路径下。
它需要(突然)tcl,和zip来工作 :-)
如果你在没有参数的情况下运行它,它会要求你选择任何项目文件,并打开一个控制台来显示日志。
如果你把文件名作为参数传递,它不会打开任何窗口,而是作为一个控制台应用程序工作。
我把tcl脚本附在后面。
除了添加脚本外,还修复了一些错误。
并在http://nektomk.ru/ru:atcl:install 和 SourceForgehttps://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功能的想法的人,也会发现它很有用,并不是没有兴趣。
它将与第一部分一起发表在当地的博客上。只需 "暂停 "一下,重读+纠正语法和语态 :-)
更新:第一部分也发表在当地的博客上https://www.mql5.com/ru/blogs/post/718610,所以你可以不离开网站就能看到它。
1.你需要安装Windows下的Tcl 32位
不幸的是,ActiveState最近(一两个月前)停止了对32位的支持。
从可用的下载中删除了安装程序。它曾是Windows最方便的发行版
并在此基础上开发了ATcl。我还没有测试其他发行版,这个周末我将检查一下。
------------------------------
在Windows上安装Tcl 32bit
------------------------------
1.1 BAWT分布
1.1.1 从导入函数"。
下午好,我对你的项目 很感兴趣,但是MT4在删除EA和指标时出现了问题,请你告知可能的原因是什么。
下午好,我对你的项目很感兴趣,但是MT4在删除EA和指标时出现了问题,请你告知可能的原因是什么。
我不明白这个问题;-)
你的意思是 "它同时删除了EA和指标"?
我不明白这个问题;-)
解释一下,如果你能用屏幕截图的话。
是的,当然,这里是日志截图
是的,当然,这里是日志截图
1.当你运行专家顾问/指示器时,确保你启用了从DLL导入 的功能。
2.在前面的说明中强调了--如果你已经安装了BAWT发行版,你需要把tcl86.dll复制到c:/tcl/bin目录下的tcl86t.dll,即在dll名称中加上字母t
除了允许在终端使用DLL和分配DLL名称外,应该没有其他问题--只要在干净的VDS上,放上MT4,放上BAWT和来自sourceforge的ATcl库(不是 "开发中的变量",而是公开可用的)。飞行是正常的
1.当你运行EA/指示器时,确保从DLL导入的功能被激活。
2.在前面的说明中强调了--如果你有BAWT发行版,你需要把tcl86.dll复制到c:/tcl/bin目录下的tcl86t.dll,即在dll名称中加上字母t
除了允许在终端使用DLL和分配DLL名称外,应该没有其他问题--只要在干净的VDS上,放上MT4,放上BAWT和来自sourceforge的ATcl库(不是 "开发中的变量",而是公开可用的)。飞行是好的