算法交易中的Python

 

MQL5是一种编程语言,专为创建金融市场交易的高性能应用程序而设计。

与算法交易中使用的其他专业编程语言相比,MQL5提供了更快的执行速度和更高的性能。该语言语法类似于C++。

MQL5支持OpenCL并提供即时可用的统计、模糊逻辑和ALGLIB库。MetaEditor开发环境通过"smart"函数导入对.NET程序库提供原生支持,从而消除了对特殊包装样式的需求。创建MQL5程序时,您可以使用第三方C++ DLL。C++源代码文件(CPP和H)可以直接编辑,类似于MQ5和MQH文件。


Python是一种流行的高级通用语言。它为数据分析和科学计算提供了丰富的程序库和工具,例如NumPy、Pandas和Scikit-learn,因此被广泛应用于机器学习领域。

它还支持用于创建和训练复杂神经网络的TensorFlow和PyTorch机器学习框架。由于Python在机器学习社区中很受欢迎,因此有许多在线资源和社区可供开发人员学习和分享知识。


通过Python集成包,交易者可以直接从MetaTrader 5程序端通过进程间通信获取交易所数据,以及执行交易操作并将数据用于统计计算和机器学习。

 

简介与设置



介绍与设置 |使用 Python 进行交易

本视频介绍了使用 Python 进行交易系列,其中涵盖了设置 Python 和在经纪商处开设交易账户的基础知识。本教程介绍了下载 Python 和 MT5 IDE、安装 MetaTrader5 库以及创建 Python 脚本以开启交易的过程。演讲者解释了使用 IOC 和 GTC 方法来填写订单,并演示了脚本如何将订单发送到 MT5 服务器。视频以成功执行订单和订阅频道的邀请结束。

  • 00:00:00 在本节中,视频介绍了使用 Python 进行交易系列,包括如何开始使用 Python、如何在经纪商处开立交易账户以及如何在 Meta Editor 中编写 Python 程序,这是 MT5 IDE。该视频演示了下载 Python、确保将其添加到路径、安装 MetaTrader5 库以及打开 Meta Editor 以创建您的第一个 Python 脚本。为了演示该过程,该视频提供了一个示例脚本来开始交易,定义交易品种、手数、价格、止损、获利、偏差、幻数和评论。该脚本在 MetaTrader5 平台中运行,导致交易开始。

  • 00:05:00 在本节中,演讲者讨论了使用 GTC(去取消)和 IOC(立即或取消)方法来执行订单,IOC 是一种订单类型,可以部分执行订单,如果无法执行则取消其余部分完全填满。然后他们解释脚本如何将订单发送到 MT5 服务器,并包括一个打印语句以确认订单是成功还是失败。脚本在 MT5 上的演示显示订单已成功执行。最后,视频结束,演讲者感谢观众的观看并邀请他们订阅频道。
Introduction & Setup | Trading with Python #0
Introduction & Setup | Trading with Python #0
  • 2021.10.27
  • www.youtube.com
In this video I will show you:- how to set up Python- how to open a trading account- write code in MetaEditor- create a Python script that can run in MetaTra...
 

Jupyter 笔记本和市场数据



Jupyter 笔记本和市场数据 |使用 Python #1 进行交易

“Jupyter Notebook & Market Data | Trading with Python #1”视频向观众介绍了 Jupyter Notebook 和市场数据。 Jupyter Notebook 是一种流行的基于 Web 的编码环境,用于数据可视化和分析、策略开发和回测。查看者可以通过从 Metatrader 5 中提取跟踪符号并请求市场数据来访问技术数据和 OHLC 数据等市场数据。解说员演示了如何使用 datetime 库通过 Python 获取出价和要价,以及如何使用 time 模块通过 while 循环定期请求数据,从而实现实时更新。

  • 00:00:00 在本节中,向观众介绍 Jupyter Notebook 和市场数据。 Jupyter Notebook 是一种基于 Web 的编码环境,深受数据科学家和机器专家的欢迎,其功能类似于用于数据可视化的 Django。 Jupyter Notebooks 的优势包括数据分析、可视化、策略制定和回测。同时,查看者可以通过从 Metatrader 5 中提取跟踪符号并请求市场数据来使用某些市场数据,例如技术数据和 OHLC 数据。查看者还可以在 MT5 环境中部署交易策略来管理他们的风险并监控他们的交易。该视频介绍了如何使用 pip 安装 Jupiter Notebook,以及如何在移动到 Jupiter 服务器之前创建一个名为 Trading With Python 的目录。最后,要从特定符号请求价格数据,查看者可以使用代码“空五点符号信息标记”。

  • 00:05:00 在视频的这一部分中,解说员演示了如何使用 datetime 库使用 Python 获取出价和要价。他们首先展示了如何将 Unix 时间戳转换为日期时间对象,以及如何使用时间模块通过 while 循环定期请求数据。生成的输出实时显示更新的询价和出价。
