为MT制作一个Python交易系统。 - 页 4 1234567891011...17 新评论 Yuriy Asaulenko 2018.08.06 19:45 #31 现在一切都准备好了,是时候将我们的Python TS与MT终端连接起来了。然而,为了做到这一点,需要采取一些行动。 我们未来的TC读取并将文件写入C:\PyTS文件夹,但MT终端在MQ的某种未知的心血来潮下,只能读写文件到它自己的目录--C:\<大量字母和数字>\Files,而没有其他方式。当然,你可以在Python代码中改变设置,让它交换到本地的MQ文件夹,但我需要终端从那里读写文件,到我想要的地方,而不是到它,终端想要的地方。越是这样,将来就越有必要。 实际上,这个问题在几年前就已经解决了,在我的话题--https://www.mql5.com/ru/forum/79922。 一切都可以用Windows工具解决。在终端文件夹C:\<很多字母和数字>\Files中,你把对文件夹C:\PyTS的引用,被终端(也包括操作系统)解释为子文件夹Files\PyTS,终端在那里写,在C:\PyTS中,就像在它的本地文件夹中)。 这是在命令行下进行的,使用本地Windows MKLINK工具。对于那些不能自己动手的人,这里有一个详细的描述。 输入execute - cmd,或者从菜单中输入 - Utilities-Windows -> Command Prompt。你会得到一个窗口,输入MKLINK或mklink。在这里,我们有。 现在输入cd......几次,直到进入C:\的位置。 然后打开Windows资源管理器,进入C:/<很多字母和数字>/Files,即终端放置文件的地方,选择并复制路径到文件夹Ctrl-Ins。 回到命令提示符窗口,在那里写cd<空格>,用Shift-Ins粘贴路径到...。\Files, and Enter.我们明白了。 现在我们在命令行中写下 - mklink /D PyTS c:\PyTS ,然后像往常一样 - Enter。在这里,我们得到了它。 我们看到,一个链接已经被创建。我们看到它出现在......\Files文件夹中,我们访问它 - 我们看到文件在C:\PyTS文件夹中。))就这样了。 现在,所有由终端写入文件夹...Files\PyTS的文件实际上都会被写入文件夹C:\PyTS。 . RAM Диск. 2016.04.07www.mql5.com Общее обсуждение: RAM Диск. Yuriy Asaulenko 2018.08.07 21:16 #32 所以,我们已经完成了文件共享的工作。一切正常,所有来源都在附件中。其他一切,以及从Python到MT的反向转移,都是以同样的方式进行的,我希望不会造成任何问题。要运行,请阅读并执行我之前的帖子。没有其他办法)。MQL代码也在附件中。- MQL读取历史记录,并将其传递给Python应用程序。Python接受它并打印出来。在Python中不要忘记按 "开始 "按钮。) 我希望没有必要在MQL代码上写评论--有一个参考)。是的,MT的数据传输是通过定时器完成的,对我来说,在这个阶段更方便。如果你有任何问题,请不要犹豫,请致电)。我将暂时暂停--现在我们需要用战略来解决问题。如果你有任何建议--我们会考虑)。 再次,文件共享是策略 开发和调试的理想选择,因为它不需要努力去修改。对于大多数现实世界的战略来说,它仍然是合适的。但是,如果需要,我们总是可以用其他东西代替它,而不需要对程序进行任何重大改变--1-2天的事。 附加的文件: PyTS.zip 4 kb PyTSMT.mq5 7 kb Yuriy Asaulenko 2018.08.30 18:43 #33 我不保证经常写,只在我得到时写。这个项目是在后台进行的,没有任何喧嚣,在我的业余时间。 认为系统显示图表是件好事 一般来说,Python是一种简单的语言--用几天时间来学习它就足够了。但处理模块就难多了--有成千上万的模块,谁做什么,为什么做,并不总是显而易见的。 对于图形,就是这样--我不得不花很长时间来整理它。但结果是这样的。 该程序读取一个CSV文件并绘制图表。 该图显示了按收盘价计算的价格,大约有5万个烛台。 如果你点击放大镜,在图表区域选择一个矩形,像这样。 你可以放大图表,你就会明白。 这可以反复进行。该图表还可以移动并保存为图片,当然也可以扩展为全屏。 你需要的所有文件都在该应用程序中。解压缩到某个文件夹并运行CSVGraph.py 在运行它之前,别忘了检查你要导入的模块是否已经安装。 附加的文件: CSVGraph.zip 582 kb Vladimir Perervenko 2018.09.08 18:56 #34 作为Python的练习,也许。但从实际的角度来看,它没有什么用处+浪费了时间。当然,每个人都有自己的方式。祝好运 Yuriy Asaulenko 2018.09.17 16:57 #35 让我们把这些愚蠢的事情留给邻居和业余的传声筒,但让我们自己总结一下初步结果。 如果你已经熟悉了这个主题 如果你是一个专家,你已经知道一些Python,你知道如何处理CSV文件,你知道如何建立图表和与终端交换数据。这已经足够开发、模拟和测试交易策略。如果你的策略在TF 1分钟或更长的时间内工作,不使用ticks,并以5-10秒的间隔访问终端,你可能已经在Phyton中直接创建工作策略,只留下数据的传递和订单的 "执行 "给终端。 此外,你已经了解了编程和Phyton环境,其水平超过了机器学习的本地辩护人中非常流行的语言和环境R。你已经能够在Python中建立甚至非常复杂的指标策略,但Python的所有功能(类似于R)都可以用模块来实现。在本专题中,我们只使用了3个模块--tkinter、numpy和matplotlib。 现在,Python需要的是建立更高级的策略,比如说使用机器学习。-scikit-learn模块可用于此。随着scikit-learn 的使用,以下功能变得可用 -用户指南。你喜欢这套方法吗?- 它已经有了几乎所有的东西,包括不陌生的R和机器学习主题,从贝叶斯分类到随机森林和神经网络。 这只是Python中的机器学习模块之一,大约有十几个模块。据说scikit-learn 模块不是其中最好的,也不是最先进的。这取决于谁需要什么。其他的在互联网上不难找到。 PS 对于那些开始或刚开始接触Python的人。 我试过几个Python开发环境,最后停在了对初学者(包括我自己)最方便的地方--Anaconda。它的方便之处在于,我需要的所有东西都已经安装好了,包括Python。我使用Spyder 编辑器--与Anaconda 一起安装。 我也建议你安装VSCode编辑器--也非常好,直接从Anaconda 安装。 你可能对我的选择不满意。 Yuriy Asaulenko 2018.09.20 22:21 #36 经过4页的主题,我们终于准备好继续讨论已经陈述的内容--Python中的策略。一切都已经做好了。我们将从一个简单的策略开始--在EMA交叉点上进行交易,可能还要进行修改。当我掌握神经网络(NS)时,我从一个简单的任务开始--NS应该识别EMA的交叉点。从实际的角度来看,这项任务绝对是无用的,但它使我们能够确定如何为NS提供市场数据,如何准备,并解决了许多培训问题。现在我们的任务根本不是为了盈利,甚至不是为了与终端沟通--这很简单,但如果没有一个盈利的策略,就毫无意义。我们现在的任务是创建一个策略模板,并学习如何测试它,任何策略都可以。然后将任何策略放入模板并进行测试,如果成功,我们就可以通过终端开始交易。所需的指标都已准备就绪。请看用Python制作的图(在Python中,绘制各种图表是非常方便和快捷的)。这是对单一跳跃的反应--1(t),或过渡函数。实际上,是标准测试之一。 fm是传统的移动平均线(仅用于校准),f1是EMA,有一个修改的系数计算,f2是一个非标准的指标。然而,正如我们共同的熟人常说的那样。 Igor Makanu:我已经说过一百万次了,我可能还会说......没有人发明了比MT供应的指标更好的东西(标准......所以说古老的斯拉夫指标......异教徒!!!)。因此,为了不用科学来愚弄你的脑袋,你将得到标准的EMA和策略来源。然而,我将在我的指标上制作并测试该策略。也许,我将隐藏一些其他的东西,以避免被人窥视,但不损失功能。但是,这并不是为了EMBA的跨越,而是为了这一切。这一切的目标是机器学习策略。到目前为止,我正在测试不同的分类方法。这里是测试结果。 到目前为止,高斯、RBF SVM、神经网络和天真贝叶斯分类法都处于领先地位。Python程序已经准备好了,在互联网上的某个地方可以找到,但数据的准备工作要由用户来做。 我们走吧。 Sergey Chalyshev 2018.09.21 01:26 #37 Yuriy Asaulenko:经过4页的主题,我们终于准备好继续讨论已经陈述的内容--Python中的策略。一切都已经为此做好了准备。我们将从一个简单的策略开始--在EMA交叉点上进行交易,可能还要进行修改。当我掌握神经网络(NS)时,我从一个简单的任务开始--NS应该识别EMA的交叉点。从实际的角度来看,这项任务绝对是无用的,但它使我们能够确定如何为NS提供市场数据,如何准备它并解决许多训练问题。现在我们的任务根本不是为了盈利,甚至不是为了与终端沟通--这很简单,但如果没有一个盈利的策略,就毫无意义。我们现在的任务是创建一个策略模板,并学习如何测试它,任何策略都可以。然后将任何策略放入模板并进行测试,如果成功,我们就可以通过终端开始交易。所需的指标都已准备就绪。请看用Python制作的图(在Python中,绘制各种图表是非常方便和快捷的)。这是对单一跳跃的反应--1(t),或过渡函数。实际上,是标准测试之一。 fm是传统的移动平均线(仅用于校准),f1是EMA,有一个修改的系数计算,f2是一个非标准的指标。然而,正如我们共同的熟人常说的那样。 因此,为了避免用科学愚弄你的脑袋,你将得到标准的EMA和策略的来源。然而,我将在我的指标上制作并测试该策略。也许,我将隐藏一些其他的东西,以避免被人窥视,但不损失功能。但是,这并不是为了EMBA的跨越,而是为了这一切。这一切的目标是机器学习策略。到目前为止,我正在测试不同的分类方法。这里是测试结果。 到目前为止,高斯、RBF SVM、神经网络和天真贝叶斯分类法都处于领先地位。Python程序已经准备好了,在互联网上的某个地方可以找到,但数据的准备工作要由用户来做。 我们走吧。 他们改用神经网络真是太可惜了。但主要是非常有用,我想它会派上用场。 关于交易、自动交易系统和策略测试的论坛 机器学习机器人 Yuriy Asaulenko, 2018.09.21 00:45 他们不会。他们所做的最大限度与以前一样。 Yuriy Asaulenko 2018.09.21 12:46 #38 Sergey Chalyshev: 他们改用神经网络真是太可惜了。但主要是非常有用,我想它会派上用场。在这个问题上,没有计划改用NS和其他国防部的方法。至少现在是这样)。我们将拭目以待。 这里所做的是一个Python系统模板。这个模板的具体填写是具体用户的事。 好吧,为了显示Python库的能力,我想,这不是多余的。 Yuriy Asaulenko 2018.09.21 19:09 #39 PS 是的,我没有说,我将为FORTS(MOEX)做所有的策略。我不玩外汇OC。 Yuriy Asaulenko 2018.09.29 15:57 #40 让我们继续进行我们的游戏。到今天为止,我们已经准备好了,并且正在运作。1.策略测试员。2.战略模板。3.一个简单的EMA交叉策略被放在模板中。当程序启动时,策略被测试,所有交易的报告被保存在CSV文件中,利润图显示在控制台,可以保存在磁盘上--见图。 测试是使用SBER MOEX期货,3M区间,1M时间框架,总共约55000根蜡烛。策略中只使用了收盘的蜡烛图。测试的时间是~1分钟,从程序开始。这大约是每支蜡烛1毫秒。一个包含所有必要程序文件的文件夹,包括SBER期货的历史记录,附在后面。要运行该程序--运行main.py文件。在运行之前,确保你的Python安装了所有必要的包和模块。如果你在Anaconda中运行,所有需要的包-模块都已经安装了。基本上,把你的策略写进模板,然后进行测试。现在,我如何想象这项技术的应用。决定在Python平台上翻译使用神经网络的成熟策略,也许会有一个小小的升级。有了它,就可以用最少的费用掌握Python中可用的ML技术的应用,将系统连接到终端并开始直接操作。对我来说,主要的交易平台是MOEX,外汇是辅助性的,所以在可预见的未来,不打算将系统连接到MT终端,尽管在主题开始时,它被假设为测试的一个选项。然而,论坛上有足够多的专家,如果他们愿意,可以做到这一点。此外,C API Python比相同R的C API容易得多,当地专家已经成功地应对了这一点。我们可以认为,本课题的目标已经完全实现了。 附加的文件: Public.zip 683 kb 1234567891011...17 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
现在一切都准备好了,是时候将我们的Python TS与MT终端连接起来了。然而,为了做到这一点,需要采取一些行动。
我们未来的TC读取并将文件写入C:\PyTS文件夹,但MT终端在MQ的某种未知的心血来潮下,只能读写文件到它自己的目录--C:\<大量字母和数字>\Files,而没有其他方式。当然,你可以在Python代码中改变设置,让它交换到本地的MQ文件夹,但我需要终端从那里读写文件,到我想要的地方,而不是到它,终端想要的地方。越是这样,将来就越有必要。
实际上,这个问题在几年前就已经解决了,在我的话题--https://www.mql5.com/ru/forum/79922。
一切都可以用Windows工具解决。在终端文件夹C:\<很多字母和数字>\Files中,你把对文件夹C:\PyTS的引用,被终端(也包括操作系统)解释为子文件夹Files\PyTS,终端在那里写,在C:\PyTS中,就像在它的本地文件夹中)。
这是在命令行下进行的,使用本地Windows MKLINK工具。对于那些不能自己动手的人,这里有一个详细的描述。
输入execute - cmd,或者从菜单中输入 - Utilities-Windows -> Command Prompt。你会得到一个窗口,输入MKLINK或mklink。在这里,我们有。
现在输入cd......几次,直到进入C:\的位置。
然后打开Windows资源管理器,进入C:/<很多字母和数字>/Files,即终端放置文件的地方,选择并复制路径到文件夹Ctrl-Ins。
回到命令提示符窗口,在那里写cd<空格>,用Shift-Ins粘贴路径到...。\Files, and Enter.我们明白了。
现在我们在命令行中写下 - mklink /D PyTS c:\PyTS ,然后像往常一样 - Enter。在这里,我们得到了它。
我们看到,一个链接已经被创建。我们看到它出现在......\Files文件夹中,我们访问它 - 我们看到文件在C:\PyTS文件夹中。))就这样了。
现在,所有由终端写入文件夹...Files\PyTS的文件实际上都会被写入文件夹C:\PyTS。
.
MQL代码也在附件中。- MQL读取历史记录,并将其传递给Python应用程序。Python接受它并打印出来。在Python中不要忘记按 "开始 "按钮。)
我希望没有必要在MQL代码上写评论--有一个参考)。是的,MT的数据传输是通过定时器完成的,对我来说,在这个阶段更方便。
我将暂时暂停--现在我们需要用战略来解决问题。如果你有任何建议--我们会考虑)。
再次,文件共享是策略 开发和调试的理想选择,因为它不需要努力去修改。对于大多数现实世界的战略来说,它仍然是合适的。但是,如果需要,我们总是可以用其他东西代替它,而不需要对程序进行任何重大改变--1-2天的事。
我不保证经常写,只在我得到时写。这个项目是在后台进行的,没有任何喧嚣,在我的业余时间。
认为系统显示图表是件好事
一般来说,Python是一种简单的语言--用几天时间来学习它就足够了。但处理模块就难多了--有成千上万的模块,谁做什么,为什么做,并不总是显而易见的。 对于图形,就是这样--我不得不花很长时间来整理它。但结果是这样的。
该程序读取一个CSV文件并绘制图表。
该图显示了按收盘价计算的价格,大约有5万个烛台。
如果你点击放大镜,在图表区域选择一个矩形,像这样。
你可以放大图表,你就会明白。
这可以反复进行。该图表还可以移动并保存为图片,当然也可以扩展为全屏。
你需要的所有文件都在该应用程序中。解压缩到某个文件夹并运行CSVGraph.py
在运行它之前,别忘了检查你要导入的模块是否已经安装。
让我们把这些愚蠢的事情留给邻居和业余的传声筒,但让我们自己总结一下初步结果。
如果你已经熟悉了这个主题 如果你是一个专家,你已经知道一些Python,你知道如何处理CSV文件,你知道如何建立图表和与终端交换数据。这已经足够开发、模拟和测试交易策略。如果你的策略在TF 1分钟或更长的时间内工作,不使用ticks,并以5-10秒的间隔访问终端,你可能已经在Phyton中直接创建工作策略,只留下数据的传递和订单的 "执行 "给终端。
此外,你已经了解了编程和Phyton环境,其水平超过了机器学习的本地辩护人中非常流行的语言和环境R。你已经能够在Python中建立甚至非常复杂的指标策略,但Python的所有功能(类似于R)都可以用模块来实现。在本专题中,我们只使用了3个模块--tkinter、numpy和matplotlib。
现在,Python需要的是建立更高级的策略,比如说使用机器学习。-scikit-learn模块可用于此。随着scikit-learn 的使用,以下功能变得可用 -用户指南。你喜欢这套方法吗?- 它已经有了几乎所有的东西,包括不陌生的R和机器学习主题,从贝叶斯分类到随机森林和神经网络。
这只是Python中的机器学习模块之一,大约有十几个模块。据说scikit-learn 模块不是其中最好的,也不是最先进的。这取决于谁需要什么。其他的在互联网上不难找到。
PS 对于那些开始或刚开始接触Python的人。
我试过几个Python开发环境,最后停在了对初学者(包括我自己)最方便的地方--Anaconda。它的方便之处在于,我需要的所有东西都已经安装好了,包括Python。我使用Spyder 编辑器--与Anaconda 一起安装。 我也建议你安装VSCode编辑器--也非常好,直接从Anaconda 安装。
你可能对我的选择不满意。
所需的指标都已准备就绪。请看用Python制作的图(在Python中,绘制各种图表是非常方便和快捷的)。这是对单一跳跃的反应--1(t),或过渡函数。实际上,是标准测试之一。
fm是传统的移动平均线(仅用于校准),f1是EMA,有一个修改的系数计算,f2是一个非标准的指标。
然而,正如我们共同的熟人常说的那样。
我已经说过一百万次了,我可能还会说......没有人发明了比MT供应的指标更好的东西(标准......所以说古老的斯拉夫指标......异教徒!!!)。
因此,为了不用科学来愚弄你的脑袋,你将得到标准的EMA和策略来源。然而,我将在我的指标上制作并测试该策略。也许,我将隐藏一些其他的东西,以避免被人窥视,但不损失功能。
但是,这并不是为了EMBA的跨越,而是为了这一切。这一切的目标是机器学习策略。到目前为止,我正在测试不同的分类方法。这里是测试结果。
到目前为止,高斯、RBF SVM、神经网络和天真贝叶斯分类法都处于领先地位。Python程序已经准备好了,在互联网上的某个地方可以找到,但数据的准备工作要由用户来做。
我们走吧。
所需的指标都已准备就绪。请看用Python制作的图(在Python中,绘制各种图表是非常方便和快捷的)。这是对单一跳跃的反应--1(t),或过渡函数。实际上,是标准测试之一。
fm是传统的移动平均线(仅用于校准),f1是EMA,有一个修改的系数计算,f2是一个非标准的指标。
然而,正如我们共同的熟人常说的那样。
因此,为了避免用科学愚弄你的脑袋,你将得到标准的EMA和策略的来源。然而,我将在我的指标上制作并测试该策略。也许,我将隐藏一些其他的东西,以避免被人窥视,但不损失功能。
但是,这并不是为了EMBA的跨越,而是为了这一切。这一切的目标是机器学习策略。到目前为止,我正在测试不同的分类方法。这里是测试结果。
到目前为止,高斯、RBF SVM、神经网络和天真贝叶斯分类法都处于领先地位。Python程序已经准备好了,在互联网上的某个地方可以找到,但数据的准备工作要由用户来做。
我们走吧。
他们改用神经网络真是太可惜了。但主要是非常有用,我想它会派上用场。
关于交易、自动交易系统和策略测试的论坛
机器学习机器人
Yuriy Asaulenko, 2018.09.21 00:45
他们不会。他们所做的最大限度与以前一样。
他们改用神经网络真是太可惜了。但主要是非常有用,我想它会派上用场。
在这个问题上,没有计划改用NS和其他国防部的方法。至少现在是这样)。我们将拭目以待。
这里所做的是一个Python系统模板。这个模板的具体填写是具体用户的事。
好吧,为了显示Python库的能力,我想,这不是多余的。
当程序启动时,策略被测试,所有交易的报告被保存在CSV文件中,利润图显示在控制台,可以保存在磁盘上--见图。