import MetaTrader5 as mt5
# выведем данные о пакете MetaTrader5
print("MetaTrader5 package author: ",mt5.__author__)
print("MetaTrader5 package version: ",mt5.__version__)
# установим подключение к терминалу MetaTrader 5if not mt5.initialize():
print("initialize() failed")
mt5.shutdown()
# подключимся к торговому счету с указанием пароля и сервера
authorized=mt5.login(25115284, password="ваш_пароль",server="MetaQuotes-Demo")
if(authorized):
# выведем данные о торговом счете
#print(mt5.account_info())
account_info=mt5.account_info()._asdict()
print(account_info)
print("Вывод каждого свойства отдельно:")
for property in account_info:
print(" ",property,"=",account_info[property])else:
print("failed to connect to trade account 25115284 with password=gqz0lbdm")
mt5.shutdown()
import MetaTrader5 as mt5
# выведем данные о пакете MetaTrader5
print("MetaTrader5 package author: ",mt5.__author__)
print("MetaTrader5 package version: ",mt5.__version__)
# установим подключение к терминалу MetaTrader 5if not mt5.initialize():
print("initialize() failed")
quit()
# проверим наличие открытых позиций
positions=mt5.positions_total()
if(positions>0):
print("Total positions=",positions)
# выведем все открытые позиции
positions=mt5.positions_get()
count=0for position in positions:
count+=1
print(count,":",position)
position_info=position._asdict()
for property in position_info:
print(" ",property,"=",position_info[property])if count>=5:
breakelse:
print("Positions not found")
# завершим подключение к терминалу MetaTrader 5
mt5.shutdown()
5.0.27にアップデート
スクリプトのバックアップ
結果
タイマーの詳細について教えてください。
自分で調べたわけではなく、検索 しただけです
5.0.27で既に、全ての構造体列(C APIにおける名前付きタプルの類似)に_asdict()メソッドが追加されている。
mt5.symbol_info()._asdict() -big thnx, what we need.
history_deals_getが構造体の順番になっていないようです ...へえ
ただ、属性名を正しい順序で与える構成がないのが残念です。history_deals_get_asdict() が実現可能でないか、概念に反する場合 - 少なくともコレクションからの_fields のアナログ。namedtuple (python) を使えば、ループではなく、手動で属性の正しい順番を引き出せます。今のところ、次のような仕組みになっています。
と出力されます。
まあ、ループを使ったヌードルコードとかね。
5.0.27にアップデート
スクリプトのバックアップ
結果
センス!
この部分は本当に快適です。
mt5.symbol_info()._asdict() -big thnx, that's it.
history_deals_getが構造体シーケンスに該当しないようです ...へえ
ただ、属性名を正しい順序で与える構成がないのが残念です。history_deals_get_asdict() が実現可能でないか、概念に反する場合 - 少なくともコレクションから_fieldsのアナログ。namedtuple (python) を使えば、ループではなく、手動で属性の正しい順番を引き出せます。今のところ、次のような仕組みになっています。
と出力されます。
ループを使ったヌードルコードとか。
history_deals_get は常に通常の Python タプルを返し、その中に TradeDeal という名前のコレクションが含まれます。それを実現するためには、あるインデックスにアクセスする必要があります。
mt5.symbol_info()._asdict() -big thnx, that's it.
history_deals_getが構造体シーケンスに該当しないようです ...へえ
この方法で試してみてください。
結果
history_deals_get は常に通常の Python タプルを返し、その中に TradeDeal という名前のコレクションが含まれます。これを実現するために、あるインデックスにアクセスする必要があります。
嗚呼、どうもありがとうございます!もう、これは類推するしかないですね。センス
将来のリリースでは、history_deals_get(とその類似品) で名前付きタプルを選択できるだけでなく、 list[_asdict()] が単に
ファンタスティック;)ありがとうございます。
この方法で試してみてください。
結果
ありがとうございました。効いてますね。
あ、あとリブ改善のための :) 提案に応えていただきありがとうございました。
5.0.27にアップデート
スクリプトのバックアップ
結果
午後
Rashidさん、MetaTrader5のウェブサイトのどこかに、プロダクト アップデートのお知らせのようなものがありますか?
いつから、どのような変更が行われたのか知りたい。
リファクタリングを計画するのはちょっと難しいですね。
こんにちは。
Rashidさん、ウェブサイトのどこかに「Product Update Announcement」はありませんか?
いつ、どのような変更が行われたかを把握できるように。
リファクタリングを計画するのは少し難しいです。
開発者の方々は、私たちからの継続・改善のためのコメントを待っています。しかし、今のところ、この分野でのユーザーの動きは見られません。
複雑な取引システム(端末(MT4/МТ5)<->TS(異なるIP上)<_>異なるデータベース)の一般的なインフラの問題については、別の枝で議論する必要があると思います。さまざまな構成、問題、困難、利点。
グッドラック