MetaTrader 5 Python用户组 - 如何在Metatrader中使用Python - 页 67

 

MetaTrader 5 for Python 5.0.33发布。

pip install --upgrade metatrader5
 
Christian:

copy_rates_from没有提供足够的关于M1时间框架的数据。


这是否是正确的行动方案?

你对图表中的条数有限制,你需要在终端中取消这个限制(工具->选项->图表中的最大条数)。
在未来的终端版本中,当尝试此类请求时,我们将返回错误(无)。

 
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变得不可接受了
 
Pithon明天将和我的孙女一起去探索。
 

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中,图中运行。

我想这是在终端下运行脚本?检查过了,可以使用。

1.看看专家选项卡(在工具箱的底部)中写了什么错误

2.在MetaEditor的设置中检查是否有带matplotlib的正确的Python路径,在MetaEditor中改变设置后,你必须重新启动终端,因为终端只在启动时接收这些设置。

MetaEditor编译器选项

3.最好不要在mt5.initialize()中指定终端的确切路径,如果你从终端本身运行python脚本,它们会自己找到正确的路径,也就是启动它们的路径。

 
Almaz:

我认为它是从终端运行脚本的?经过测试,它是有效的。

1.看看专家选项卡(在工具箱的底部)中写了什么错误

2.在MetaEditor的设置中检查是否有带matplotlib的正确的Python路径,在MetaEditor中改变设置后,你必须重新启动终端,因为终端只在启动时接收这些设置。

3.最好不要在mt5.initialize()中指定终端的确切路径,如果你从终端本身运行python脚本,它们会自己找到正确的路径,即启动它。

谢谢钻石。
没有任何错误。在专家标签中,它被输出了。

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

路径是正确的。
在mt5.initialize()中删除了确切的路径,重新启动了终端,图开始输出了。