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

 
Roman:

@Almaz
copy_xxx_xxx 関数を初めて実行するとき、端末がしばらく起動していない場合、
関数は履歴スワップの同期を待たずに、利用可能な結果を欠落した履歴で即座に返します。
これは、最初の関数呼び出しが、履歴を欠いた結果を返すことを意味します。
履歴を入れ替えた場合、その後の呼び出しでのみ正しい結果が返されます。
この問題を解決することは可能ですか?また、関数 copy_xxx_xxx は、最初の呼び出しで履歴がスワップされるのを待ちます。

copy_ticks or copy_rates? ターミナルのビルドは何ですか?

 
Roman:

@Almaz
copy_xxx_xxx 関数を初めて実行するとき、端末がしばらく起動していない場合、
関数は履歴スワップの同期を待たずに、利用可能な結果を欠落した履歴で即座に返します。
これは、最初の関数呼び出しが、履歴を欠いた結果を返すことを意味します。
履歴を入れ替えた場合、その後の呼び出しでのみ正しい結果が返されます。
この問題を解決することは可能ですか?また、copy_xxx_xxx関数は、最初の呼び出しで履歴がスワップされるのを待ちます。

続きを読むデータアクセスの整理、Pythonライブラリは関係ない。これは標準的な動作で、このような状況に対応し、端末がスワップした後に履歴を再要求する必要があります。

これは1回だけなので、致命的ではありません。常にスクリプトから端末を操作していれば、既存の履歴を常に最新に保つことができます。

Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
  • www.mql5.com
Прежде чем ценовые данные будут доступны в терминале MetaTrader 5, их необходимо получить и обработать. Для получения данных требуется подключение к торговому серверу MetaTrader 5. Данные поступают с сервера по запросу терминала в виде экономно упакованных блоков минутных баров. Механизм обращения к серверу за данными не зависит от того, каким...
 
Almaz:

copy_ticksかcopy_ratesか? ターミナルのビルドはどちらか?

copy_ratesを使用しましたが、copy_ticksも同じになると思いますが、確認していません。
ビルド2470

 
Rashid Umarov:

Organize Data Accessを 読むと、Pythonのライブラリとは関係ないことがわかります。これは標準的な動作で、このような状況を処理し、端末がバウンスした後に履歴を再要求する必要があります。

これは1回だけなので、致命的ではありません。常にスクリプトから端末を操作していれば、既存の履歴を常に最新に保つことができます。


それとも、CheckLoadHistoryを 同じように整理する必要があると言いたいのでしょうか。
なぜ、この機能を標準搭載しないのか?MqlとPyのライブラリ用。

また、一般的には、履歴の入れ替えを待たずに、Copy関数に不正なデータを受け取らせ、その結果を与えるのはおかしいと思います。
 
Roman:

このセクションを読むと、Mql5について言及しています。
それとも、CheckLoadHistoryを 同じように整理する必要があると言いたいのでしょうか?
この機能を標準で導入してはどうだろうか。MqlとPyのライブラリ用。

また、一般的に、Copy関数で不正なデータを許可し、履歴の入れ替えを待たずに結果を出すのはおかしいと思います。

MQL5で作業する場合データへのアクセスを整理する セクションの問題はそれほど特別なものではありません。私たちはこのセクションを広く研究してきました。そして、それを利用するのです。

Pythonの場合は、なぜ違うのでしょうか?

やはり、メインコアはMQL5で、それを知っていないとダメですね。そして、その後に初めてPythonを適用する必要があるのです。

Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
  • www.mql5.com
Прежде чем ценовые данные будут доступны в терминале MetaTrader 5, их необходимо получить и обработать. Для получения данных требуется подключение к торговому серверу MetaTrader 5. Данные поступают с сервера по запросу терминала в виде экономно упакованных блоков минутных баров. Механизм обращения к серверу за данными не зависит от того, каким...
 
Roman:

このセクションを読むと、Mql5について言及しています。
それとも、CheckLoadHistoryを 同じように整理する必要があると言いたいのでしょうか?
この機能を標準で導入してはどうだろうか。MqlとPyのライブラリ用。

また、一般的にCopy関数で不正なデータを許可し、履歴の読み込みを待たずに結果を返すのはおかしいと思います。

Pythonライブラリは、手動、MQL5、またはPythonからのスクリプトを使用して、それが要求された方法に関係なく、一般的にMetaTrader 5ターミナルから データを要求することができます。

MQL5プログラムやPythonスクリプトの開発者は、データを扱う際のロジックや構成に責任を持ちます。

 

午後

PowerShellでターミナルに接続するオプションはありますか? もし方法をご存知の方がいらっしゃいましたら、情報を頂けると幸いです。

