MetaTrader 5 Python User Group - メタトレーダーでPythonを使用する方法 - ページ 61

 
Vladimir Perervenko :

インストールに失敗しました

Win10、Py3.6.10、WinPy3.7.7です。

もう一度試してみてください。Python < 3.8 で動作するようにリファクタリングする必要がありました。

 
nicholi shen:

もう一度試してみてください。Python < 3.8 で動作するようにリファクタリングする必要がありました。

オッケー

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

リリースの新機能は?

グッドラック

 
Vladimir Perervenko:

オッケー

リリースの新機能は?

グッドラック

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

こんにちは!TRADE_ACTION_CLOSE_BYとどのように連携するのですか? または、誰がどのようにすべてのオープンポジションを クローズするのですか?

 
9805244:

こんにちは!どのようにTRADE_ACTION_CLOSE_BYで動作しますか? または誰が、どのようにすべてのオープンポジションを クローズするのですか?

Pythonを使う?

 

この行は、VS2019(WinPy3.7.7)が裁定している内容です(下線部)。

"予期しないトークン 'function' "

予期しないトークン ':'

予期しないトークン '='

無効構文

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:

この行は、VS2019(WinPy3.7.7)が反芻している内容です(下線部)。

"予期しないトークン 'function' "

予期しないトークン ':'

予期しないトークン '='

無効構文

Python >=3.8 の新しい代入式なんですが、これがすごいんです。あなたのバージョンで動作させるために、私はライブラリからそれらをすべて削除しなければなりませんでしたが、そのサンプルスクリプトをリファクタリングして動作させることは可能だと思います。Pythonインタプリタを最新版にアップグレードすることを検討すべきです :)

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:

Python >=3.8 の新しい代入式なんですが、これがすごいんです。あなたのバージョンで動作させるために、私はライブラリからそれらをすべて削除しなければなりませんでしたが、そのサンプルスクリプトをリファクタリングして動作させることは可能だと思います。Pythonインタプリタを最新のバージョンにアップグレードすることを検討すべきです :)

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

できない。3.7.7と3.6.10に縛られているパッケージが多すぎる。

ただ、可能であれば、何を、どのように交換したらよいかを提案してほしい。そうでない場合は、問題ありません。

私はPythonの専門家ではありません。私の言語はR/です。

頑張ってください。

 
Vladimir Perervenko:

できないんです。 3.7.7や3.6.10に縛られているパッケージが多すぎる。

できれば、何を、どのように交換すればいいのか教えてほしい。 そうでない場合は、問題ありません。

私はPythonの専門家ではありません。 私の言語はR /です。

頑張ってください。

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を使う?