MetaTrader 5 Python User Group - メタトレーダーで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() メソッドは、request フィールドに最初の実行要求を返します。

ありがとうございます。

 
Roman:

具体的にはどういうことですか?配列をmql5からpyにコピーして戻す?
話の内容くらい丁寧に読めよ。
そして、何が必要で、何が必要でないかは、自分だけで考えてはいけないのです。自分が必要なくても、他の人が必要なんです。

参考までに、MTから移行したいデータセットについて教えてください。

開発者はすでに何度も「MTには何も移さない」と言っています。そのためには、他の機能を使わなければなりません。

 
Vladimir Perervenko:

参考までに、MTから移行したいデータセットについて教えてください。

開発者はすでに何度も「MTには何も移さない」と言っています。そのためには、他の機能を使う必要があります。

はい、どんなものでも、独自の 計算されたアレイです。
私は専ら合成樹脂を製造していますが、アレイを双方向に転送する機能は非常に不足しています。
PyAPIが使えるのは明らかですが、またdllにバインドされています。
そして、PyAPIを使えば、この統合ライブラリは全く必要ありません。

 
Roman:

はい任意の、あなた自身の 計算されたアレイ。
私は専ら合成樹脂を製造していますが、アレイを双方向に転送する機能は非常に不足しています。
PyAPIが使えるのは明らかですが、またDLLにバインドしています。
そして、PyAPIを使えば、この統合ライブラリは全く必要ありません。

講義をしたいと思わないでください。端末からの見積もりで合成を計算するんですね。引用符をPythonにダンプし、Pythonですべての計算を行う。

しかし、アレイの逆移動で体操をする必要があります。最も簡単な方法は、データベースを利用することです。

あるいは、これを 使う。どこかに、この企画で小さなスレッドがありました。あるいはこれ

いずれにせよ、今回の統合でトレーダーの様々な要望がすべて解決されるわけではない。しかし、迅速な見積もりと取引管理という2つの主要かつ最も重要な問題を解決することができます。

あとはすべて自前のインフラで。

グッドラック

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

講義をしたいと思わないでください。端末からの見積もりで合成を計算するんですね。引用符をPythonにダンプし、Pythonですべての計算を行う。

しかし、アレイの逆移動で体操をする必要があります。最も簡単な方法は、データベースを利用することです。

あるいは、これを 使う。 どこかに、この企画で小さなスレッドがありました。あるいはこれ

いずれにせよ、今回の統合でトレーダーの様々な要望がすべて解決されるわけではない。しかし、基本的かつ非常に重要な2つの問題を解決することができるのです。 迅速な見積もりと取引管理。

あとはすべて自前のインフラで。

グッドラック

これは、DLLやデータベース経由、ソケット、あるいはテキストファイルなど、どんな実装であっても同じことです。
しかし、これもまた、図書館とは関係ない追加クラッチである。
要は、現在、統合mt5ライブラリの開発を積極的に進めているので、その中でユーザーに必要な機能を最初から提供することが望ましいということです。

 
Dmitry Prokopyev:

ありがとうございます、私が見たこの例では、うまくいきました。

私は、ちょっと別のことで。


positions_get - TradePositionのリストが返されます。 原理的には、パンダを放り込んでも問題なく動作します。

しかし、すべてはパンダ一匹に限らず、必要なものがあれば、そのようなものを手に入れることができます。

どうにかして、パンダを合成するか、それとも...。なんというか、余計な体の動きが多い。

MQL5のプログラマーでなく、例えばpythonistが書くのであれば、_asdict()でかなり便利になりましたね ...またはデータシーネティストの場合、list / dict は

Pythonの基本的な要素は、多くはリスト/ディクショナリ上のデータ転送を構築しています。

タプルは、あまりにも頻繁に、たくさん使われますが、その中で移動する データの種類を 厳密に制御する必要がある場合にのみ使用します。

を使用するか、適切に割り当てないと、エラーハンドラもハングアップします。 まあ、どこかで・・・。:)間違っているかもしれません。

変数を代入する際に、単純なリスト内包を使用することができます。

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

変数を代入する際に、単純なリスト内包を使用することができます。

だからといってこれは追加サイクルです

 

諸君、次スレの連中はリブについて質問しているのだよ。

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

応援をお願いします。


symbols_get 関数は、SymbolInfo という名前のタプルのジェネレータを返す必要があります。引数なしでsymbols_getを呼び出すと、端末で利用可能なすべてのシンボルが返されるはずです。この関数は、フィルター関数で処理されるSymbolInfoの名前付きタプルで渡されるコールバックを取る必要があります。以下はその例です。

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で計算できないの?驚かせてくれますね。

理由: