期货量化交易软件:DRAKON可视化编程语言
曾几何时,开放主义来到苏联,使之前被分类的DRAKON(字面意思是友好的俄罗斯算法语言,提供清晰)语言可供更广泛的公众使用。目前,这种语言的主要普及者是Parondzhanov V.D.。除了参加研讨会和写书外,他还创建了一个专门介绍这种语言的网站。由于他的奉献精神,DRAKON现在被化学家和医生使用。其他爱好者开始开发从这种语言到更广泛使用的编程语言的翻译器,如C、C++、TCL/TK、Java、JavaScript等。事实上,这个清单要长得多。如果需要,它可以扩展,因为我所知道的所有编辑器都会生成易于阅读的文件(纯文本-*.csv,*.xml;数据库-SQLight…)。其中的许多程序都有用于将规则翻译为其他算法语言的开源代码。与当今许多其他编程语言不同,DRAKON不是“符号化”的,而是图形化的。其中的任何算法都是使用特殊图标在屏幕上绘制的。这些图标根据直观的规则组合成算法。生成的图表非常简单易懂,即使是非程序员也能理解。然后这些图表可以一键转换为可以运行的程序。。。添加图片注释,不超过 140 字(可选)让我们回顾一下算法的概念。算法是一种清晰易懂的描述,可指导执行者完成某些过程以解决特定任务。可能有更好的定义,但我会坚持这个定义。根据这个定义,算法是一种通过执行者的努力来解决问题的方法。理想情况下,一个现成的算法也应该对其他人(或某物)是可理解的。假设我已经为一个利润极高的EA创建了一个算法,该算法使用复杂的正弦马丁格尔进行交易。信号的变化取决于烛形的长度,烛形的长度是一周中某一天与当前烛形的指数分数,以及之前形成的10个峰值的相位。很容易,对吧?不是的???好吧,但我已经解释了一切!!!如果你是一个开发人员,那么我应该怎么做才能让你理解呢?最有可能的是,我应该画一个图表,这样你就可以理解在编码方面应该做什么。在图表准备好之后,它可以作为一个普通的需求规范,现在您已准备好将其转换为代码。这就是DRAKON格式的图形的外观。如果你是一名程序员,并且自己绘制了这张图,那么通常只需按下几个键就可以从中获取操作代码,或者至少创建一个可靠的框架,然后可以使用一系列自动更正来调整该框架。如果你是一个客户,那么如果你展示一个图表,清楚地描述在某些情况下该做什么,那么你将更容易向程序员解释你想要什么。例如,当两个MA交叉时,赫兹量化只需要记住信号,并在价格从“初级”平均水平反弹的那一刻,但不迟于当地时间19:00的时候进行交易。当然,你可以用语言来描述这一切。但你也可以画一张图,问计算机(或者更准确地说,抽象的执行者)一些简单的问题,比如:“现在超过19点吗?”或“平均值交叉了吗?”,并描述如果答案是“是”该怎么办,如果答案是”否“该怎么办。这不会减少程序员的技术工作负荷,但至少他们会更好地理解你的想法,并且在第一个版本中出错的可能性更小。这些错误最终必须得到纠正,这可能需要额外的时间(和/或金钱)。一般来说,DRAKON图对程序员和客户都是有益的,他们不熟悉编程,但非常了解他们所希望的EA的工作方式。简单地说:
这种语言的结构确实有助于你思考。当我看到图形式的算法时,我更容易理解模块中各部分之间以及模块本身之间的关系,发现错误并使用没有图可能看起来不明显的解决方案。
DRAKON有助于更好地了解客户。
如果出现任何问题,将我的建议传达给客户会更容易。
客户更容易批评我的错误。
如果客户绘制了DRAKON图,则可以将其转换为代码,并且可以认为需求规范已完成。这比处理编码过程中出现的问题要容易得多。可能有一些功能对客户来说是显而易见的,但对开发人员来说却不是。该图消除了潜在的误解。
对我来说,算法中的图形是不可或缺的通信工具。当两个人对结果感兴趣并进行对话时,最好说相同的语言。你一旦理解了DRAKON图的语言,就会发现它对于任何知识分支的专家来说都是通用的。
DRAKON的基本开发环境在准备这篇文章时,我使用了三个主要工具。
首先,赫兹量化有Drakonhub。这是一个在线编辑器,允许绘制所有类型的DRAKON图,具有非常方便的界面,但不能将图导出为代码。还有一个单独面向程序员的项目 - drakon.tech。但它只适用于JavaScript(至少根据我的发现如此)。此外,非程序员可以使用的图表数量似乎比Drakonhub少得多。一般来说,如果客户渴望在生成后手动实现变量类型,那么这对他们来说是完美的,对开发人员来说也是正常的。有俄语、英语和挪威语界面。
还有Fabula(下载链接)。该程序是免费的,具有俄语和英语界面,以及适用于Windows的离线应用程序(虽然它是使用QT库编写的,但它是封闭源代码的)。这个界面对我来说几乎是完美的。数据保存在用zip归档器打包的XML中(这意味着您可以编写XSLT并在必要时直接发布程序)。它可以跟踪算法,这些算法可以用于演示或创建伪代码。一个伪代码,反过来,可以使用一系列的自动更正变成一个完全工作的程序。本文中的大多数图表都将使用Fabula创建。
第三,赫兹量化有DRAKON Editor。它的界面稍微不那么方便,因为图标应该手动放置。此外,一些图标是不存在的,而一些标题并没有以最佳方式实现。另一方面,我可以将图表转换为MQL5代码,而无需做太多准备工作。此外,它还可以突出显示一些关键字。还有,它是用TCL/TK编写的,这意味着它是跨平台的,因此可以自然地在Linux上运行,而不需要Wine。这个编辑器的主要优点是它支持许多编程语言。DRAKON图可以很容易地转换成C++、Java、JavaScript、D、TCL、Go和一堆其他语言。因此,如果你喜欢DRAKON,这对程序员来说是一件非常有用的事情。然而,它生成的代码并不总是看起来很漂亮。准备文件的方法也不明显,您需要阅读文档。但一旦你弄清楚了,它就会非常有效。界面有俄语和英语两种语言。
还有IS Drakon。对我来说,它的主要缺点是它是一种付费产品。我没有深入研究它的界面。对我来说,它似乎与DRAKON Editor相似,但我在研究它时并没有发现任何特别的优势。
正如我已经提到的,这里的大多数图表都是使用Fabula制作的。在我看来,它的图表是最漂亮的,不需要任何复杂的准备工作。如果要从图表中生成代码,我将在DRAKON编辑器中执行此操作。
页:
[1]