pythonの経験がないので、私が一番知っているものを使いたい))

 

ごきげんよう。

ライブラリを接続し、PythonはMt5と通信しており、アカウント情報を 取得していますが、相場は一切読み込まれません。助けていただけますか?

Pythonバージョン3.7.6


from datetime import datetime
import MetaTrader5 as mt5

# выведем информацию о версии MetaTrader 5
print(mt5.version())

# установим подключение к терминалу MetaTrader 5
if not mt5.initialize():
    print("initialize() failed, error code =",mt5.last_error())
    quit()

# подключимся к торговому счету без указания пароля и сервера
account=17245465
authorized=mt5.login(account)  # пароль будет взят из базы терминала, если указано помнить данные для подключения
if authorized:
    # выведем данные о торговом счете как есть
    print(mt5.account_info())
    # выведем данные о торговом счете в виде списка
    print("Show account_info()._asdict():")
    account_info_dict = mt5.account_info()._asdict()
    for prop in account_info_dict:
        print("  {}={}".format(prop, account_info_dict[prop]))
else:
    print("failed to connect at account #{}, error code: {}".format(account, mt5.last_error()))

# запросим статус и параметры подключения
print(mt5.terminal_info())

# получим информацию о версии MetaTrader 5
print(mt5.version())

x= mt5.symbols_total()
print('количество всех финансовых инструментов в терминале MetaTrader 5=', x)

# получим все символы
symbols=mt5.symbols_get()
print('symbols=', symbols)

# получим бары с разных инструментов разными способами
eurusd_rates = mt5.copy_rates_from("EURUSD", mt5.TIMEFRAME_M30, datetime(2020, 1, 28, 13), 1000)

# DATA
print('eurusd_rates', eurusd_rates )

# завершим подключение к MetaTrader 5
mt5.shutdown()


結果

(0, 0, '')
AccountInfo(login=17245465, trade_mode=2, leverage=500, limit_orders=500, margin_so_mode=0, trade_allowed=False, trade_expert=True, margin_mode=2, currency_digits=2, fifo_close=False, balance=0.0, credit=0.0, profit=0.0, equity=0.0, margin=0.0, margin_free=0.0, margin_level=0.0, margin_so_call=50.0, margin_so_so=20.0, margin_initial=0.0, margin_maintenance=0.0, assets=0.0, liabilities=0.0, commission_blocked=0.0, name='xxxxxxxxxxxxx', server='Alpari-MT5', currency='USD', ...)
Show account_info()._asdict():
  login=17045461
  trade_mode=2
  leverage=500
  limit_orders=500
  margin_so_mode=0
  trade_allowed=False
  trade_expert=True
  margin_mode=2
  currency_digits=2
  fifo_close=False
  balance=0.0
  credit=0.0
  profit=0.0
  equity=0.0
  margin=0.0
  margin_free=0.0
  margin_level=0.0
  margin_so_call=50.0
  margin_so_so=20.0
  margin_initial=0.0
  margin_maintenance=0.0
  assets=0.0
  liabilities=0.0
  commission_blocked=0.0
  name=ххххххх
  server=Alpari-MT5
  currency=USD
  company=Alpari International
TerminalInfo(community_account=True, community_connection=True, connected=True, dlls_allowed=False, trade_allowed=False, tradeapi_disabled=False, email_enabled=False, ftp_enabled=False, notifications_enabled=False, mqid=False, build=2489, maxbars=100000000, codepage=1251, ping_last=95766, community_balance=0.0, retransmission=5.305821665438467, company='Alpari International', name='Alpari MT5', language='Russian', path='C:\\Program Files\\Alpari MT5', ...)
(500, 2489, '12 Jun 2020')

количество всех финансовых инструментов в терминале MetaTrader 5= 43
symbols= (SymbolInfo(custom=False, chart_mode=0, select=True, ....
eurusd_rates None

Process finished with exit code 0
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Свойства графиков
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Свойства графиков
  • www.mql5.com
Признак отрисовки ценового графика. Если установлено значение false, то отключается отрисовка любых атрибутов ценового графика и устраняются все отступы по краям графика: шкалы времени и цены, строка быстрой навигации, метки событий Календаря, значки сделок, тултипы индикаторов и баров, подокна индикаторов, гистограммы объёмов и т.д. Значение...
 
rale70:

ごきげんよう。

ライブラリを接続し、pythonはMt5と通信し、アカウント情報も 取得していますが、相場が一切読み込まれません。助けていただけますか?

Pythonバージョン3.7.6



結果

コードを正しく挿入してください(ボタン使用コード )。

 
Vladimir Karputov:

コードを正しく挿入してください(ボタンを使用してください)

デザインありがとうございます、参考にさせていただきます。