Jupyter Notebook & Market Data | Trading with Python #1
Jupyter Notebook & Market Data | Trading with Python #1
  • 2021.10.28
  • www.youtube.com
In this video I will show you:-How to setup Jupyter Notebook Environment-Extract Tradable symbols from MetaTrader5-Request Market DataPlaylist with all Tradi...
 

将 Python 连接到 MetaTrader 5



将 Python 连接到 MetaTrader5

该视频教程演示了如何将 Python 与 MetaTrader 5 平台集成,包括导入必要的库,如 pandas 和 plotly,初始化并登录交易账户,检索账户信息,获取交易品种的数据,包括当前价格、OHLC 数据和历史报价和交易。本教程还介绍了如何通过 Python 与平台交互以查看订单、将交易发送至开仓和平仓以及使用票证 ID 平仓。主持人鼓励观众提出有关整合过程的问题。

  • 00:00:00 在本节中,视频教程介绍了 Python 在 MetaTrader 5 平台中的集成。该平台有自己的文档,个人可以在其中请求市场数据、分析数据并使用算法策略执行交易。为了使用 Python,该视频通过导入 MetaTrader5、pandas、plotly 和 datetime 库解释了最基本的命令。然后,该视频介绍了初始化和登录交易账户,以及检索账户信息,例如登录号、杠杆、余额和净值。本节最后解释了如何使用 mt.symbolstotal 获取经纪商提供的符号总数以及如何使用 empty.symbols get 检索数据,例如每个符号的保证金要求和合约大小。

  • 00:05:00 在本节中,演讲者讨论了如何使用 Python 和 MetaTrader 5 从交易品种获取数据。演讲者解释说,通过使用空点符号获取命令,可以获得所有交易品种的数据,同时使用空点具有特定交易品种名称的交易品种信息将仅返回该交易品种的数据。演讲者还展示了如何使用符号信息标记获取符号的当前价格,以及如何使用空点复制率范围获取开盘价、最高价、最低价和收盘价 (OHLC) 数据或烛台数据。通过根据这些数据进行数据分析和校准指标,可以制定自己的交易策略。最后,演讲者演示了如何使用 mt dot copy ticks range 查看平台中所有买价和卖价的历史记录来查看交易品种的实际报价和交易。

  • 00:10:00 在这部分视频中,重点是如何使用 Python 与 MetaTrader5 平台进行交互。用户可以获取当前订单总数,查看更多订单和仓位详情,查看历史订单和成交。此外,观众可以了解如何将交易从 Python 发送到 MetaTrader 5 以开仓和平仓。

  • 00:15:00 在本节中,视频介绍了如何使用 MetaTrader5 通过 Python 开仓和平仓。 MetaTrader5 中的请求需要有动作、符号、交易量、类型、止损、止盈、偏差、魔力、评论、下单时间和类型填充等参数。该视频随后展示了如何通过 Python 启用算法交易和执行订单,从而通过平台确认开仓。最后,该视频解释了如何通过指定仓位编号和交易量来平仓,并通过 Python 演示了可以通过 MetaTrader5 平仓具有特定票证 ID 的仓位。

  • 00:20:00 在视频的这一部分,演示者演示了如何使用 Python 和 MetaTrader5 平仓。他展示了通过复制仓位的工单ID,可以将其替换为需要平仓的仓位。更换成功后,仓位被关闭,平台显示未平仓头寸为零。演示者邀请观众在评论部分提出有关 MetaTrader5 文档或 Python 脚本集成到 MetaTrader5 的任何问题。
