ATcl - MT4的Tcl解释器 - 页 8

 

脚本已经准备好了,并包含在ATcl库 中。
该库位于Libraries/ATcl/app/mq45dist.tcl路径下。

它需要(突然)tcl,和zip来工作 :-)

如果你在没有参数的情况下运行它,它会要求你选择任何项目文件,并打开一个控制台来显示日志。

如果你把文件名作为参数传递,它不会打开任何窗口,而是作为一个控制台应用程序工作。

我把tcl脚本附在后面。

除了添加脚本外,还修复了一些错误。
并在http://nektomk.ru/ru:atcl:install 和 SourceForgehttps://sourceforge.net/projects/mt-atcl/ 重新启动了图书馆档案。

ATcl
  • nektomk.ru
Рад представить вам библиотеку 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%

 

根据论坛英文部分的一个帖子,并解释一下

"为什么需要这一切,为什么会 是这样的结果"。

勾勒出一篇文章,在我看来,它变成了相当好的和有用的。致力于研究为什么另一种语言可能有用以及如何选择的问题。

第一部分的初稿--http://nektomk.ru/atcl:why,这部分进入了问题设置和需求识别。

如果有任何问题、评论、建议,我将回答并补充进去 :-)

第二部分是对提到的所有语言和系统的讨论。显然,它是高度专业化的,需要有一定的背景

 

我已经很久没有写过这么多文字了:-)但既然我答应了并开始了,我就必须这么做......。

作为关于语言选择的第一部分的延续。

我草拟了http://nektomk.ru/atcl:whynot 的第二部分,在那里我看了相当多的系统。

即使是远离ATcl和扩展MQL功能的想法的人,也会发现它很有用,并不是没有兴趣。

它将与第一部分一起发表在当地的博客上。只需 "暂停 "一下,重读+纠正语法和语态 :-)

更新:第一部分也发表在当地的博客上https://www.mql5.com/ru/blogs/post/718610,所以你可以不离开网站就能看到它。

выбор языка, часть 2
  • nektomk.ru
Взял смелость и в статье объединяю большие «числогрызы» в одну главу. Они не решат наших задач про «взаимодействие с миром», про GUI, и так далее, но они востребованя. На них, с их помощью, благодаря им делаются и отрабатываюся торговые стратегии. Начну с R, так получилось что с практикой его применения в MT знаком очень плотно. Фактически это...
 
基于通信 - 最大限度的详细安装说明

1.你需要安装Windows下的Tcl 32位

不幸的是,ActiveState最近(一两个月前)停止了对32位的支持。
从可用的下载中删除了安装程序。它曾是Windows最方便的发行版
并在此基础上开发了ATcl。我还没有测试其他发行版,这个周末我将检查一下。

------------------------------
在Windows上安装Tcl 32bit
------------------------------

1.1 BAWT分布

1.1.1 从导入函数"。
BAWT - Downloads
  • Paul Obermeier
  • www.bawt.tcl3d.org
BAWT - Build Automation With Tcl
 

下午好,我对你的项目 很感兴趣,但是MT4在删除EA和指标时出现了问题,请你告知可能的原因是什么。

 
kovtynmen:

下午好,我对你的项目很感兴趣,但是MT4在删除EA和指标时出现了问题,请你告知可能的原因是什么。

我不明白这个问题;-)

你的意思是 "它同时删除了EA和指标"?

 
Maxim Kuznetsov:

我不明白这个问题;-)

解释一下,如果你能用屏幕截图的话。

是的,当然,这里是日志截图

专家贸易面板

自定义指标CawtExcel

 
kovtynmen:

是的,当然,这里是日志截图


1.当你运行专家顾问/指示器时,确保你启用了从DLL导入 的功能。

2.在前面的说明中强调了--如果你已经安装了BAWT发行版,你需要把tcl86.dll复制到c:/tcl/bin目录下的tcl86t.dll,即在dll名称中加上字母t

除了允许在终端使用DLL和分配DLL名称外,应该没有其他问题--只要在干净的VDS上,放上MT4,放上BAWT和来自sourceforge的ATcl库(不是 "开发中的变量",而是公开可用的)。飞行是正常的

 
Maxim Kuznetsov:

1.当你运行EA/指示器时,确保从DLL导入的功能被激活。

2.在前面的说明中强调了--如果你有BAWT发行版,你需要把tcl86.dll复制到c:/tcl/bin目录下的tcl86t.dll,即在dll名称中加上字母t

除了允许在终端使用DLL和分配DLL名称外,应该没有其他问题--只要在干净的VDS上,放上MT4,放上BAWT和来自sourceforge的ATcl库(不是 "开发中的变量",而是公开可用的)。飞行是好的

谢谢,已经试过这些,结果是一样的。我明天会和mt4一起再次尝试一切。虽然有可能是win10系统的访问权限问题。