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

 
Vladimir Perervenko :

Échec de l'installation

Win10, Py3.6.10 et WinPy3.7.7.

Essayez encore. J'ai dû le remanier pour qu'il fonctionne avec Python < 3.8.

 
nicholi shen:

Essayez encore. J'ai dû le remanier pour qu'il fonctionne avec Python < 3.8.

Ok

Successfully built pymt5adapter
Installing collected packages: pymt5adapter
Successfully installed pymt5adapter-0.2.1
----- Установка "pymt5adapter" выполнена. -

Quelles sont les nouveautés de cette version ?

Bonne chance

 
Vladimir Perervenko:

Ok

Quelles sont les nouveautés de cette version ?

Bonne chance

calendrier_événementshttps://github.com/nicholishen/pymt5adapter/blob/master/pymt5adapter/calendar.py

from datetime import datetime
from datetime import timedelta

import pymt5adapter as mt5
from pymt5adapter.calendar import calendar_events
from pymt5adapter.calendar import Currency
from pymt5adapter.calendar import Importance


def forex_symbol(s):
    modes = [mt5.SYMBOL_CALC_MODE_FOREX, mt5.SYMBOL_CALC_MODE_FOREX_NO_LEVERAGE]
    return s.trade_calc_mode in modes


def main():
    symbol = mt5.symbols_get(function=forex_symbol)[0]
    one_week = timedelta(weeks=1)
    now = datetime.now()
    default_one_week_ahead_all_events = calendar_events()
    filtered_by_callback = calendar_events(function=lambda e: 'fed' in e['event_name'].lower())
    filtered_by_flags = calendar_events(importance=Importance.MEDIUM | Importance.HIGH,
                                        currencies=Currency.USD | Currency.JPY)
    filtered_by_strings = calendar_events(importance='medium high',
                                          currencies='usdjpy')
    filtered_by_iterables = calendar_events(importance=('medium', ' high'),
                                            currencies=('usd', 'jpy'))
    filtered_by_specific_times = calendar_events(time_from=now, time_to=now + one_week)
    filtered_by_timedeltas = calendar_events(time_from=(-one_week), time_to=one_week)
    filtered_by_timedelta_lookback = calendar_events(-one_week)
    calendar_events_in_russian = calendar_events(language='ru')

    employment_events_next_month = calendar_events(
        currencies=Currency.USD,
        importance=Importance.HIGH
        function=lambda e: 'employment' in (name:=e['event_name'].lower()) or 'payroll' in name
    )

    next_event = employment_events_next_month[0]

    for k, v in next_event.items():
        print(k, v)


if __name__ == '__main__':
    with mt5.connected():
        main()
nicholishen/pymt5adapter
nicholishen/pymt5adapter
  • nicholishen
  • github.com
A drop-in pythonic adapter for the MetaTrader5 package to enhance usability. - nicholishen/pymt5adapter
 

Bonjour, comment puis-je travailler avec TRADE_ACTION_CLOSE_BY ? ?? ou qui et comment ferme toutes les positions ouvertes?

 
9805244:

Comment travailler avec TRADE_ACTION_CLOSE_BY ? ou qui et comment fermer toutes les positions ouvertes?

Vous utilisez Python ?

 

Cette ligne est ce que VS2019(WinPy3.7.7) décide (souligné) :

"symbolique inattendue 'fonction'"

marqueur '=' inattendu

syntaxe non valide

employment_events_next_month = calendar_events(
        currencies=Currency.USD,
        importance=Importance.HIGH
        
function=lambda e: 'employment' in (name
:=e['event_name'].lower()) 
or 'payroll' in name
    )
 
Vladimir Perervenko:

Cette ligne est ce que VS2019(WinPy3.7.7) rumine (souligné) :

"symbolique inattendue 'fonction'"

marqueur '=' inattendu

syntaxe non valide

C'est la nouvelle expression d'affectation pour python >=3.8, et elle est géniale. J'ai dû supprimer tous ces éléments de la bibliothèque pour qu'elle fonctionne avec votre version, mais je pense que vous pouvez remanier le script d'exemple pour qu'il fonctionne. Vous devriez envisager de mettre à jour votre interpréteur python à la dernière version. :)

https://www.python.org/dev/peps/pep-0572/

PEP 572 -- Assignment Expressions
PEP 572 -- Assignment Expressions
  • www.python.org
PEP: Title: Author: Status: Type: Created: Python-Version: Post-History: Resolution:
 
nicholi shen:

C'est la nouvelle expression d'affectation pour python >=3.8, et elle est géniale. J'ai dû supprimer tous ces éléments de la bibliothèque pour qu'elle fonctionne avec votre version, mais je pense que vous pouvez remanier le script d'exemple pour qu'il fonctionne. Vous devriez envisager de mettre à jour votre interpréteur python à la dernière version. :)

https://www.python.org/dev/peps/pep-0572/

Je ne peux pas. Trop de paquets sont liés à 3.7.7 et 3.6.10.

Suggérez simplement ce qu'il faut faire ou comment le remplacer, si possible. Sinon, pas de problème.

Je ne suis pas un expert en Python. Mon langage est R/.

Bonne chance.

 
Vladimir Perervenko:

Je ne peux pas. Trop de paquets sont liés à 3.7.7 et 3.6.10.

Dites-moi simplement ce qu'il faut remplacer ou comment le faire, si possible. Sinon, pas de problème.

Je ne suis pas un expert en Python. Mon langage est le R/

Bonne chance.

def employment_event(e):
    event_name = e['event_name'].lower()
    return 'payroll' in event_name or 'employment' in event_name


employment_events_next_month = calendar_events(
    currencies=Currency.USD,
    importance=Importance.HIGH,
    function=employment_event
)
 
Vladimir Perervenko:

Vous utilisez Python ?

oui