MetaTrader 5 Python User Group - Comment utiliser Python dans Metatrader - page 39

 
Roman:

J'ai bien compris que pour transférer des valeurs calculées et des tableaux de Py à mt5, il n'y aura pas de telles fonctions ?

Et est-il laissé à l'usage - solutions de mise en réseau, ou sciage d'un module pour le transfert par la mémoire ?

Bibliothèque pour la communication MT5 <-> Python avec un accent sur l'obtention de données.

Seules les requêtes et les demandes d'échange sont envoyées au terminal à partir de programmes python. Il n'y a aucune raison de transférer des données de masse à partir de python, car il n'a pas accès à l'environnement variable de MQL5 et est strictement limité à l'interface étroite des requêtes au terminal.


L'intégration de Python a le domaine d'application suivant :

  1. Recevez les graphiques, les positions et l'historique des données du marché
  2. envoyer et surveiller les transactions
  3. exécuter des fichiers *.py directement depuis le navigateur
  4. attirer les développeurs Python vers l'écosystème Metatrader en raison de la facilité d'accès aux données et de la possibilité de réaliser des transactions à part entière sans béquilles
  5. attirer des groupes professionnels étroits de développeurs de quant provenant de fonds spéculatifs, de sociétés d'investissement et de banques en leur offrant un substitut pratique à leur propre zoo
  6. donner accès à la variété des bibliothèques mathématiques et d'IA disponibles en Python

La bibliothèque Python ne remplace pas MQL5 et nous n'acceptons aucune demande d'extension de fonctionnalité.
 
Renat Fatkhullin:

Bibliothèque pour la communication MT5 <-> Python avec un accent sur l'acquisition de données.

Seules les requêtes et les demandes d'échange sont transmises au terminal par les programmes Python. Il n'y a aucune raison de transmettre des données de masse à partir de Python, car il n'a pas accès à l'environnement variable MQL5 et est strictement limité à l'interface étroite des requêtes au terminal.


L'intégration de Python a le domaine d'application suivant :

  1. Recevez les données des graphiques du marché, les données de position et l'historique des transactions.
  2. envoyer et surveiller les transactions
  3. exécuter des fichiers *.py directement depuis le navigateur
  4. attirer les développeurs Python vers l'écosystème Metatrader en raison de la facilité d'accès aux données et de la possibilité de réaliser des transactions à part entière sans béquilles
  5. attirer des groupes professionnels étroits de développeurs de quant provenant de fonds spéculatifs, de sociétés d'investissement et de banques en leur offrant un substitut pratique à leur propre zoo
  6. donner accès à la variété des bibliothèques mathématiques et d'IA disponibles en Python

La bibliothèque Python ne remplace pas MQL5 et nous n'acceptons aucune demande d'extension de fonctionnalité.

Il y a encore ce bac à sable... Peut-être n'avez-vous pas compris la question et qu'il existe une solution.
Il est nécessaire, à partir d'un script Py, de passer un tableau à un programme mql.
Il y a des raisons de passer, des tableaux de données calculées.
Pour construire des graphiques mql personnalisés en temps réel.
Pour construire des indicateurs mql en temps réel.
Pour utiliser les calculs en temps réel dans les experts mql.
L'exécution de fichiers *.py directement à partir du navigateur ne résout pas le problème de la construction de graphiques professionnels personnalisés dans mt5.
Vous avez besoin de graphiques en temps réel personnalisés mt5 calculés dans un script Py.
Pour cela, vous avez besoin d'un transfert de tableau à partir du script Py.

 
Bonnes gens, pourriez-vous me dire comment faire des ordres en suspens ici et, si possible, un exemple
 
Roman:

Il est nécessaire de passer un tableau d'un script Py à un programme mql.

La réponse a été donnée de manière complète et claire.

 
Renat Fatkhullin:

La réponse a été complète et claire.

La réponse a été lue, mais la raison de la restriction n'est pas claire.
Comment les tableaux contrôlés dans le script open Py peuvent-ils nuire au programme mql ?
De quel genre de zoo parlons-nous si nous devons à nouveau utiliser des béquilles, les mêmes douilles, dll, etc.
Cela crée une barrière artificielle pour créer des solutions professionnelles pour mt5.

 
alex.alexen:
Bonnes gens, dites-moi comment faire des ordres en attente ici et si vous le pouvez, un exemple.

Il n'y a pas de fonctions prêtes à l'emploi, mais vous pouvez voir comment les commandes simples sont effectuées dans __init__.py, les commandes en attente sont effectuées de manière similaire :

#  internal order send
def _RawOrder(order_type, symbol, volume, price, comment=None, ticket=None):
    order = {
      "action":    TRADE_ACTION_DEAL,
      "symbol":    symbol,
      "volume":    volume,
      "type":      order_type,
      "price":     price,
      "deviation": 10,
    }
    if comment != None:
        order["comment"] = comment
    if ticket != None:
        order["position"] = ticket
    r = order_send(order)
    return r

#  Buy order                
def Buy(symbol, volume, price=None, *, comment=None, ticket=None):
    #  with direct call
    if price != None:
        return _RawOrder(ORDER_TYPE_BUY, symbol, volume, price, comment, ticket)
    #  no price, we try several times with current price
    for tries in range(10):
        info = symbol_info_tick(symbol)
        r = _RawOrder(ORDER_TYPE_BUY, symbol, volume, info.ask, comment, ticket)
        if r.retcode != TRADE_RETCODE_REQUOTE and r.retcode != TRADE_RETCODE_PRICE_OFF:
            break
    return r

