标签: metatrader5

在Python中初始化Metatrader

我正在尝试使用 Metatrader 库来提取市场数据并构建算法。开始使用这个库的第一行代码不起作用

import MetaTrader5 as mt5
mt5.initialize()
Run Code Online (Sandbox Code Playgroud)

这些代码行始终返回False的输出,这意味着 mt5 尚未初始化,我还没有在其他地方看到此问题得到解决,因此我非常感谢一些帮助。

python algorithm metatrader5

5
推荐指数
1
解决办法
6410
查看次数

从服务器到客户端的 Grpc 通知

我在一家金融科技公司工作,该公司使用 C# 实现的 Meta Trader Manager Api 开发交易系统,我们有自己的流程,隐藏 Meta Trader 依赖项,并通过 tcp 客户端向我们拥有的其他系统公开服务器到客户端和客户端到服务器的操作套接字类。

我们正在考虑切换到 grpc,但我主要担心的是,我在 grpc 中没有看到服务器到客户端通知的简单实现。

我看到的唯一解决方案是解决 grpc长寿命客户端到服务器流的问题,您需要使用锁或无限循环使服务器中的调用保持活动状态,并将客户端的写入流保存在服务器端,并在通知事件被触发。

另外,在客户端,我发现我需要为每个通知的事件处理程序创建一个无限循环,以及为后续通知调用 ResponseStream.MoveNext() 。

在我看来,要么 grpc 不是为这种用途而构建的,要么是我遗漏了一些东西。

c# metatrader4 metatrader5 grpc

5
推荐指数
0
解决办法
3396
查看次数

从导入的DLL调用Metatrader MQL4/MQL5函数

我想从Metatrader中我自己导入的DLL调用MQL4或MQL5函数.

可能吗?

dll metatrader4 metatrader5 mql4 mql5

4
推荐指数
1
解决办法
7632
查看次数

MT5 Python API 平仓不起作用

我试图通过 Python 平掉 MT5 中的现有仓位,但 MT5 总是声称“不支持的填充模式”。
我尝试了所有可能的填充模式,但总是得到相同的结果。同样,如果我省略请求中的填充模式。我还尝试从符号信息中获取填充模式并在请求中使用它 - 但没有成功。这种情况发生在真实账户上。
这是我的函数,它采用现有仓位并发送该仓位的平仓请求:

async def ClosePosition(position):
   if (position.type == mt5.POSITION_TYPE_BUY):
       order_type = mt5.ORDER_TYPE_SELL
       price = mt5.symbol_info_tick(position.symbol).bid
   else:
       order_type = mt5.ORDER_TYPE_BUY
       price = mt5.symbol_info_tick(position.symbol).ask

   request = {
           "action": mt5.TRADE_ACTION_DEAL,
           "symbol": position.symbol,
           "volume": position.volume,
           "type": order_type,
           "position": position.ticket,
           "price": price,
           "deviation": 10,
           "magic": 0,
           "comment": "Closed by Python",
           "type_time": mt5.ORDER_TIME_GTC,
           "type_filling": mt5.ORDER_FILLING_RETURN
       }

   result = mt5.order_send(request)

Run Code Online (Sandbox Code Playgroud)

杂志上是这样说的:
Trades '#######': failed market buy 0.01 CHFJPY, close #109459760 sell 0.01 CHFJPY 116.807 [Unsupported filling mode]

任何帮助是极大的赞赏。

python metatrader5

4
推荐指数
1
解决办法
2072
查看次数

在 Ubuntu 17.04 上安装 Metatrader 5

我尝试在 Ubuntu 17.04(64 位)上安装 Metatrader 5。我被卡住了,需要有人帮我解决这个问题。我已经安装了 wine-2.0.1,这是目前最新的稳定版本,它是 64 位的。最后,在成功安装 Metatrader 5 后,在启动应用程序时会出现一个错误窗口:terminal64.exe,带有消息:

已发现调试器在您的系统中运行。

请从内存中卸载它并重新启动您的程序。

在 wiki.winehq.org 上,我发现需要安装 2 个不同版本的 wine:32 位和 64 位。我尝试做所有事情: https://wiki.winehq.org/Building_Biarch_Wine_On_Ubuntu ,但在“Build 64-bit Wine”阶段,对于:make clean,我得到:

make: *** 没有使目标“干净”的规则。停止。

有没有办法在 Ubuntu 17.04 上真正安装 mt5?

