分类
短线操盘

使用MQL5信号进行自动交易

eyeglasses ​

python - 使用 MQL5 将 OHLC 值从 Python API 集成到 MT5

我已经从 iqoption 获得了 OHLC 值,并试图找到一种将它与 MT5 一起使用的方法。
这是我获得值的方式:

线路: I_want_money.get_candles(goal,60,111,time.time()) 输出 json 为:Output of the command

现在我在输出中得到 json,所以它像 API 一样工作,我猜是这样。

同时,我尝试在 MT5 中创建一个自定义符号为 iqoption .现在我只想将来自 API 的 OHLC 数据添加到它,以便它继续从 Iqoption 获取数据并在图表窗口上显示自定义交易品种 iqoption 的图表。 .

已编辑

这是来自 iqoption 的实时流数据的代码:

最佳答案

到目前为止,你有 python 代码:

接下来,您需要 MT5 中的数据。
最简单的方法是循环现有文件,确保您可以读取它们并读取(如果不能,则放弃)并在读取后删除,然后继续接收到的数据。
最简单快捷的方法当然是使用 0MQ,但让我们在没有 dll 的情况下使用它。
为了读取文件,您需要设置一个可以尽可能快地工作的计时器,然后让它走。由于您无法让 Windows 应用程序的 sleep 时间少于 15.6 毫秒,因此您的计时器应该 sleep 这个时间。

最后但并非最不重要的是:处理获得的文件。
正如上面所建议的,它为每个新刻度都有一个 json 格式的刻度,以\r\n 分隔。
我们的目标是将它添加到符号中。为了解析 json, jason.mqh 是一个可用的解决方案,但您当然可以手动解析它。

不要忘记添加调试信息并请求 GetLastError() 是由于某种原因你得到错误。

这可以在回测仪中工作吗?当然不是。拳头, 使用MQL5信号进行自动交易 OnTimer() MQL 测试器不支持。接下来,您需要一些历史记录以使其运行。如果您没有任何历史记录 - 没有人可以帮助您解除经纪人可以提供给您的信息;最好的想法可能是立即开始收集和存储它,当项目准备好(可能再过几个月)时,您将准备好并能够使用可用数据集测试和优化策略。您可以将收集到的集合应用到测试器中(与 使用MQL5信号进行自动交易 MQL4 相比,MQL5 实际上是算法交易开发的下一步),无论是手动还是使用诸如 tickDataSuite 及其 Csv2Fxt.ex4 文件之类的东西,该文件生成测试器可以读取和处理的 HST 二进制文件;无论如何,这是另一个问题,没有人可以告诉您您的经纪人是否将他们的数据存储在某个地方以提供给您。

MT5(メタトレーダー5)で使用可能な自動売買プログラムやインジケータを作成、紹介等を行います

ここでは、EA・インジケータ・スクリプトの導入の仕方を記載していきます。 1.まずはex5ファイルを使用するブローカーのMQL5フォルダに移動させます MT5を起動させ、ファイルから「データフォルダを .

创建并操控项目

项目结构和设置

创建新项目与创建正常的 MQL5 程序一样简单。 点击新建项目并在 MQL5 向导 里选择期望的程序类型:

创建一个新项目

然后完成标准的 MQL5 向导步骤: 设置所需程序的类型,名称和属性,以及选择适当的事件处理器。

基于 MQ5 文件创建项目 #

如果您已经以 MQ5 文件的形式进行了开发,则可以轻松将它们转换为项目。 选择一个文件并点击 位于文件关联菜单里的从源文件新建项目:

基于源文件创建一个新项目

在已选文件所在的目录中,将会创建一个具有相同名称和mqproj为扩展名的新项目文件。通过#property在源代码中指定的主要程序属性将被自动添加到项目,包括名称,版权,版本,链接到开发者网站和程序描述。通过 #include 指令包含在源代码中的所有文件都将被添加到项目的依赖部分。