Connect Python to MetaTrader5
Connect Python to MetaTrader5
  • 2021.10.04
  • www.youtube.com
Hey everyone, in this video, we will look at the MetaTrader5 Python integration.Download my code here: https://traderpy.com/2021/10/09/connect-python-to-meta...
 

编写一个简单的交易机器人



编写一个简单的交易机器人 |使用 Python 进行交易

该视频教程演示了如何使用 MetaTrader 5 平台用 Python 编写简单的交易机器人。机器人使用简单的移动平均线交叉策略,当蜡烛收盘价高于移动平均线时买入,当蜡烛收盘价低于移动平均线时卖出。演示者解释了用 Python 编写的用于此策略的代码,包括市价单、平仓单和获取特定交易品种的风险敞口的功能。信号函数根据策略生成交易信号,机器人设置定义交易品种、交易量、时间范围和偏差的参数。该视频还介绍了交易策略的逻辑和实现它所需的代码,买入和卖出信号分别导致买入或卖出订单。鼓励观众针对潜在的视频主题提出交易想法或策略。

  • 00:00:00 在视频教程的这一部分,创作者解释了如何使用 Python 和 MetaTrader 5 (MT5) 平台编写简单的交易机器人。交易机器人使用简单的移动平均线交叉策略,当蜡烛收盘价高于移动平均线时买入,当蜡烛收盘价低于移动平均线时卖出。创建者演示了用 Python 为该策略编写的代码,其中包括为简化自动交易策略的编码而开发的功能。这些功能包括用于下单的市价订单、用于平仓的平仓订单以及用于获取特定交易品种曝光的 get exposure。创建者还解释了用于根据简单移动平均线交叉策略生成交易信号的信号函数。最后,创建者详细说明了定义机器人交易策略设置所需的符号、交易量、时间范围和偏差参数。

  • 00:05:00 在本节中,演示者介绍了交易策略的逻辑以及实现它所需的代码。该策略使用前面部分中定义的函数根据代码生成的信号进行买卖。如果发出买入信号,代码会检查是否有任何未平仓空头头寸,如果不存在则在创建买入订单之前将其平仓。卖出信号则相反。该代码还包括打印语句以提供有关策略的信息,并使用睡眠函数每秒更新一次策略。演示者展示了如何将策略添加到 MT5 平台并运行它。他们还鼓励观众在潜在视频主题的评论部分留下交易想法或策略。
Code a simple Trading Robot | Trading with Python
Code a simple Trading Robot | Trading with Python
  • 2021.10.29
  • www.youtube.com
In this video I will show you:- How to code a simple trading robot- How to deploy the robot to trade through MetaTrader5Playlist with all Trading with Python...
 

如何向市场发送订单



如何向市场发送订单 |使用 Python #3 进行交易

在此视频教程中,演示者演示了如何使用 Python 和 MetaTrader 5 发送市价订单。该教程涵盖创建带有市价订单参数的请求字典,包括交易操作、交易品种、交易量和订单类型,以及其他参数如止损、止盈、背离、评论等。该视频还介绍了使用头寸获取方法关闭未平仓头寸并传递订单的票号。然后,本教程继续使用价格、交易量和其他参数的规格打开限价或止损订单,并分别使用 mt5.trade action stop loss take profit 和 mt5.trade action remove 命令修改和删除订单。

  • 00:00:00 在本节中,视频教程演示了如何使用 Python 和 MetaTrader 5 将市价订单发送到交易平台。该教程解释了市价订单是一种将在以下位置立即开立买入或卖出头寸的订单类型当前价格。演示者说明了如何使用市场订单的参数创建请求字典,包括指定交易行为、代码、交易量和订单类型。他还介绍了其他参数,例如止损和止盈、偏差和评论,并解释了如何将字典传递给订单发送。最后,本教程展示了如何使用 positions get 并传递订单的票号来关闭未平仓头寸。

  • 00:05:00 在本节中,视频解释了如何在平台中平仓。交易操作函数必须指定头寸和订单类型,并且在部分平仓的情况下必须指定交易量。然后视频继续解释如何使用所需的价格、数量、类型和其他规格(如止损、获利和评论)开立限价单。同样的方法可以用于止损订单,要修改订单,必须抓取现有的票号,然后输入新的规格。
    |
  • 00:10:00 在本节中,演讲者解释了如何在 MT5 上使用 Python 修改和删除订单。要修改订单,交易者需要使用带有四个参数的 mt5.trade action stop loss take profit 命令:stop loss, take profit, position id, and values。通过指定这些输入,交易者可以更新他们的止损和止盈值。要删除订单,他们需要使用带有一个参数的 mt5.trade action remove 命令,即订单号,可以在挂单部分找到。这样做,交易者可以删除在一定时间后未执行的任何挂单。
