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

 
Дмитрий Прокопьев:

ありがとうございます。その例を見て、うまくいきました。

別の話なんですけどね。


positions_get - トレードポジションのリストを返します。原理的にはOKで、pandasに入れれば問題なく動作します。

でも、パンダ1匹に限らず、こういうのが欲しいというのがあれば。

[{'ticket': 164661016, 'time': 1585075408, 'time_msc': 1585075408163, 'time_update': 1585075408, 'time_update_msc': 1585075408163, 'type': 1, 'magic': 0, 'identifier': 164661016, 'reason': 0, 'volume': 0.01, 'price_open': 120.306, 'sl': 0.0, 'tp': 0.0, 'price_current': 120.328, 'swap': 0.0, 'profit': -0.2, 'symbol': 'EURJPY', 'comment': '', 'external_id': ''}, 
{'ticket': 164661051, 'time': 1585075426, 'time_msc': 1585075426062, 'time_update': 1585075426, 'time_update_msc': 1585075426062, 'type': 0, 'magic': 0, 'identifier': 164661051, 'reason': 0, 'volume': 0.01, 'price_open': 1.07798, 'sl': 0.0, 'tp': 0.0, 'price_current': 1.07881, 'swap': 0.0, 'profit': 0.83, 'symbol': 'EURUSD', 'comment': '', 'external_id': ''}]

positions_get の例では、複数の文字列を使用しています。

MetaTrader5mt5 としてインポート する。
pdとしてpandasをインポート する。
pd.set_option('display.max_columns',500)# 何列で 表示されるか
pd.set_option('display.width', 1500)# 表示されるテーブルの最大幅
# MetaTrader5パッケージのデータを表示します。
print("MetaTrader5パッケージの作者:",mt5.__author__)
print("MetaTrader5パッケージのバージョン: ",mt5.__version__)
print()
# ターミナル MetaTrader 5 への接続を設定します。
mt5.initialize()ない場合
print("initialize() failed, error code =",mt5.last_error())
終了

# USDCHFのオープンポジションを受け取る
positions=mt5.positions_get(symbol="USDCHF")です
ifpositions==None:
print("USDCHFのポジションがありません、エラーコード={}".format(mt5.last_error()))
elif len(positions)>0:
print("USDCHFの総ポジション数 =",len(positions))
# print all open positions
を、ポジションの中のポジションのために 使用します
print(位置)

