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

 

MetaTrader 5 for Python 5.0.33をリリースしました。

pip install --upgrade metatrader5
 
Christian:

copy_rates_fromはM1タイムフレームに関する十分なデータを提供しない。


これは正しい行動なのでしょうか?

チャート内のバーの数に制限がある場合、ターミナルでこの制限を解除する必要があります(ツール->オプション->チャート内の最大バー数)。
今後の Terminal のビルドでは、このようなリクエストを試行するとエラー (なし) が返されます。

 
Metaquotes :

MetaTrader 5 for Python 5.0.33をリリースしました。

すごい! すべてのユニットテストに合格しました。 pymt5adapter は MetaTrader 5.0.33 を使用するようにアップグレードされました。

両パッケージは、以下のコマンドでアップグレードできます。




pip install -U pymt5adapter 

https://pypi.org/project/pymt5adapter/


注意: カレンダーモジュールは pymt5adapter から永久に削除されました。

pymt5adapter
pymt5adapter
  • 2020.05.26
  • pypi.org
A drop in replacement wrapper for the MetaTrader5 package
 
1.BUY order send (): by EURUSD 0.01 lots at 1.0949 

2. order_send failed, retcode = 10016 
   retcode = 10016 
   deal = 0 
   order = 0 
   volume = 0.0 
   price = 0.0 
   bid = 0.0 
   ask = 0.0 
   comment = Invalid stops 
   request_id = 0 
   retcode_external = 0 

   request = TradeRequest (action = 1, magic = 234000, order = 0, symbol = 'EURUSD', volume = 0.01, price = 1.0949, stoplimit = 0.0, sl = 1.0939, tp = 1.0979, 
   deviation = 0, type = 0, type_filling = 0, type_time = 0, expiration = 0, commen 

t = 'EURUSD Buy.', Position = 0, position_by = 0) 
stoplimit = 0.0 の初期化は単に失敗しただけ、というか、成功したの ですが、stoplimit が受け入れられなく なったのです。
 
ピトンは明日、孫娘と一緒に探検する予定です。
 

Python 5.0.33

@Almaz
matplotlib パッケージの図が出力されない。
コンソールやpython IDEから、図が実行されます。

2020.05.28 22:47:51.654 mplib (EURUSD,M5)       Figure(640 x480)
# -*- coding: utf-8 -*-

import MetaTrader5 as mt5
import matplotlib.pyplot as plt

Win = 11

if not mt5.initialize("C:\Program Files\MetaTrader 5\\terminal64.exe"):
    print("mt5.initialize() failed, error code = ", mt5.last_error())
    quit()   
    
rates = mt5.copy_rates_from_pos("EURUSD", mt5.TIMEFRAME_M5, 1, Win)   
close = rates['close']       
    
mt5.shutdown()    


fig = plt.figure()

ax1 = fig.add_subplot(3, 1, 1)
ax2 = fig.add_subplot(3, 1, 2)
ax3 = fig.add_subplot(3, 1, 3)

ax1.plot(close, color=(0.60, 0.60, 0.60), linestyle='dashed', linewidth = 1)
ax2.plot(close, color=(0.60, 0.60, 0.60), linestyle='dashed', linewidth = 1)
ax3.plot(close, color=(0.60, 0.60, 0.60), linestyle='dashed', linewidth = 1)

plt.show()
 
Roman:

Python 5.0.33。

matplotlibパッケージの図を表示しない。
コンソールまたはpython IDEから、図が起動します。

お試しください

pip install -U pymt5adapter pandas mplfinance

コード

import mplfinance as mpf
import pandas as pd
import pymt5adapter as mta


def main():
    rates = mta.copy_rates_from_pos("EURUSD", mta.TIMEFRAME.H1, start_pos=0, count=50)
    df = pd.DataFrame(rates).rename(columns={'tick_volume': 'volume'})
    df.columns = (s.title() for s in df.columns)
    df['Time'] = pd.to_datetime(df['Time'], unit='s')
    df = df.set_index('Time')
    print(df)
    mpf.plot(df, type='candle', mav=(7, 15), volume=True)


if __name__ == '__main__':
    with mta.connected():
        main()


 
nicholi shen:

お試しください

コード

ありがとうございます。mplfinance面白いライブラリですね。
でも、小ネタが必要なんです。

この図書館で、そのような姿を展示することができるのでしょうか?

 
Roman:

Python 5.0.33

@Almaz
matplotlibパッケージの図が出力されない。
コンソールやpython IDEから、図が実行されます。

これは、Terminalの下からスクリプトを実行しているのでしょうか?確認したところ、動作しています。

1.エキスパートタブ(ツールボックスの一番下)でどんなエラーが書かれているか確認する

2.MetaEditorの設定で、matplotlibのある正しいPythonへのパスが設定されているか確認してください。MetaEditorで設定を変更した後、ターミナルを再起動する必要があります。ターミナルは起動時にのみこれらの設定を拾います。

MetaEditorのコンパイラオプション

3. mt5.initialize() でターミナルの正確なパスを指定しない方が良い。Pythonスクリプトをターミナル自体から実行する場合、正しいもの、つまり、起動したものを自分で見つける。

 
Almaz:

ターミナルからスクリプトを実行しているのですね。テストしたところ、うまくいきました。

1.エキスパートタブ(ツールボックスの一番下)でどんなエラーが書かれているか確認する

2.MetaEditorの設定で、matplotlibのある正しいPythonへのパスが設定されているか確認してください。MetaEditorで設定を変更した後、ターミナルを再起動する必要があります。ターミナルは起動時にのみこれらの設定を拾います。

3. mt5.initialize() でターミナルの正確なパスを指定しない方が良い。ターミナルから Python スクリプトを実行する場合、正しいパスを自分で探して起動するため。

ありがとう、ダイヤモンド。
エラーはありません。Expertsタブでは出力されました。

2020.05.28 22:47:51.654 mplib (EURUSD,M5)       Figure(640 x480)

パスは正しいです。
mt5.initialize()で正確なパスを削除し、端末を再起動したところ、図が出力されるようになった。