分类
初學者該知道的外匯那些小事

MT4和MT5平台功能对比

本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给浏览者。如果文章所有者并不想本站转载其文章,请邮件: ,收到邮件后我们即刻回复,并即刻处理。

外汇市场中主要的交易软件MT4、MT5和cTrader的区别有哪些?

进行外汇投资的投资者都知道在外汇市场中有很多不同的交易软件,其中MT4和MT5是使用最广泛的,其市场占有率在同类平台中长期霸占第一位,目前来说,MetaQuotes Software的MT4和MT5的霸主地位是无法撼动的。其实外汇市场上还有一款比较不错的外汇交易软件可供交易者使用——cTrader。我们之前有说过MT4和MT5的区别>>>MT5和MT4交易软件有什么区别? Metaquotes迈达克软件公司于2005年首次推出MT4,也是从这个时候开始,Metaquotes占据了零售外汇市场交易格局的主导地位 。而其主导地位的建立正式基于简单的软件设计以及增量式软件改进,自2005年以来,几乎每一年都有新的功能改进。 除了外汇,MetaTrader的服务领域还包括其他资产类别,如差价合约以及期货 。

cTrader是除MT4和MT5平台之外,最受经纪商和交易者青睐的外汇交易平台之一, 它是由塞浦路斯技术提供商Spotware推出的多资产差价合约(CFD)交易平台 。短短5年时间,cTrader便屡获殊荣,得到了许多欧洲和澳大利亚知名经纪商的支持。

有什么区别

“出生地”不同

交易环境不同

使用方法不同

EA功能的不同

cTrader上面的EA功能对比MT4或者MT5来说就比较鸡肋,它以 cAlgo的形式提供了相当于EA的功能,但是由于cAlgo用户的在线社区有限, 现成机器人的数量非常有限

自定义设置不同

新手使用感不同

图表与指标

cTrader在所有应用(包括手机应用)上提供80多种默认的指标和图表功能 。在任何界面上添加、移动和删除功能都很简便。 图表的缩放、时间、颜色、尺寸和其它内容完全可以定制 。在桌面应用中,你还可以拆分各种图表,方便从多个屏幕上查看,其它功能如取消订单或者历史订单也都可以进行同样的操作。

市场深度功能

而 MT5则是第一个将市场深度功能作为引入标准的平台 。在该平台上,交易者可以看到每个价格水平上的流动性数量,以及下达不同级别的订单。这样的功能也受到了很多用户的欢迎,不过目前MetaTrader平台的DOM功能仍非常初级和简单。

尽管这主要取决于经纪商,但在 管理部分订单执行方面,cTrader没有任何问题 。总的来说,cTrader平台的市场深度功能还是非常先进的,并且适用于各种交易风格。

本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给浏览者。如果文章所有者并不想本站转载其文章,请邮件: ,收到邮件后我们即刻回复,并即刻处理。

python接收_MT5 与 PYTHON 的集成:接收和发送数据

James Swineson 于 2021-01-26 04:23:03 发布 1153 收藏 10

为什么要把 MQL5 与 Python 集成?

网络套接字是计算机网络上进程间通信的端点。MQL5 标准库包含一组 Socket 函数,这些函数为在互联网上操作提供了一个低层接口。这是不同编程语言的通用接口,因为它在操作系统级别进行系统调用。

若要建立连接,必须创建并初始化 TCP 服务器,以便客户端进程连接。一旦交互进程完成,则连接必须强制关闭。TCP 交换中的数据是字节流。

创建服务器时,我们需要将套接字与一个或多个主机(IP 地址)的未使用端口相关联。如果未设置主机列表,或将其指定为 “0.0.0.0”,则套接字将监听所有主机。如果指定 “127.0.0.1” 或 “localhost”,则只能在 “内部循环” 内连接,即仅在一台计算机内监听。

由于在 MQL5 中只提供客户端,我们利用 Python 创建一个服务器。

利用 Python 创建套接字服务器

本文的目的并非教授 Python 编程的基础知识。因此,假定读者熟悉这种语言。

我们将使用 3.7.2 版本的内置 socket 软件包。更详细信息,请阅读相关文档。

我们将编写一个简单的程序,它创建一个套接字服务器,并从客户端(MQL5 程序)接收必要的信息,处理它并发回结果。这似乎是最有效的交互方法。假设我们需要使用机器学习函数库,例如 scikit learn,它将计算价格的线性回归并返回坐标,根据这些坐标可以在 MetaTrader 5 终端中绘制一条线。这是基本的示例。然而,这种交互也可以用于训练神经网络,用于从终端发送数据(报价),学习并将结果返回给终端。

我们来创建 socketserver.py 程序并导入上述函数库:

创建类的对象时,构造函数将获取主机名(IP MT4和MT5平台功能对比 地址)和端口编号。然后创建 sock 对象,该对象与地址和端口 sock.bind() 相关联。

recvmsg 方法监听传入连接 sock.listen(1)。当传入的客户端连接到达时,服务器会接受它 self.sock.accept()。