# 名前に "*USD*" を含むシンボルのポジション一覧を取得する
usd_positions=mt5.positions_get(group="*USD*")です
usd_positions==None ならば
print("No positions with group="*USD*", error code={}".format(mt5.last_error()))
elif len(usd_positions)>0:
print("positions_get(group="*USD*")={}".format(len(usd_positions))
# output these positions as a table using pandas.DataFrame
df=pd.DataFrame(list(usd_positions),columns=usd_positions[0])._asdict().keys())
df['time'] = pd.to_datetime(df['time'], unit=s')
df.drop(['time_update', 'time_msc', 'time_update_msc', 'external_id'], axis=1, inplace=True)

print(df)

# ターミナル MetaTrader 5 への接続を終了します。
mt5.shutdown()


結果
MetaTrader5パッケージの作者:MetaQuotes Software Corp.
MetaTrader5パッケージバージョン:5.0.29

position_get(group="*USD*")=5
チケット時間型マジック識別子理由出来高 価格_始値 sl tp 価格_現在 スワップ 利益 シンボル コメント
0 548297723 2020-03-18 15:00:55 1 0 548297723 3 0.01 1.09301 1.11490 1.06236 1.10101 -0.10 -8.00 ユーゴスラビア
1 548655158 2020-03-18 20:31:26 0 0 548655158 3 0.01 1.08676 1.06107 1.12446 1.10098 -0.08 14.22 ユーゴスラビア
2 548663803 2020-03-18 20:40:04 0 0 548663803 3 0.01 1.08640 1.06351 1.11833 1.10098 -0.08 14.58 ユーゴスラビア
3 548847168 2020-03-19 01:10:05 0 0 548847168 3 0.01 1.09545 1.05524 1.15122 1.10098 -0.06 5.53 ユーゴスラビア
4 548847194 2020-03-19 01:10:07 0 0 548847194 3 0.02 1.09536 1.04478 1.16587 1.10098 -0.08 11.24 EURUSD

Документация по MQL5: Интеграция / MetaTrader для Python / positions_get
Документация по MQL5: Интеграция / MetaTrader для Python / positions_get
  • www.mql5.com
ticket                time  type  magic  identifier  reason  volume  price_open       sl       tp  price_current  swap  profit  symbol comment 0  548297723 2020-03-18 15:00:55     1      0   548297723       3    0.01     1.09301  1.11490  1.06236        1.10101 -0.10   -8.00  EURUSD        ...
 

ヘルプに3つの新機能の説明が追加されました。

また、多くの機能については、改良に伴い説明を変更しています。新機能を反映させるため、ほぼ全てのサンプルを書き直しました。ただし、以下の機能の例は、まだホームページで更新されていませんので、もう少し後になる予定です。

Документация по MQL5: Интеграция / MetaTrader для Python / last_error
Документация по MQL5: Интеграция / MetaTrader для Python / last_error
  • www.mql5.com
позволяет получить код ошибки в случае неуспешного выполнения какой-либо функции библиотеки MetaTrader 5. Является аналогом GetLastError(), но используются свои коды ошибок. Возможные значения:
 
Дмитрий Прокопьев:

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

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

応援をお願いします。

そのスレッドで回答

 
Rashid Umarov:

positions_get の例では、いくつかの文字列が使用されています。

ありがとうございました。

 
Rashid Umarov:

そのスレッドで回答

Rashidさん、教えてください、MetaTrader5でテスターを使用することは可能でしょうか?

テスターでモデリングを行う場合、非常に効果的な要素があります。それは、ローカルネットワークファームまたはテスターでシミュレーションタスクを並列化することです。

MetaTrader5でテスターのリソースを使いたいのですが、どうすればいいですか?

 
Vladimir Perervenko:

なぜこれが必要なのか?Pythonで計算できないの?驚きました。

pythonは全然使いこなせてなくて、luaから乗り換えたところなので、いろいろと勉強中です...。
 

ヘルプには、ライブラリのインストールとアップデートの方法が記載されています -https://www.mql5.com/ru/docs/integration/python_metatrader5

Установка пакета в командной строке:

pip install MetaTrader5

コマンドラインからパッケージをアップグレードする。

pip install --upgrade MetaTrader5



Документация по MQL5: Интеграция / MetaTrader для Python
Документация по MQL5: Интеграция / MetaTrader для Python
  • www.mql5.com
Python является современным высокоуровневым языком программирования для разработки сценариев и приложений. Содержит множество библиотек для машинного обучения, автоматизации процессов, анализа и визуализации данных. Пакет MetaTrader для Python предназначен для...
 
Rashid Umarov:

ヘルプには、ライブラリのインストールとアップデートの方法が記載されています -https://www.mql5.com/ru/docs/integration/python_metatrader5

正直なところ、よくわからないんです。なぜなら、VSなしでは動かないし、VSから一体何が必要なのか - は明確ではないからです(必要ないからといって、スタジオ全体をインストールするのは嫌ですからね)。

明確にしていただけると助かります。

 
Alexey Kozitsyn:

正直なところ、よくわからないんです。なぜなら、VSなしでは動かないし、VSから一体何が必要なのか - は明確でないからです(必要ないからといって、スタジオ全体をインストールするのは嫌なので)。

詳しく説明してくれると、とてもうれしいです。

なぜVSが必要なのか?PythonはVSを必要としない。

window pythonとかでググれば出てくるよ。

 

開発者の皆さん、次のスレッドで良い指摘がありました。

これは、テストを書く場合、**kwargsの 処理にも適用されます- これは非常に重要なポイント です。

https://www.mql5.com/en/forum/306742/page12#comment_15660939