How to send Orders to the Market | Trading with Python #3
How to send Orders to the Market | Trading with Python #3
  • 2021.10.30
  • www.youtube.com
In this video I will show you:- How to send Orders to the MarketPlaylist with all Trading with Python videos:https://www.youtube.com/playlist?list=PLNzr8RBV5...
 

如何关闭所有头寸



如何平仓 |使用 Python #4 进行交易

该视频教程演示了如何使用 Python 关闭 MetaTrader 5 交易平台中的所有头寸。这需要导入 MetaTrader5 库并使用 mt5.positions.get 方法来检索当前的未平仓头寸列表。然后定义“close_position”函数,利用 mt5.symbol_info_tick 方法获取当前价格和请求字典以与交易平台通信。该程序循环遍历未平仓头寸列表,将每个头寸传递给“close_position”函数以关闭每笔交易。解说员提供了代码和教程播放列表的链接,以供进一步的 Python 培训。

How to close ALL positions | Trading with Python #4
How to close ALL positions | Trading with Python #4
  • 2021.10.31
  • www.youtube.com
In this video I will show you:- How to close ALL Positions in MetaTrader5 through PythonPlaylist with all Trading with Python videos:https://www.youtube.com/...
 

提取和可视化数据



提取和可视化数据 |使用 Python #5 进行交易

该视频演示了如何使用 Python 从 MetaTrader 5 中提取和可视化 EURUSD 符号的每日 OHLC 数据。该过程涉及导入 MetaTrader 5、pandas 和 Plotly.graph_objects 等库以实现数据可视化。提取的数据被转换为 Pandas 数据框,并使用 Plotly 的 OHLC 函数进行可视化。演示者还展示了如何隐藏绘图上的范围滑块,并提供了下载代码和更多 Trading with Python 视频的链接。

Extract and Visualize Data | Trading with Python #5
Extract and Visualize Data | Trading with Python #5
  • 2021.11.01
  • www.youtube.com
In this video I will show you:- How to Extract and Visualize Data in MetaTrader5 through PythonPlaylist with all Trading with Python videos:https://www.youtu...
 

编写尾随止损



编写尾随止损 |使用 Python 进行交易 #6

该视频展示了如何使用 Python 创建追踪止损机器人。演示者解释了追踪止损如何通过限制损失和最大化利润来使交易者受益。除了检索数据和定义当前价格与止损之间的最大距离外,该视频还介绍了必要变量的配置和与驱动平台的连接。演示者还演示了止损功能如何跟随利润、在突破时更新以达到收支平衡,以及能够根据当前价格进行更新。总体而言,该视频有助于演示如何使用 Python 追踪仓位。

  • 00:00:00 在本节中,视频演示了如何使用 Python 编写追踪止损机器人。该视频首先解释了追踪止损如何帮助交易者限制损失并实现利润最大化。然后演示者展示了如何设置必要的配置变量并将 Python 连接到驱动平台,然后再从开放位置获取必要的数据。接下来,视频展示了如何计算当前价格和止损之间的距离并定义它们之间的最大距离。最后,演示者演示了如何使用编码函数在 MetaTrader 5 平台上对未平仓头寸应用止损。

  • 00:05:00 在本节中,视频显示了最大止损、填充量和默认止损的配置。该脚本允许根据当前价格更新止损,距离止损有六个点的限制,当超过最大止损时,交易止损为三个点。如果头寸没有止损,该脚本还会应用低于买入价 3 个点的止损。该视频演示了止损如何跟随利润,以及它如何在突破时更新以达到收支平衡。尽管视频中的交易头寸平淡无奇,但该演示展示了如何使用 Python 追踪头寸。
