MetaTrader 5 Python User Group - wie man Python in Metatrader verwendet - Seite 61

 
Vladimir Perervenko :

Installation fehlgeschlagen

Win10, Py3.6.10 und WinPy3.7.7.

Versuchen Sie es noch einmal. Ich musste es umgestalten, damit es mit Python < 3.8 funktioniert.

 
nicholi shen:

Versuchen Sie es noch einmal. Ich musste es umgestalten, damit es mit Python < 3.8 funktioniert.

Ok

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

Was ist neu in dieser Version?

Viel Glück!

 
Vladimir Perervenko:

Ok

Was ist neu in dieser Version?

Viel Glück!

kalender_ereignissehttps://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
 

Guten Tag, wie arbeite ich mit TRADE_ACTION_CLOSE_BY oder wer und wie schließt alle offenen Positionen?

 
9805244:

Guten Tag, wie kann man mit TRADE_ACTION_CLOSE_BY arbeiten oder wer und wie schließt alle offenen Positionen?

Python verwenden?

 

Diese Zeile ist, was VS2019(WinPy3.7.7) regiert (unterstrichen):

"Unerwartetes Token 'function' "

unerwartetes Token ':"

unerwartetes Token '='

ungültiger Syntax

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:

Diese Zeile ist, was VS2019(WinPy3.7.7) regiert (unterstrichen):

"Unerwartetes Token 'function' "

unerwartetes Token ':"

unerwartetes Token '='

ungültiger Syntax

Das ist der neue Zuweisungsausdruck für Python >=3.8, und sie sind großartig. Ich musste alle diese Elemente aus der Bibliothek entfernen, damit es mit Ihrer Version funktioniert, aber ich denke, Sie können das Beispielskript umgestalten, damit es funktioniert. Sie sollten erwägen, Ihren Python-Interpreter auf die neueste Version zu aktualisieren :)

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:

Das ist der neue Zuweisungsausdruck für Python >=3.8, und sie sind großartig. Ich musste alle diese Elemente aus der Bibliothek entfernen, damit es mit Ihrer Version funktioniert, aber ich denke, Sie können das Beispielskript umgestalten, damit es funktioniert. Sie sollten erwägen, Ihren Python-Interpreter auf die neueste Version zu aktualisieren :)

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

Das geht nicht. Zu viele Pakete sind an 3.7.7 und 3.6.10 gebunden.

Schlagen Sie einfach vor, was oder wie man es ersetzen kann, wenn möglich. Wenn nicht, kein Problem.

Ich bin kein Experte für Python. Meine Sprache ist R/.

Viel Glück!

 
Vladimir Perervenko:

Das kann ich nicht. Zu viele Pakete sind an 3.7.7 und 3.6.10 gebunden.

Sagen Sie mir einfach, was oder wie ich es ersetzen kann, wenn möglich. Wenn nicht, kein Problem.

Ich bin kein Python-Experte. Meine Sprache ist R /

Viel Glück!

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:

Python verwenden?

ja