MetaTrader 5 Python用户组 - 如何在Metatrader中使用Python - 页 57

 
Almaz:

在5.0.29中增加了 symbols_total(), symbols_get([group="EURUSD, "USDGBP", *RU*"]), 需要最新的测试版终端才能工作。

同时在所有函数orders_get(), positions_get(), history_orders_get(), history_deals_get()中增加了按组过滤 - group="EURUSD, USDGBP", *RU*"。
order_check(), order_send()方法将返回请求字段中执行的初始请求。

谢谢你。

 
Roman:

你到底是什么意思?把一个数组从mql5复制到py再复制回来?
你至少应该仔细阅读我们正在谈论的内容。
而什么是必要的或不需要的,你不应该只为自己考虑。如果你不需要,别人也需要。

只是出于兴趣,你想从MT转移哪些数据集?

开发商已经说过几次,他们不会向MT转让任何东西。你必须使用其他功能才能做到这一点。

 
Vladimir Perervenko:

只是出于兴趣,你想从MT转移哪些数据集?

开发商已经说过几次,他们不会向MT转让任何东西。你必须使用其他功能才能做到这一点。

是的,任何,他们自己的 计算数组。
我专门建造合成物,而双向传输阵列的能力是非常缺乏的。
很明显,你可以使用PyAPI,但它又是与dll绑定的。
而使用PyAPI,那么就根本不需要这个集成库。

 
Roman:

是的,任何,你自己的 计算数组。
我专门建造合成物,而双向转移阵列的能力是非常缺乏的。
很明显,你可以使用PyAPI,但它又是绑定在一个dll上。
而使用PyAPI,那么就根本不需要这个集成库。

不要以为我想说教。你根据终端的报价来计算合成物。将引号转入Python,并在Python中进行所有计算。

但你必须对阵列的反向转移做体操。最简单的方法是通过数据库。

或者用这个。在某个地方,有一个关于这个项目的小线程。或者这样

在任何情况下,这种整合不会解决交易者的所有各种愿望。但它解决了两个主要和最重要的问题:获得快速报价和交易管理。

其余的都是自己的,有自己的基础设施。

祝好运

khramkov/MQL5-JSON-API
khramkov/MQL5-JSON-API
  • khramkov
  • github.com
<a href="#metaquotes-mql5
 
Vladimir Perervenko:

不要以为我想说教。你根据终端的报价来计算合成物。将引号转入Python,并在Python中进行所有计算。

但你必须对阵列的反向转移做体操。最简单的方法是通过数据库。

或者用这个。 在某个地方,有一个关于这个项目的小线程。或者这样

在任何情况下,这种整合不会解决交易者的所有各种愿望。但它解决了两个基本且非常重要的问题。 快速报价和贸易管理。

其余的都是自己的,有自己的基础设施。

祝好运

这就是我所说的,不管是什么实现方式,通过dll或数据库、套接字甚至是文本文件等。
但是,这又是一个与图书馆无关的额外拐杖。
问题是,现在我们正在积极开发整合mt5库,所以最好从一开始就为用户提供所有必要的功能。

 
Dmitry Prokopyev:

谢谢,我看到的这个例子,它是有效的。

我有点关于别的东西。


positions_get - 列表中的TradePosition将被返回给我。 原则上说,你可以扔进熊猫,而且工作得很好。

但一切并不局限于一只熊猫,如果你需要得到类似的东西。

你必须以某种方式构成,熊猫或为...莫名其妙地做了很多额外的身体运动。

有了_asdict()就变得更方便了,如果写的人不是MQL5程序,而是Pythonist ...或者是一个数据网络主义者,那么列表/数据就是

在Python的基本元素中,有很多是建立在列表/Dict上的数据传输。

图元的使用,太频繁了,而且很多,但只有当你需要严格控制在其中移动的 数据类型 时才会使用。

并挂起一个错误处理程序,如果没有正确使用或分配。 嗯,在某个地方...:)我可能是错的。

在分配你的变量时,你可以使用一个简单的列表理解来代替。

positions = [p._asdict() for p in mt5.positions_get()]
 
nicholi shen:

在分配你的变量时,你可以使用一个简单的列表理解来代替。

这并不改变其本质...这是一个额外的周期

 

先生们,下一个话题中的人正在问关于自由派的问题。

URL:https://www.mql5.com/en/forum/306742/page11#comment_15595095

你能给我们一些支持吗?


symbols_get函数应该返回一个名为tuples的SymbolInfo的生成器。调用symbols_get而不使用args,应返回终端中所有可用的符号。该函数应该接受一个回调,该回调将被传入一个SymbolInfo namedtuple,以使用过滤函数进行处理。这里有一些例子。

import MetaTrader5 as mt5
from contextlib import contextmanager
import re


@contextmanager
def metatrader_connection(**kw):
    try:
        if not mt5.initialize(**kw):
            print("Failed to initialize python MT5")
            raise Exception
        yield
    finally:
        mt5.shutdown()


def symbols_get(function=None):
    """
    No function passed in will result in all symbols returned to the caller.
    If a callable function is passed in then the function is passed a SymbolInfo tuple for filtering
    :param function: callback function to filter the symbols
    """
    all_symbols_in_terminal_info = map(
        mt5.symbol_info,
        ['EURUSD', 'USDJPY', 'GBPJPY', 'EURGBP'] # *example only* this would represent all symbols available to the terminal
    )
    if function is not None:
        return filter(function, all_symbols_in_terminal_info)
    return all_symbols_in_terminal_info


if __name__ == "__main__":
    with metatrader_connection():
        all_terminal_symbols = symbols_get()
        jpy_symbols = symbols_get(lambda s: "JPY" in s.name)
        jpy_symbols_using_re = symbols_get(lambda s: re.match(r'\w*JPY\w*', s.name))
        visible_symbols = symbols_get(lambda s: s.visible)
        selected_symbols = symbols_get(lambda s: s.select)


        def my_criteria(symbol_info):
            return 'USD' in symbol_info.name and symbol_info.session_deals > 0


        usd_symbols_with_session_deals = symbols_get(my_criteria)
 

晚上好,请你给我建议,我知道这个连接器不能从连接的指标 中获取信息?

例子。

int  iMA(
   string              symbol,        // имя символа
   ENUM_TIMEFRAMES      period,        // период
   int                 ma_period,    // период усреднения
   int                 ma_shift,     // смещение индикатора по горизонтали
   ENUM_MA_METHOD       ma_method,    // тип сглаживания
   ENUM_APPLIED_PRICE   applied_price  // тип цены или handle
   );
 
9805244:

晚上好,请你给我建议,我知道这个连接器不能从连接的指标 中获取信息?

例子。

你需要它来做什么?你不能用Python计算吗?你让我吃惊。