主项目设置可以从单独的对话框访问,而不用编辑源代码,因为它通常在单独的 使用MQL5信号进行自动交易 MQ5 文件中完成。 点击打开项目设置 项目关联菜单中的属性。 以下项目设置可用:

  • 平台是项目开发的平台版本,即 MetaTrader 4 或 MetaTrader 5。
  • 程序类型: 智能交易系统,指标,脚本或函数库。
  • 版权信息显示版权信息,类似于源代码中的 "#property copyright. "。
  • 链接显示开发人员网站的链接,类似于源代码中的 "#property link . "。
  • 版本: 指定程序的版本,类似于源代码中的 "#property version . "。
  • 图标: 程序的图标,类似于源代码中的 "#property icon . "。
  • 说明: 程序说明,类似于源代码中的 "#property description . "。
  • 启用额外优化:禁用优化的应用程序编译速度更快,但执行速度较慢。
  • 检查浮点分隔:检查禁用的应用程序速度稍快,因为在执行代码过程中,不检查除数为零的错误。
  • 使用优化缓存: 优化期间,策略测试器会将所有执行的传递结果保存在缓存中。为每一组输入保存结果。这允许在对相同参数进行重新优化期间使用现有的结果,而不会浪费时间重新计算。
    但是在一些任务中(例如,在数学计算中),则可能必须进行计算,而无论是否提供之前的结果。在这种情况下,您应该在项目中禁用“使用优化缓存选项”。所有测试结果将仍被保存在缓存中,因此您可以在策略测试报告中查看关于已执行传递的数据。
  • 计算测试器中每个报价上的指标 ― 该选项只适用于指标项目。在策略测试器中运行时,强制在每个报价启用指标计算。该选项只适用于策略测试器中的操作。在平台中,通常在每次接入报价时计算指标。
    当您使用指标测试EA时,只有访问指标数据时策略测试器才会计算指标值,即当请求指标缓冲区的值时。如果EA交易不需要每个报价的指标值,则将显著加快测试和优化期间的速度。如果指标需要在每个报价进行计算,则启用该选项。
    此外,在以下情况下,策略测试器中的指标在每次报价时计算:
  • 当在虚拟模式下测试时
  • 如果指标包含这些函数EventChartCustom、OnChartEvent、OnTimer
  • 如果指标是使用低于1916版本号的编译器进行创建

自项目中添加和删除文件 #

源代码中使用的所有文件都会自动添加到项目导航器中。 例如,如果使用 #include 指令包含新的 MQH 文件,它将自动出现在导航器的 "依赖" 部分。 使用的头文件被添加到 Headers 部分; 图像,声音和项目中使用的其它 MQL 程序(通过 #resource指令)被添加到资源部分。

带有源代码的MQ5文件显示在资源版块。其它文件,诸如测试的设置文件和图表模板,可以添加到 "设置和文件" 部分。

自项目中添加和删除文件

编译一个项目 #

若要编译可执行的 EX5 文件,请打开项目或程序的主体 MQ5 文件,然后运行编译器命令(F7)。 生成的可执行文件将在项目文件 MQPROJ 所在的同一目录中创建。

MetaEditor 允许程序员在团队中远程开发 MQL5 应用程序。 MQL5 存储 在线存储库已集成在编辑器中:

  • 版本支持令您可以查看针对项目所做的所有更改,并在需要时恢复它们。
  • 在线访问该项目可确保从任何计算机、任何项目成员随时访问,使用 MQL5 社区 帐户在 MetaEditor 中激活它。
  • 您可以授予项目参与者单独的权限,令其查看或编辑项目。
  • 您还可以创建 公开项目, 使用MQL5信号进行自动交易 其对所有用户都是可见的。 公开项目显示在 MetaEditor 的单独标签中,任何人都可以申请参与。

共享项目是由一个单独的共享项目版块来管理。如果您尚未激活存储,请从所需文件夹的关联菜单中执行激活 MQL5 存储命令。 MetaEditor 将检查您的存储是否包含任何已保存的数据,以及是否有您可用的共享项目。 所有可用的数据将从存储中提取到您的计算机。 可用的组项目出现在共享项目版块。若要提取项目,请在关联菜单中执行从存储中检出。

若要创建新的组项目,请选择 Shared Projects 文件夹,然后单击新建项目:

创建一个共享项目

一个已创建的项目会立即添加到 使用MQL5信号进行自动交易 MQL5 存储中。 项目中使用的 标准库 文件不会添加到存储中,您可以手动添加它们。

  • 私人项目仅供作者使用
  • 一个自由参与的项目允许任何人加入
  • 在向作者发送请求后,即可访问所参与的项目

为共享项目配置访问权限

若要向选定用户授予权限,请点击 "添加新用户",并指定该用户的 MQL5 社区登录名。 然后选择权限:

  • 只读: 用户可以看到项目数据,并可以下载到他或她的 MetaEditor。
  • 读写: 用户可以看到项目数据,并将他或她自己的更改上传到存储,但无法更改参与者列表。

在 MQL5 存储上的每一个 共享项目 均有公开设置: 项目可以是私人的或对其他用户开放。 您可以加入在单独的 "公开项目" 选项卡中显示的所有项目。

mt4平台使用新MetaEditor编辑器融合mql4和mql5

eyeglasses ​

为了实现这一点,官方开发了一个统一的编译器,它自动支持MQL4和MQL5语言。MetaEditor也将成为MetaTrader 4和MetaTrader 5平台的统一应用程序。因此,可以从任何版本同时编译MQL4和MQL5。这样来解决官方极力推荐使用mql5,而市场对此不屑一顾的尴尬场面。