使用Python和MetaTrader在5分钟内开始构建您的交易策略

In one of my last posts, I showed how to create graphics using the Plotly library. To do this, we import data from MetaTrader in a ‘raw’ way without automation. Today, we will learn how to automate this process and plot a heatmap graph of the correlations of different assets in just a few lines of code.

在上一篇文章中,我展示了如何使用Plotly库创建图形。 为此,我们无需自动化即可以“原始”方式从MetaTrader导入数据。 今天,我们将学习如何自动执行此过程,并仅用几行代码就可以绘制出不同资产的相关性的热图图。

How to integrate Python and MetaTrader? I follow the following steps:

如何集成Python和MetaTrader? 我遵循以下步骤:

  • Having installed MetaTrader 5 and Python 3.8 on your machine

    在计算机上安装了MetaTrader 5和Python 3.8
  • Installing the Python libraries: MetaTrader5, matplotlib, and pandas

    安装Python库:MetaTrader5,matplotlib和pandas
  • Importing the data

    导入数据
  • Plot the Graph

    绘制图

安装库 (Installing the Libraries)

If you already have Python installed on your computer, open the terminal and install the necessary libraries with the command:

如果您已经在计算机上安装了Python,请打开终端并使用以下命令安装必要的库:

pip install MetaTrader5
pip install pandas
pip install matplotlib

Have in mind that you must have installed the latest version of MetaTrader on your computer for the integration to work.

请记住,您必须在计算机上安装最新版本的MetaTrader才能进行集成。

收集资料 (Collecting the Data)

We arrived at the interesting part. We will start the development of our small data collection program.

我们到达了有趣的部分。 我们将开始开发小型数据收集程序。

The first step is to import the necessary libraries:

第一步是导入必要的库:

import MetaTrader5 as mt5
import pandas as pd
import matplotlib.pyplot as plt

After, we initialize the MetaTrader terminal with the code:

之后,我们使用以下代码初始化MetaTrader终端:

mt5.initialize()

We define the symbols of the assets that we want to analyze in an array. I am Brazilian, and I trade on the Brazilian stock exchange. Thus, the assets described in this article will not work in other brokerages.

我们在数组中定义要分析的资产的符号。 我是巴西人,我在巴西证券交易所交易。 因此,本文所述的资产将无法在其他经纪公司中使用。

symbols = ['GOAU4','WEGE3','VVAR3','PRIO3','MRFG3']
data = pd.DataFrame()

For each symbol in the array, we collect the data defining the time of each bar and the quantity. Then, we feed the data frame with the closing prices of each request:

对于数组中的每个符号,我们收集定义每个柱形时间和数量的数据。 然后,我们向数据框提供每个请求的收盘价:

for i in symbols:
rates = mt5.copy_rates_from_pos(i, mt5.TIMEFRAME_D1, 0, 1000)
data[i] = [y['close'] for y in rates]

We will now close the communication with MetaTrader, as we already have the data for analysis.

由于我们已经有要分析的数据,因此我们现在将关闭与MetaTrader的通信。

mt5.shutdown()
Image for post
Image by author — Close prices from stocks
图片由作者提供—股票的收盘价

计算退货 (Calculating Returns)

Calculating returns is quite easy. Just call the dataframe’s pct_change () method, and you’re good to go.

计算收益非常容易。 只需调用数据框的pct_change()方法,就可以了。

retornos = data.pct_change()
Image for post
Image by author — Stock Daily Returns
图片由作者—图库照片

相关计算 (Correlation Calculation)

Like returns, correlations can also be easily calculated by calling the dataframe’s corr () method.

像返回一样,通过调用数据框的corr()方法也可以轻松计算相关性。

corr = data.corr()
Image for post
Image by Author — Stocks Correlation
图片由作者—图库照片相关

绘制HeatMap (Plotting the HeatMap)

To build the heat graph, we will use the matplotlib library. So:

要构建热图,我们将使用matplotlib库。 所以:

plt.figure(figsize=(10,10))
plt.imshow(corr, cmap = 'RdYlGn', interpolation='none', aspect='auto')
plt.colorbar()
plt.xticks(range(len(corr)), corr.columns, rotation = 'vertical')
plt.yticks(range(len(corr)), corr.columns)
plt.suptitle('MAPA de CALOR - ATIVOS', fontsize = 15, fontweight = 'bold')
plt.show()
Image for post
Image by Author — HeatMap Stocks Correlations
图片由作者提供— HeatMap股票的相关性

结论 (Conclusion)

In this post, we saw how to connect Python and MetaTrader 5, how to import the data of the assets we want to analyze, and how to create a heatmap of the correlations of the returns of these assets.

在本文中,我们看到了如何连接Python和MetaTrader 5,如何导入要分析的资产的数据,以及如何为这些资产的收益相关建立热图。

Thanks for reading, see you next time! Let me know if you have questions. Cheers!

感谢您的阅读,下次见! 如果您有任何问题,请告诉我。 干杯!

Gain Access to Expert View — Subscribe to DDI Intel

获得访问专家视图的权限- 订阅DDI Intel

翻译自: https://medium.com/datadriveninvestor/build-your-trading-strategies-in-5-minutes-with-python-and-metatrader-3e9fd5c62956

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/391989.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

请对比html与css的异同,css2与css3的区别是什么?

css主要有三个版本,分别是css1、css2、css3。css2使用的比较多,因为css1的属性比较少,而css3有一些老式浏览器并不支持,所以大家在开发的时候主要还是使用css2。CSS1提供有关字体、颜色、位置和文本属性的基本信息,该版…