#  Sell order
def Sell(symbol, volume, price=None, *, comment=None, ticket=None):
    #  with direct call
    if price != None:
        return _RawOrder(ORDER_TYPE_SELL, symbol, volume, price, comment, ticket)
    #  no price, we try several times with current price
    for tries in range(10):
        info = symbol_info_tick(symbol)
        r = _RawOrder(ORDER_TYPE_SELL, symbol, volume, info.bid, comment, ticket)
        if r.retcode != TRADE_RETCODE_REQUOTE and r.retcode != TRADE_RETCODE_PRICE_OFF:
            break
    return r

champs transmis à order_send :

action, magic, order, symbol, volume, price, stoplimit, sl, tp, deviation, type, type_filling, type_time, expiration, comment, position, position_by

ils sont similaires : https://www.mql5.com/ru/docs/trading/ordersend

Документация по MQL5: Торговые функции / OrderSend
Документация по MQL5: Торговые функции / OrderSend
  • www.mql5.com
Торговый запрос проходит несколько стадий проверок на торговом сервере. В первую очередь проверяется корректность заполнения всех необходимых полей параметра , и при отсутствии ошибок сервер принимает ордер для дальнейшей обработки. При успешном принятии ордера торговым сервером функция OrderSend() возвращает значение true. Рекомендуется...
 

Bonjour.

Peut-être que la question a déjà été posée, mais la recherche (google, forum) n'a pas donné de résultat positif. Je pense avoir pu utiliser MetaTrader5 sur un notebook jupyter installé sur mon PC Ubuntu. Après quelques problèmes avec mon PC, je l'ai changé et installé un nouveau disque dur. Après cette procédure, j'ai perdu la connexion avec le paquet et lorsque j'essaie d'installer le paquet avec la commande pip install MetaTrader5, j'obtiens le message suivant :

ERROR : Impossible de trouver une version qui satisfait à l'exigence MetaTrader5 (à partir de versions : aucune)

ERROR : Aucune distribution correspondante trouvée pour MetaTrader5

Veuillez me conseiller :
1. Est-il possible d'installer le paquet sur un PC avec Ubuntu ?
2. Si oui, que puis-je faire pour corriger l'erreur que je reçois pendant l'installation ?

Документация по MQL5: Интеграция / MetaTrader для Python
Документация по MQL5: Интеграция / MetaTrader для Python
  • www.mql5.com
MT5Tick(time=datetime.datetime(2019, 4, 1, 3, 2, 3, 512000), bid=1.5764200000000002, ask=1.57837, last=0.0, volume=0.0, flags=134) MT5Tick(time=datetime.datetime(2019, 4, 1, 3, 2, 8, 70000), bid=1.57643, ask=1.57837, last=0.0, volume=0.0, flags=130...
 
wildzes:

Bonjour.

Peut-être que la question a déjà été posée, mais la recherche (google, forum) n'a pas donné de résultat positif. Je pense avoir pu utiliser MetaTrader5 sur un notebook jupyter installé sur mon PC Ubuntu. Après quelques problèmes avec mon PC, je l'ai changé et installé un nouveau disque dur. Après cette procédure, j'ai perdu la connexion avec le paquet et lorsque j'essaie d'installer le paquet avec la commande pip install MetaTrader5, j'obtiens le message suivant :

ERROR : Impossible de trouver une version qui satisfait à l'exigence MetaTrader5 (à partir de versions : aucune)

ERROR : Aucune distribution correspondante trouvée pour MetaTrader5

Veuillez me conseiller :
1. Est-il possible d'installer le paquet sur un PC avec Ubuntu ?
2. Si oui, que puis-je faire pour corriger l'erreur que je reçois pendant l'installation ?

Non, la bibliothèque est uniquement destinée à la version Windows de Python, car elle fonctionne en conjonction avec la version Windows du terminal.

 
Renat Fatkhullin:
Nous allons écrire une nouvelle version de la bibliothèque d'intégration et y ajouter une sélection et une autorisation explicites sur le compte souhaité .

La multi-version est supportée en spécifiant le chemin d'accès à une version particulière de l'interpréteur dans les paramètres de l'éditeur.

Les paquets sont installés manuellement, ce n'est pas un problème d'environnement. Il est d'autant plus dangereux de le faire automatiquement, et sur la masse d'utilisateurs mal compris.

Il n'y aura pas de débogueur, vous pouvez déboguer dans d'autres environnements. Nous n'avons pas l'intention de créer un débogueur complet pour Python, mais seulement son environnement d'exécution et son intégration avec le terminal.


Sera-t-il disponible plus tard ? Ou ?

 
Almaz:

Il n'y a pas de fonctions prêtes à l'emploi, mais vous pouvez voir comment les commandes simples sont effectuées dans __init__.py, les commandes en attente sont effectuées de manière similaire :

champs transmis à order_send :

ils sont similaires : https://www.mql5.com/ru/docs/trading/ordersend

D'où vient _init_.py ? Où puis-je le voir ?

Raison: