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

 
Renat Fatkhullin:

バージョン5.0.15以降、Pythonライブラリは古いフォーマットと互換性のない新しいフォーマットで動作し、ターミナルの最新ベータ版が必要です。

近日中にドキュメントとサンプルを更新します。

旧バージョンのライブラリを一時的にダウンロードすることは可能でしょうか?

 
Dmitri Custurov:

古いバージョンのライブラリを一時的にダウンロードすることは可能ですか?

https://pypi.org/project/MetaTrader5/5.0.11/#files

MetaTrader5
MetaTrader5
  • 2020.01.24
  • pypi.org
Download the file for your platform. If you're not sure which to choose, learn more about installing packages. Files for MetaTrader5, version 5.0.11 Filename, size File type Python version Upload date Hashes MetaTrader5-5.0.11-cp36-cp36m-win32.whl (31.7 kB) MetaTrader5-5.0.11-cp36-cp36m-win_amd64.whl (43.3 kB...
 

統合化について意見を述べないわけにはいきません。両手を挙げて賛成です。Python、ニューラルネットワーク、AI、コンパイラの拡張などなど...。

しかし、ひとつだけBUTがあります。

いくらカッコいい開発環境でも、質量がないとダメでしょう?そして、そのツールキットが通常のプリミティブである場合、どうして質量があるのでしょうか?NO - 通常のプリミティブではなく、ジェネリック・プリミティブです。超複雑なプリミティブ

CCanvas クラスを 例にとると、これはグラフィックプリミティブの集合体です。たくさん組み立てることができるのでしょうか?たくさん。しかし、そのためにどれだけの頭脳と労働力が必要なのか。- たくさん。頭脳と労働力の海がTHINGを生み出す。どれくらいの人ができるのでしょうか?- ほんの少しです。

もう一度本題に戻りますが、もしAPRIORIが人間の並外れたデザイン能力の存在を前提としているならば、なぜ開発環境ツールが普及したのでしょうか?そのような場合、大量入手は論外です。

簡単に言い換えます。

Python、C++、MQL5、Algotradingに精通し、並外れたデザイン能力を持つ人がいたとして、どのプロフェッショナルな環境で自分のTHINGを作るかは、その人にとってどんな違いがあるのでしょうか?最小限の機能を使い、最大限の結果を出す。また、ツールキットの複雑さの敷居の高さから、すべてを使おうとして、何も生み出さない人もいるでしょう。

では、誰に何を集中させればいいのでしょうか。

 

バージョンダウンして5.0.10にしました。

444

どうやらアップデートを待つしかなさそうです。

 

皆様にご挨拶申し上げます。

例題に正しく従ったにもかかわらず、このエラーが発生するのはなぜですか?

皆さん、こんにちは。

例題に正しく従ったにもかかわらず、このエラーが発生するのはなぜですか?


 
Renat Fatkhullin:
Visual Studioでpythonは有効になっていますか?

異なるシステムによって間接的または自動的にデプロイされたパイソンの動物園のため、別のパイソンコピーにインストールされたライブラリを取得し、他のコピーを実行しようとするのは簡単です。

パイソンの整理をお願いします。Pythonに移行した人は、残りの人生をライブラリや依存関係、非互換性との戦いに費やす覚悟が必要です。

これはpythonistの宿命です。ライブラリの環境を構築し、ライブラリのアップデートによって、別の未知のライブラリの数が台無しにならないように祈るしかないのです。

Pythonの動物園がない。環境はある。複数の環境が存在する場合もあります。どの環境を使うかは、ユーザーが選択する。

Python環境は、スクリプトを実行する前に初期化する必要があります。

ライブラリーで 検討したことがあります。以下、環境初期化機能コードです。

MetaTrader 5 (MQL5) + Python 3 DLL для Forex, CFD и Futures
  • roffild.com
Использование MetaTrader с Python 3 на финансовых фондовых биржах, Forex, CFD и Futures. Из MetaTrader можно получать котировки в Python, но нет полноценной связи между ними. Пост одного из разработчиков. Главная идея и отличие этой обертки от остальных: обмен данными между MQL и Python через заранее созданные функции. Это самый быстрый и...
 

MetaEditorに見切りをつける時期かも?本格的なレディメイドのIDEを手に入れることができるのに、なぜさまざまな技術を詰め込むのでしょうか?

最近はみんなIDE用のモジュールを作っていますね。

マイクロソフトビジュアルスタジオコード

ジェットブレインズ インテリジェン アイデア

 
Roffild:

Pythonの動物園がない。環境という概念があります。コンピュータには、いくつかの環境が存在することがあります。どの環境を利用するかは、ユーザーの自由です。

Python環境は、スクリプトを実行する前に初期化する必要があります。

ライブラリーで 検討したことがあります。以下は、環境初期化関数のコードです。

環境を簡単にサポートします。エディタでコンパイラの設定を見てみてください。

私が言いたかったのは、端末がある環境(例えばデフォルトのパス)を選択でき、ライブラリはユーザが手動で別の環境に置くという意味でのzooについてです。


明日、ターミナルの新しいベータ版と新しいPythonライブラリをリリースする予定です。APIとライブラリを一から書き直したため、古いメソッドやサンプルはすべて壊れています。

新しいapiのセットは広く、完全に取引を管理することができ、オープンポジションと履歴にアクセスすることができます。

Pythonで直接、本格的なMetatraderのロボットを書くことができるようになりました。

 

MetaTrader 5 for Python 5.0.18 および MetaTrader 5 build 2319 betaの新バージョンです。

  • MT5ベータ版のダウンロードは、ヘルプ→ベータ版の確認で行います。
  • python ライブラリです。
    pip install --upgrade metatrader5
    

すべてのAPIが変更されたため、古い例はもう使えません。

以下、新機能を紹介します。

initialize(path=None)                              Establish connection with the MetaTrader 5 Terminal
wait()                                             Wait for the MetaTrader 5 Terminal to connect to a broker's server
shutdown()                                         Disconnect from the MetaTrader 5 Terminal

version()                                          Get the MetaTrader 5 Terminal version
terminal_info()                                    Get the parameters of the MetaTrader 5 terminal
account_info()                                     Returns information of current account

copy_ticks_from(symbol, from, count, flags)                Get ticks starting from the specific date
copy_ticks_range(symbol, from, to, flags)                  Get ticks from the specified period
copy_rates_from(symbol, timeframe, from, count)            Get bars starting from the specific date
copy_rates_from_pos(symbol, timeframe, start_pos, count)   Get bars starting from the specified position
copy_rates_range(symbol, timeframe, date_from, date_to)    Get bars from the specified period

positions_total()                                          Returns the number of open positions
positions_get([symbol=\"SYMBOL\"],[ticket=TICKET])         Returns all open positions, can be filtered by symbol or ticket

orders_total()                                             Returns the number of orders
orders_get([symbol=\"SYMBOL\"],[ticket=TICKET])            Returns all orders, can be filtered by symbol or ticket

history_orders_total(from, to)                             Returns the number of orders in selected range from the history
history_orders_get(from, to)                               Returns orders in selected range from the history or filtered by position id, ticket

history_deals_total(from, to)                              Returns the number of deals in selected range from the history
history_deals_get(from, to)                                Returns deals in selected range from the history or filtered by position id, ticket

order_check(request)                                                Checks if there are enough funds to execute the required trade operation
order_send(request)                                                 Sends trade requests to a server
order_calc_margin(action, symbol, volume, price)                    Calculates the margin required for the specified order
order_calc_profit(action, symbol, volume, price_open, price_close)  Calculates the profit for the current account, in the current market conditions, based on the parameters passed

symbol_info(symbol)                                        Returns full information for a specified symbol
symbol_info_tick(symbol)                                   Returns current prices of a specified symbol
symbol_select(symbol,[enable])                             Selects a symbol in the Market Watch window or removes a symbol from the window

import MetaTrader5 as mt5
import time

mt5.initialize()
mt5.wait()

dev = 0.00010;
symbol = "EURUSD"
buy_price = 0

mt5.symbol_select(symbol)

time.sleep(1)
p = mt5.symbol_info_tick(symbol)
prev_price = p.ask

while True:
    p = mt5.symbol_info_tick(symbol)
    print(p.bid,'/',p.ask)
    
    if p.ask > prev_price and buy_price == 0:
            print("Buy ", p.ask)
            r = mt5.Buy(symbol, 0.01)
            if r.retcode == mt5.TRADE_RETCODE_DONE:
                buy_price = p.ask;
    elif buy_price > 0 and p.ask + dev < buy_price:
        print("Buy(close) ", p.bid)
        mt5.Close(symbol)
        buy_price = 0

    prev_price = p.ask
    time.sleep(1)

mt5.shutdown()
 
Renat Fatkhullin:

MetaTrader 5 for Python 5.0.18 および MetaTrader 5 build 2319 betaの新バージョンです。

  • MT5ベータ版のダウンロードは、ヘルプ→ベータ版の確認で行います。
  • python ライブラリです。

すべてのAPIが変更されたため、以前の例はもう使えません。

すべてがダイナミックに変化しているのです。

本当に巻き込まれないようにね。

おそらく、ONNXを使ったWinMLの 実装を待つ価値があると思います。そして、その前にML理論を把握すること。 幸いなことに、今ではたくさんの文献や様々なコースが用意されています。