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)
intiMA(
string symbol, // имя символаENUM_TIMEFRAMES period, // периодint ma_period, // период усредненияint ma_shift, // смещение индикатора по горизонталиENUM_MA_METHOD ma_method, // тип сглаживанияENUM_APPLIED_PRICE applied_price // тип цены или handle
);
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 フィールドに最初の実行要求を返します。
ありがとうございます。
具体的にはどういうことですか?配列をmql5からpyにコピーして戻す?
話の内容くらい丁寧に読めよ。
そして、何が必要で、何が必要でないかは、自分だけで考えてはいけないのです。自分が必要なくても、他の人が必要なんです。
参考までに、MTから移行したいデータセットについて教えてください。
開発者はすでに何度も「MTには何も移さない」と言っています。そのためには、他の機能を使わなければなりません。
参考までに、MTから移行したいデータセットについて教えてください。
開発者はすでに何度も「MTには何も移さない」と言っています。そのためには、他の機能を使う必要があります。
はい、どんなものでも、独自の 計算されたアレイです。
私は専ら合成樹脂を製造していますが、アレイを双方向に転送する機能は非常に不足しています。
PyAPIが使えるのは明らかですが、またdllにバインドされています。
そして、PyAPIを使えば、この統合ライブラリは全く必要ありません。
はい任意の、あなた自身の 計算されたアレイ。
私は専ら合成樹脂を製造していますが、アレイを双方向に転送する機能は非常に不足しています。
PyAPIが使えるのは明らかですが、またDLLにバインドしています。
そして、PyAPIを使えば、この統合ライブラリは全く必要ありません。
講義をしたいと思わないでください。端末からの見積もりで合成を計算するんですね。引用符をPythonにダンプし、Pythonですべての計算を行う。
しかし、アレイの逆移動で体操をする必要があります。最も簡単な方法は、データベースを利用することです。
あるいは、これを 使う。どこかに、この企画で小さなスレッドがありました。あるいはこれ。
いずれにせよ、今回の統合でトレーダーの様々な要望がすべて解決されるわけではない。しかし、迅速な見積もりと取引管理という2つの主要かつ最も重要な問題を解決することができます。
あとはすべて自前のインフラで。
グッドラック
講義をしたいと思わないでください。端末からの見積もりで合成を計算するんですね。引用符をPythonにダンプし、Pythonですべての計算を行う。
しかし、アレイの逆移動で体操をする必要があります。最も簡単な方法は、データベースを利用することです。
あるいは、これを 使う。 どこかに、この企画で小さなスレッドがありました。あるいはこれ。
いずれにせよ、今回の統合でトレーダーの様々な要望がすべて解決されるわけではない。しかし、基本的かつ非常に重要な2つの問題を解決することができるのです。 迅速な見積もりと取引管理。
あとはすべて自前のインフラで。
グッドラック
これは、DLLやデータベース経由、ソケット、あるいはテキストファイルなど、どんな実装であっても同じことです。
しかし、これもまた、図書館とは関係ない追加クラッチである。
要は、現在、統合mt5ライブラリの開発を積極的に進めているので、その中でユーザーに必要な機能を最初から提供することが望ましいということです。
ありがとうございます、私が見たこの例では、うまくいきました。
私は、ちょっと別のことで。
positions_get - TradePositionのリストが返されます。 原理的には、パンダを放り込んでも問題なく動作します。
しかし、すべてはパンダ一匹に限らず、必要なものがあれば、そのようなものを手に入れることができます。
どうにかして、パンダを合成するか、それとも...。なんというか、余計な体の動きが多い。
MQL5のプログラマーでなく、例えばpythonistが書くのであれば、_asdict()でかなり便利になりましたね ...またはデータシーネティストの場合、list / dict は
Pythonの基本的な要素は、多くはリスト/ディクショナリ上のデータ転送を構築しています。
タプルは、あまりにも頻繁に、たくさん使われますが、その中で移動する データの種類を 厳密に制御する必要がある場合にのみ使用します。
を使用するか、適切に割り当てないと、エラーハンドラもハングアップします。 まあ、どこかで・・・。:)間違っているかもしれません。
変数を代入する際に、単純なリスト内包を使用することができます。
positions = [p._asdict() for p in mt5.positions_get()]
変数を代入する際に、単純なリスト内包を使用することができます。
だからといってこれは追加サイクルです
諸君、次スレの連中はリブについて質問しているのだよ。
URL:https://www.mql5.com/en/forum/306742/page11#comment_15595095
応援をお願いします。
symbols_get 関数は、SymbolInfo という名前のタプルのジェネレータを返す必要があります。引数なしでsymbols_getを呼び出すと、端末で利用可能なすべてのシンボルが返されるはずです。この関数は、フィルター関数で処理されるSymbolInfoの名前付きタプルで渡されるコールバックを取る必要があります。以下はその例です。
こんばんは、アドバイスをお願いします。このコネクタは、接続されたインジケータから 情報を取ることができないのですね?
例
こんばんは、アドバイスをお願いします。このコネクタは、接続されたインジケータから 情報を取ることができないのですね?
例
何のために必要なのか?Pythonで計算できないの?驚かせてくれますね。