До любого обращения к ATcl должна быть вызвана функций ATcl_OnInit() и в завершении скрипта/индикатора/советника ATcl_OnDeinit(const int reason). Между вызовами этих двух функций возможны обращения ко всем прочим функциям библиотеки. При разработке советников и индикторов также рекомендуется вызывать функции ATcl_OnEvent(..) ATcl_OnTimer...
Рад представить вам библиотеку ATcl v1 beta - интерпретатор Tcl для MT4. Безграничные возможности расширения и интеграции программ MT4 Расширяйте возможности ваших программ MQL, используйте СУБД, дополняйте сетевыми средствами, интегрируйте их с любыми программами используя Tcl. threading - вы можете использовать все возможности...
ATcl является библиотекой-интегратором и поэтому в первую очередь нужен сам по себе Tcl. Tcl свободно доступен и не имеет лицензионных отягощений (лицензии как правило BSD-like). Для работы с MT4 вам потребуется 32-х битная (это важно! MT4 32-х битный...
谁来控制点数、执行协议和分析结果呢? 这很漫长,很慢,而且只能通过投票。
能否给我几个关于这个atcl的阅读链接,这样你就不必把所有的东西都看一遍,而是可以更专注于这个话题。
可以用几个链接来阅读这个atcl不挖空心思,更有目的性地熟悉这个话题。
MT4的库-集成器(我正在努力工作的那个)的主要链接是这里的当前主题,加上主题中提到的http://luxtrade.tk/atcl:start(历史上我的网站,一直处于混乱状态 :-) )
Tcl(根站点)本身 :http://www.tcl.tk
wiki:http://wiki.tcl.tk
"标准库" :https://core.tcl.tk/tcllib/doc/tcllib-1-18/embedded/www/toc.html(链接到文档,它们可能是主要的兴趣所在)
目前ActiveState的主要经销商:https://www.activestate.com/activetcl 。
它们 "紧随 "MagicSplat http://www.magicsplat.com/ 和 IronTclhttps://irontcl.com/。
作为一种语言和脚本平台,Tcl至少是经过时间考验的--1990年首次发布,现在它已经事实上存在于Linux/UNIX中,现在也在Android下。98%的人在你的机器上都有它的一些简化形式--python、ruby、R、maxima、octave和其他使用它的GUI(tkinter等等)。
PS.希望他们不会把我的帖子和我以及大量的链接一起杀掉?这都是免费的。
PPS。对于本地外包商来说--也有一个 "美味 "的赏金https://github.com/flightaware/Tcl-bounties。 但只有2500美元的困难任务,而且有严格的纪律。
带着对未来的思考。
在一些补丁和这样一个母亲的帮助下,这就是我们得到的东西。
虽然这是一个实验,甚至在目前的版本中,我还不会包括运行Tk的补丁(首先,这太早了,其他的故障已经满了,其次,它是为啤酒做的,我以后再来回顾)。
但你可以看到,在最后你想得到的,而且有信心在技术上是可能的。是的,是的,一个完全可编写脚本的GUI也是可能的。
顺便说一下,对本地GUI建设者来说,窗口(有阿尔法通道的那个)被过分地描述成这样(这是tcl)。
我把文件按顺序放好--现在在ZIP中,它们被放在指标、脚本、专家、库、包括等文件夹中,在安装库的想法中,只需要
解压到data目录中,一切都应该归位,可以开始工作了(除了Tcl本身需要被放进去 :-) )。
该API是这样的。
似乎相当紧凑,可以使用。
上面的zip-archive是附件,如果有人需要它,并且在安装时有任何问题,请在这里或当面发表。
屋顶上的例子
"即时编译,并在MQL脚本内使用ATcl的C/C++"
好吧,祝贺你的测试结果 !:-)
简而言之,通过ATcl的功能,现在可以很容易地从MT4获得。
Tcl功能
简单--简单的脚本语言 便携式- 运行脚本和算法,你可以在任何系统中使用(Windows、Linux、Android和其他)。 事件驱动--内部事件模型 面向对象--所有现代的OOP特性。 线程- 你可以使用多线程编程的所有功能 - 系统线程、互斥、条件变量、有可能永久存储的共享变量。 虚拟文件系统--作为一个文件系统透明地访问zip、tar、ftp、webdav 数据库- 统一的接口 tdbc 和 sqlite 包含在 tcl 核心中。它积极支持PostresSQL、MySQL、MonetDB、Oracle和任何ODBC数据库。 网络- 客户/服务器:TCP,http,mail,websocket,zmq。几乎所有你可能需要的协议和服务。 密码学--校验和、电子签名、加密散列。对称和非对称加密。公钥基础设施支持,TLS,SASL。 窗口- 窗口环境工具 - 注册表、DDE、COM客户/服务器、ldap客户机 tcllib- Tcl的标准库提供了额外的功能(编程工具、文本处理、数学和统计等)。 c/c++- TinyC编译器包含在库中,Critcl包允许使用系统C/C++编译器(vc,gcc,clang)。模块和函数可以被编译并在运行中使用。 许多库和系统都提供了Tcl API,你可以在你的程序中轻松使用它们
更多信息请见博客网站:https://www.mql5.com/ru/blogs/post/715411(没有人看:-))并在项目页面:http://luxtrade.tk/atcl:start
乐于回答任何有关该主题的问题,并听取意见和评论。
祝贺你!
做一些实际的例子会很有用,类似于kodobase和文章中的内容。
例如,连接到MySQL、Telegram或只是通过TCP连接两个终端。
祝贺你!
做一些实际的例子会很有用,类似于kodobase和文章中的内容。
例如,与MySQL、Telegram的通信,或简单地通过TCP连接两个终端。
在民主党(在档案)。
- 脚本将报价存入SQLite数据库。对于MySQL也是如此,但不是每个人都有:-)
- tcp服务器作为指标和顾问(两种变体)--启动后,它接受8000端口的连接(可在启动时的设置中设置),并在那里翻译传入的ticks。你可以telnet并看到
- http客户端指标,它定期去网站,获取工作页面,解析它并在图表中显示信息摘要,如Comment
演示肯定会继续增长,你可以提出想法。
随着我们的进展,我可能会做一些演示来说明
- "网络服务器",以显示你可以使用浏览器,以及它是如何做到的。
- 使用TSV(线程共享变量),这是GlobalVariable的扩展类似物 - 在应用程序中使用共享数据。
我必须想出更多的脚本:-),使其清晰、简明,至少有一点用处。
有一段相当精彩的Skype对话,其中一些内容我想我需要说出来,因为我觉得它很有用 :-)
1.为什么是一些Tcl而不是更流行的Python、Ruby?
当然,这不会是第一个,因为我很了解它,而且我不仅在使用它进行交易。技术方面也非常重要--Python和Ruby与metatrader线程模型不兼容。理论上它们是可以运行的,但我必须要么挖出很低的API,要么破坏语言。 R和许多其他语言也是如此。
要使它们发挥作用,必须满足"在一个进程和一个线程中可以独立创建几个孤立的实例"的条件。
Lua是我所知道的唯一能做到这一点的其他脚本语言,但它是 "一种没有标准的语言"。
顺便说一下, 所有的DLL开发者 在他们的产品中都应该 遵守 这个粗体字
2.如何正确和快速地分析数据
正确和快速 - 是 在metatrader中进行计算。这就是metatrader的设计目的--接收数据,进行计算并发出订单。在你的DLL中重复它的功能是很愚蠢的。毕竟,MQL本身与C++相当相似,程序员只需要一两天就可以开始用它来编写。而在DLL中,我们要做的是平台没有覆盖和物理上不能覆盖的事情--与数据库、服务、集成等的通信。并加上可以和应该在MetaTrader之外使用的东西。
3.第5版在哪里和什么时候推出?
尽快 :-)从技术上讲,把DLL从4号拖到5号是很容易的,脚本并不关心。Tcl有32位和64位两种。但在4上开发要方便得多,它没有被碰过:-)它很稳定,预计不会有什么惊喜。但是,我们将看到的5,平台开发人员承诺 "服务任务"(以及指标、脚本和专家顾问),肯定有一些与DLL和线程有关的东西将连续改变几个版本。在这个问题得到解决之前,不会有5的版本。
在运行过程中,根据用户反馈,发现了一些与msvcrt DLL依赖性有关的问题。
和一个小小的错误(我的)在寻找同一个DLL。ATcl.mqh处理程序中的相对路径是规定的:-)
都修好了,你可以得到更正的版本(附件),安装说明在传统的地方http://luxtrade.tk/atcl:install。
对于DLL开发人员来说,这是一个有用的信息。
- DLL编译时定义了-D_CRTIMP_ALTERNATIVE,这迫使编译器内联了CRT的几乎所有内容 :-)
- 现在,DLL是用/MT开关构建的,它迫使链接器使用静态链接,不造成不必要的依赖。Redistributable(VC支持包)就像不必到处拖动一样
DLL的体积增大了,但依赖性减少了,拖着库走应该更容易。
PS/小更新--改变了所附的档案。该库是以完全的多线程支持而构建的