ipywidgets_未来价值和Ipywidgets

ipywidgetsHow to use Ipywidgets to visualize future value with different interest rates.如何使用Ipywidgets可视化不同利率下的未来价值。 There are some calculations that even being easy becoming better with a visualization of his terms. Moreover, the sooner…

计算机主机后面辐射大,电脑的背面辐射大吗

众所周知,电子产品的辐射都比较大,而电脑是非常常见的电子产品,它也存在着一定的辐射,那么电脑的背面辐射大吗?下面就一起随佰佰安全网小编来了解一下吧。有资料显示,电脑后面的辐射比前面大,长期近距离在…

装饰器3--装饰器作用原理

多思考,多记忆!!! 转载于:https://www.cnblogs.com/momo8238/p/7217345.html

用folium模块画地理图_使用Folium表示您的地理空间数据

用folium模块画地理图As a part of the Data Science community, Geospatial data is one of the most crucial kinds of data to work with. The applications are as simple as ‘Where’s my food delivery order right now?’ and as complex as ‘What is the most optim…

python创建类统计属性_轻松创建统计数据的Python包

python创建类统计属性介绍 (Introduction) Sometimes you may need a distribution figure for your slide or class. Since you are not using data, you want a quick solution.有时,您的幻灯片或课程可能需要一个分配图。 由于您不使用数据,因此需要快…

浅析STM32之usbh_def.H

【温故而知新】类似文章浅析USB HID ReportDesc (HID报告描述符) 现在将en.stm32cubef1\STM32Cube_FW_F1_V1.4.0\Middlewares\ST\STM32_USB_Host_Library\Core\Inc\usbh_def.H /********************************************************************************* file us…

C# (类型、对象、线程栈和托管堆)在运行时的相互关系

在介绍运行时的关系之前,先从一些计算机基础只是入手,如下图: 该图展示了已加载CLR的一个windows进程,该进程可能有多个线程,线程创建时会分配到1MB的栈空间.栈空间用于向方法传递实参,方法定义的局部变量也在实参上,上图的右侧展示了线程的栈内存,栈从高位内存地址向地位内存地…

2019-08-01 纪中NOIP模拟赛B组

T1 [JZOJ2642] 游戏 题目描述 Alice和Bob在玩一个游戏,游戏是在一个N*N的矩阵上进行的,每个格子上都有一个正整数。当轮到Alice/Bob时,他/她可以选择最后一列或最后一行,并将其删除,但必须保证选择的这一行或这一列所有…

knn分类 knn_关于KNN的快速小课程

knn分类 knnAs the title says, here is a quick little lesson on how to construct a simple KNN model in SciKit-Learn. I will be using this dataset. It contains information on students’ academic performance.就像标题中所说的,这是关于如何在SciKit-Le…

office漏洞利用--获取shell

环境: kali系统, windows系统 流程: 在kali系统生成利用文件, kali系统下监听本地端口, windows系统打开doc文件,即可中招 第一种利用方式, 适合测试用: 从git下载代码: …

pandas之DataFrame合并merge

一、merge merge操作实现两个DataFrame之间的合并,类似于sql两个表之间的关联查询。merge的使用方法及参数解释如下: pd.merge(left, right, onNone, howinner, left_onNone, right_onNone, left_indexFalse, right_indexFalse,    sortFalse, suffi…

python ==字符串

字符串类型(str): 包含在引号(单,双,三)里面,由一串字符组成。 用途:姓名,性别,地址,学历,密码 Name ‘zbk’ 取值: 首先要明确,字符…

认证鉴权与API权限控制在微服务架构中的设计与实现(一)

作者: [Aoho’s Blog] 引言: 本文系《认证鉴权与API权限控制在微服务架构中的设计与实现》系列的第一篇,本系列预计四篇文章讲解微服务下的认证鉴权与API权限控制的实现。 1. 背景 最近在做权限相关服务的开发,在系统微服务化后&a…

mac下完全卸载程序的方法

在国外网上看到的,觉得很好,不仅可以长卸载的知识,还对mac系统有更深的认识。比如偏好设置文件,我以前设置一个程序坏了,打不开了,怎么重装都打不开,后来才知道系统还保留着原来的偏好设置文件。…

机器学习集群_机器学习中的多合一集群技术在无监督学习中应该了解

机器学习集群Clustering algorithms are a powerful technique for machine learning on unsupervised data. The most common algorithms in machine learning are hierarchical clustering and K-Means clustering. These two algorithms are incredibly powerful when appli…

自考本科计算机要学什么,计算机自考本科需要考哪些科目

高科技发展时代,怎离得开计算机技术?小学生都要学编程了,未来趋势一目了然,所以如今在考虑提升学历的社会成人,多半也青睐于计算机专业,那么计算机自考本科需要考哪些科目?难不难?自…

非对称加密

2019独角兽企业重金招聘Python工程师标准>>> 概念 非对称加密算法需要两个密钥:公钥(publickey)和私钥(privatekey)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私…

政府公开数据可视化_公开演讲如何帮助您设计更好的数据可视化

政府公开数据可视化What do good speeches and good data visualisation have in common? More than you may think.好的演讲和好的数据可视化有什么共同点? 超出您的想象。 Aristotle — the founding father of all things public speaking — believed that th…

C++字符串完全指引之一 —— Win32 字符编码 (转载)

C字符串完全指引之一 —— Win32 字符编码原著:Michael Dunn翻译:Chengjie Sun 原文出处:CodeProject:The Complete Guide to C Strings, Part I 引言  毫无疑问,我们都看到过像 TCHAR, std::string, BSTR 等各种各样…