Code a Trailing Stoploss | Trading with Python #6
Code a Trailing Stoploss | Trading with Python #6
  • 2021.11.03
  • www.youtube.com
In this video I will show you:- Code a Trailing Stoploss for MetaTrader5 through PythonPlaylist with all Trading with Python videos:https://www.youtube.com/p...
 

使用 Tkinter 管理您的职位



使用 Tkinter 管理您的职位 |使用 Python #7 进行交易

在这部分视频中,演示者演示了如何使用 Tkinter 创建一个 Python 应用程序,该应用程序可以在 MetaTrader 5 平台中远程管理和关闭未平仓头寸。该应用程序允许用户监控实时更新并关闭有偏差的头寸以限制滑点。它使用一个列表框来显示未平仓头寸,并有一个平仓按钮,该按钮链接到一个平仓命令,该命令带有一个使用标签和条目定义的偏差元素。该应用程序的代码可在演示者的网站上免费下载,视频提供了有关如何创建 GUI、初始化 MetaTrader 5 平台以及使用功能来监控和平仓的分步说明。

  • 00:00:00 在视频的这一部分,演示者解释了如何使用 Tkinter 和 MetaTrader 5 平台创建一个 Python 应用程序,该应用程序可以远程监控和关闭未平仓头寸。该应用程序连接到 MetaTrader 5 库以监控实时更新,并通过适当的偏差来限制滑点。该应用程序的代码可以在演示者的网站上免费下载,视频提供了有关如何创建 GUI、初始化 MetaTrader 5 平台以及使用功能来监控和平仓的分步说明。该视频还包括应用程序的实际演示。

  • 00:05:00 在视频的这一部分,创作者讨论了使用 Tkinter 管理未平仓头寸的更高级功能。未平仓头寸保存在字符串变量中,并使用链接到用户驱动程序平台的“获取未平仓头寸”功能获取。这些头寸使用允许同时选择和关闭多个头寸的 Tkinter 列表框显示。关闭按钮链接到关闭位置命令,该命令引用使用标签和条目定义的偏差元素。最后,程序设置为实时更新位置,可以使用根点主循环运行。该代码可在创建者的网站上找到。

  • 00:10:00 抱歉,似乎没有提供可供我总结的文字记录摘录。您提供的文字是来自创作者的视频结束号召性用语。如果您有任何具体的成绩单摘录,我很乐意提供摘要。
Manage your positions with Tkinter | Trading with Python #7
Manage your positions with Tkinter | Trading with Python #7
  • 2021.11.04
  • www.youtube.com
In this video, we will create a Tkinter app with Python to manage our positions in MetaTrader5.Playlist with all Trading with Python videos:https://www.youtu...
 

因持有您的交易而获得报酬



因持有您的交易而获得报酬 |使用 Python #8 进行交易

该视频讨论了套利交易,其中经纪人每天向交易者支付少量费用以持有其账户上的未平仓头寸,也称为积极股票交易。目的是识别提供正掉期的符号,以便决定是否值得交易它们。该视频提供的表格显示了多头和空头均具有正隔夜利息的品种。对于持续数天或数周的长期交易,建议进行套利交易,交易者应监控掉期价值,因为经纪人可以随时更新它们。

GET PAID for holding your Trades open | Trading with Python #8
GET PAID for holding your Trades open | Trading with Python #8
  • 2021.11.05
  • www.youtube.com
In this video, we will discuss Carry Trading and Positive Swaps and how to find them.Playlist with all Trading with Python videos:https://www.youtube.com/pla...
原因: