为MT制作一个Python交易系统。

 
用Python写一个交易系统 的想法出现了,既然如此,为什么不向公众提供呢。也许除了我之外,还有人也会对它感兴趣。
但为什么是Python?
- 这是一个复杂的问题,有很多方面。我试着回答一下。
历史上,我的电脑上安装了四个终端。其中一些有完整的API,一些有自己的非标准语言,一些两者都有。
第一个,在遥远的2008年,是带有API的终端 - 它被用来创建第一个系统,最终达到了C++/C#语言。当进一步增加终端(有或没有语言)时,系统没有被重新设计,只是在终端和系统之间开发了一个新的界面。因此,系统是统一的,要与另一个终端工作,只需连接所需的接口。在最简单的情况下,它不需要超过一天的时间。而且,也没有为某个特定的终端重新设计系统的愿望。
终端只是一个数据的提供者和一个请求的执行者。这就是全部--对它没有更多要求。
这就是这个系统的意识形态。
但这只是一个方面。其他的都在接下来的帖子中。我不保证经常写作。
 
在Python中,谁想这样?我有计划在大约3个月内将一些东西移植到Java。我正在考虑这个问题。而我甚至根本没有看到python中的任何经纪人API。虽然......也许有一些,当然了。
 
是的,但为什么是Python?
实际上,Python让我感兴趣,因为它有很多库(模块),包括那些用于机器学习(机器学习或MO)的库,这也是我去年一直在做的事情。然而,我还没有用Python工作过--我还没有写过一行)。好吧,我已经尝试了一些抽象的东西,但没有具体的目标。
然而,为了将Python专门应用于交易系统,首先有必要对其与TS和终端的互动进行调试。
我认为通过DLL从MQL调用 Python函数 是错误的--要通过这种方式调用Python函数,我必须运行一个解释器并使用它来调用该函数--而这对于每一次调用来说都是一个非常漫长的过程。
我有一个不同的概念:TC是一个成熟的EXE应用程序,存储所有以前的数据和必要的历史。因此,我们只从已经运行的应用程序中调用函数--调用的时间是最小的。
有些人说--写道--Python非常慢。这是不正确的。对于大多数系统(甚至是日内)来说,Python的性能是绰绰有余的,我们将在后面看到这一点。至于HFT,我们无法以任何速度与他们竞争--那是其他的钱)。和其他传播)。
 
Viktar Dzemikhau:
我不知道谁想用Python。我有计划在大约3个月内将一些东西移植到Java。我正在考虑这个问题。而在Python中,我甚至根本没有看到任何经纪人的API。虽然......也许有一些,当然了。

等一下,我们也来做一下API。在这个问题上。不是一次性的)。如果会有兴趣,从论坛方面。

IMHO,Java不是一个选项。我可能是错的。

 
Konstantin Nikitin:
作为一种选择,你可以使用QT编写C++。其中一个优点是,你可以立即为跨平台的编译编写。

我同意。但这个主题的意图是Python和使用其库(模块)。而我们最终会得到一个跨平台(crossterminal)的API。对于任何编程语言。

但是,一般来说,对于大多数TC来说,Python是绰绰有余的。而在TC和任何终端之间写入的接口是,嗯,最多一天。

但是,不是一次性的,要看空闲时间。我不会定期承诺什么。

 
Python解释器运行一次,然后你就可以在EA或指标中使用它。一切都已经完成,并可在论坛上获得。有一个关于机器学习的主题。使用https://github.com/RandomKori/Py36MT5
 
Grigoriy Chaunin:
Python解释器只需运行一次,然后你就可以在你的专家顾问或指标中使用它。一切都已经做了,而且在论坛上可以找到。有一个关于机器学习的主题。使用https://github.com/RandomKori/Py36MT5

是的,谢谢你。但这个想法是不同的。你需要一个成熟的应用程序,即EXE,来实现它。但有些东西可能会派上用场。遗憾的是,DLL的源代码没有,但这并不关键。

 
消息来源都摆在那里。
 
Grigoriy Chaunin:
所有的来源都摆在那里。

是的,的确,整个DLL项目 都在VS.NET中。未消化的。

不知何故错过了国防部主题中的那个链接。

但是,正常的英雄总是要轮番上阵的(c)。而我们将走自己的路)。这条线有其他任务。

 

让我们开始创建一个Python应用程序,它将与终端交换数据--从终端接收数据并将其输出到输出窗口,以及从SendData窗口向终端发送数据。我们将需要它来测试TC与终端的互动。

到目前为止,该应用程序没有执行任何功能。

这里是窗口。

附件中的Python代码。

附加的文件:
PyTS.txt  2 kb
 
Yuriy Asaulenko:

让我们开始创建一个Python应用程序,它将与终端交换数据--从终端接收数据并将其输出到输出窗口,以及从SendData窗口向终端发送数据。这对于测试TC与终端的互动是必要的。

到目前为止,该应用程序没有执行任何功能。

这里是窗口。

附件中的Python代码。

代码中的注释在哪里?你认为这里的每个人都理解Python,你的想法、评论会是多余的吗?

怎么会有这么多的 "骰子"""?袨泻薪芯 胁芯屑邪褌械胁 ""?

在哪个库中导入 tkinter,其函数(方法)的描述在哪里?