metatrader5 ubuntu-17.04

3
推荐指数
1
解决办法
3716
查看次数

MT5 开仓订单返回“无”

我是新人,正在尝试为 MT5 构建一个 python 机器人。我尝试通过 python 发送 MT5 交易,但它总是返回“None”。

我已经输入了所有必需的信息,是否是因为小数点错误?

import os
from datetime import datetime
import MetaTrader5 as mt5
import requests
import datetime as dt  # for dealing with times
import numpy as np
import json
import pandas as pd
import pytz

ea_magic_number = 9986989 # if you want to give every bot a unique identifier

def open_trade(action, symbol, lot, sl_points, tp_points, deviation):
    '''https://www.mql5.com/en/docs/integration/python_metatrader5/mt5ordersend_py
    '''
    # prepare the buy request structure
    symbol_info = mt5.symbol_info(symbol)

    if action == 'buy':
        trade_type …
Run Code Online (Sandbox Code Playgroud)

python metatrader5

3
推荐指数
1
解决办法
2943
查看次数

如何在 Expert Advisor (EA) 中包含斐波那契水平?

我想在我的专家顾问 (EA) 中访问各种斐波那契水平,例如 23.6%、38.2%、50%、61.8% 和 100%。我如何在我的 EA 中定义这些,以便交易者可以通过输入选择它们?

我试过这个

input double Fibo=23.6;
Run Code Online (Sandbox Code Playgroud)

然而,这是常见的方法吗?是否可以将它们设置为预定义的?

感谢您的帮助!

mt4 metatrader4 metatrader5 mql4 mql5

2
推荐指数
1
解决办法
5734
查看次数

如何修改活跃交易的止损?

我在使用 MQL5 修改正在运行的交易的止损时遇到了麻烦。选择订单对我来说很有效。但是如果我尝试访问变量(例如OrderTicket()& OrderOpenPrice()),它总是返回 0.00000:

2017.06.01 00:06:32.114 2016.04.08 00:00:00   failed modify  buy 0.00  sl: 0.00000, tp: 0.00000 -> sl: 1.41594, tp: 0.00000 [Invalid request]
Run Code Online (Sandbox Code Playgroud)

这是我的止损修改无效:

void modifyStops() {

   int total = OrdersTotal();          // total number of placed pending orders
   Print( total + " Orders on the line!!!" );

   //--- Over all placed pending orders
   for ( int i = 0; i <  total; i++ )
   {     bool isOrderSelected = OrderSelect( i, SELECT_BY_POS, MODE_TRADES );
         if (  isOrderSelected …
Run Code Online (Sandbox Code Playgroud)

algorithmic-trading metatrader5 mql5

2
推荐指数
1
解决办法
6532
查看次数

如何通过 Python 关闭 MT5 订单?

我正在尝试通过 MT5-python API 将订单从 python 脚本发送到我的 MT5 终端。

我可以开仓,但如何通过 Python mt5-API 平仓?

我打开一张买票,如下所示:

import MetaTrader5 as mt5 
lot = 0.1
request = {
"action": mt5.TRADE_ACTION_DEAL,
"symbol": symbol,
"volume": lot,
"type": mt5.ORDER_TYPE_BUY,
"price": price,
.....
"type_time": mt5.ORDER_TIME_GTC,
 "type_filling": mt5.ORDER_FILLING_RETURN,
}

enter copoint = mt5.symbol_info(symbol).point
Run Code Online (Sandbox Code Playgroud)

但是发送“关闭”的命令和形式是什么?

查找更多信息: https://www.mql5.com/en/docs/integration/python_metatrader5

非常感谢!

python metatrader5 mql5

2
推荐指数
2
解决办法
1万
查看次数

Metatrader 5 登录() 更新后损坏?

几个月前,我们开发了一堆使用Metatrader 5库 (5.0.34) 的 Python 脚本。

自从客户端更新 5.00(该库需要正在运行的客户端)以来,以前工作的 login() 函数似乎已损坏:

SEVERE LOGIN FAIL error code: (-2, 'Terminal: Invalid params')
Run Code Online (Sandbox Code Playgroud)

以前调用的mt5.initialize(login,password,server)函数似乎仍然有效,它不会引发任何异常。当前客户端版本是 5.00 build 3033。客户端本身正在运行

在此输入图像描述

python metatrader5

1
推荐指数
1
解决办法
1230
查看次数