然后,服务器在无限循环中等待传入的客户端消息,该消息抵达时是为数位流。由于事先不知道消息长度,服务器会分帧接收该消息,比如一次 1K 字节,直到读取整个消息 self.conn.recv(10000)。接收到的数据片段将会被转换为字符串 data.decode(“utf-8”),并添加到字符串 summdata 的其余部分。

一旦收到所有数据(如果不是数据 :),服务器就会向客户端发送一个字符串,其中包含计算出的回归线的最右边和最左边的坐标。该字符串初步转换为字节数组 conn.send(bytes(calcregr(self.cummdata),"utf-8"))

一旦 Python 程序执行完毕,析构函数就会关闭套接字。

接收到的字节流转换为 utf-8 字符串,然后由 calcregr(msg ='') 方法接受。由于字符串包含若干由空格分隔的价格序列(在客户端中实现),因此它将被转换至 float 类型的 NumPy 数组。之后价格数组会被转换为一列(数据接收格式为 sclearn)Y = np.array(chartdata).reshape(-1,1)模型的预测变量是线性时间(一个数值序列; 其大小等于训练样本的长度)X = np.array(np).arange(len(chartdata))).reshape(-1,1)

接下来是训练和模型预测,而回归线的第一个和最后一个值(线段的边缘)被写入 “P” 变量,转换为字符串,并以字节形式传递给客户端。

现在,我们只需要创建类对象,并在循环中调用 recvmsg() 方法:

利用 MQL5 创建套接字客户端

最后一个函数 drawlr() 接收一个字符串,其中写入左、右线坐标,然后将字符串解析为字符串数组,并在图表上绘制线性回归线:

该函数在 OnTick() 处理程序中实现。

测试 MQL5-Python 客户端 - MT4和MT5平台功能对比 服务器应用程序

为了运行该应用程序,您需要安装 Python 解释器。您可以从 官方网站 下载。

然后运行服务器应用程序 socketserver.py。它创建一个套接字,并监听来自 MQL5 程序 socketclientEA.mq5 的新连接。

b78935c12bb2b188d202b09a7ffb26e4.png

连接活动和回归线价格也会在 MetaTrader 5 终端中显示。回归线也会在图表上绘制,并在每次新的即时报价来临时进一步更新:

1a0664f51676041f78e1a5347fe9a087.png

我们已考研究通过套接字连接实现两个程序的直接交互。与此同时,MetaQuotes 已开发了一个 Python 软件包,允许直接从终端接收数据。更多有关详细信息,请参阅与 在 MetaTrader 中使用 Python 相关的论坛讨论(俄语版,请酌情使用自动翻译选项)。 s0>

使用 MetaTrader 5 Python API 获取并分析报价

首先,您需要安装 MetaTrader5 Python 模块(Python 讨论摘要在此)。

之后创建所需品种列表,并从终端连续请求每个货币对的收盘价发至 pandas 数据帧:

b42ee3b6def401eb9555a3edb256c471.png

我们可以从上面的热图中看到 GBPUSD 与 GBPJPY 之间的良好相关性。然后我们可以通过导入 statsmodels 函数库来测试协整:

两个货币对之间的关系可以显示为 Z 分值:

9ecb264218121d9e0e49e014677543d6.png

利用 Plotly 函数库可视化市场数据

通常需要按照便利的形式可视化报价。这可以利用 Plotly 函数库来实现,该函数库还允许以交互式 .html 格式保存图表。

我们下载 EURUSD 报价,并将其显示在烛条图表中:

ff55564646c046da5e1e6698af006838.png

bf21029a80ed24ad6bec68c4234f3368.png

在本文中,我们研究了终端与利用 Python 编写的程序之间实现通信的选项,通过套接字并直接使用 MetaQuotes 的专用库。不幸的是,MetaTrader 5 中当前实现的客户端套接字不适合在策略测试程序中运行,因此没有执行完整的测试,以及测量解决方案性能。我们等待套接字功能的进一步更新。

MetaTrader4 Vs MetaTrader5

MT5VsMT4

注册地址: 5th Floor, 355 NEX Tower, Rue du Savoir, Cybercity, Ebene 72201, Mauritius.

信用卡交易是通过FT Global Services Ltd来处理。注册号 HE 335426 以及注册地址为 Tassou Papadopoulou 6, Flat/Office 22, Ag. Dometios, 2373, Nicosia, Cyprus。 持卡人通讯地址:[email protected]

风险警示:交易外汇和杠杆化金融品种具有高风险,可能导致您损失本金。您所承担的亏损风险不应超过您的承受能力,请确保您完全理解其中所涉风险。交易杠杆化产品并不适合所有投资者。在交易前,请考虑您的经验水平、投资目标,如有必要请寻求独立财务建议。客户有责任确保他/她所居住国法律要求允许其使用Alpari International 品牌提供的服务。

地区限制: Alpari International不向美国、毛里求斯、日本、加拿大、海地、苏里南、朝鲜民主主义人民共和国、巴西、波多黎各、塞浦路斯占领区、香港的居民提供服务。更多信息请参见我们的常见问题监管 专区。