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にアップデート
スクリプトのバックアップ
結果
MetaTrader5 package author: MetaQuotes Software Corp. MetaTrader5 package version: 5.0.27 {'login': 25115284, 'trade_mode': 0, 'leverage': 100, 'limit_orders': 200, 'margin_so_mode': 0, 'trade_allowed': True, 'trade_expert': True, 'margin_mode': 2, 'currency_digits': 2, 'fifo_close': False, 'balance': 97639.46, 'credit': 0.0, 'profit': -178.77, 'equity': 97460.69, 'margin': 704.8, 'margin_free': 96755.89, 'margin_level': 13828.134222474464, 'margin_so_call': 50.0, 'margin_so_so': 30.0, 'margin_initial': 0.0, 'margin_maintenance': 0.0, 'assets': 0.0, 'liabilities': 0.0, 'commission_blocked': 0.0, 'name': 'MetaQuotes Dev Demo', 'server': 'MetaQuotes-Demo', 'currency': 'USD', 'company': 'MetaQuotes Software Corp.'} Вывод каждого свойства отдельно: login = 25115284 trade_mode = 0 leverage = 100 limit_orders = 200 margin_so_mode = 0 trade_allowed = True trade_expert = True margin_mode = 2 currency_digits = 2 fifo_close = False balance = 97639.46 credit = 0.0 profit = -178.77 equity = 97460.69 margin = 704.8 margin_free = 96755.89 margin_level = 13828.134222474464 margin_so_call = 50.0 margin_so_so = 30.0 margin_initial = 0.0 margin_maintenance = 0.0 assets = 0.0 liabilities = 0.0 commission_blocked = 0.0 name = MetaQuotes Dev Demo server = MetaQuotes-Demo currency = USD company = MetaQuotes Software Corp.タイマーの詳細について教えてください。
自分で調べたわけではなく、検索 しただけです
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上)<_>異なるデータベース)の一般的なインフラの問題については、別の枝で議論する必要があると思います。さまざまな構成、問題、困難、利点。
グッドラック