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

 
Документация по MQL5: Интеграция / MetaTrader для Python / order_send
Документация по MQL5: Интеграция / MetaTrader для Python / order_send
  • www.mql5.com
[in]  Структура типа MqlTradeRequest, которая описывает требуемое торговое действие. Обязательный неименованный параметр. Пример заполнения запроса и состав перечислений смотрите ниже. Идентификатор эксперта. Позволяет организовать аналитическую обработку торговых ордеров. Каждый эксперт может выставлять свой собственный уникальный...
 
AxxelTrader:

已升级到2432版本。
,但错误仍然存在...
在不同的经纪商上试过,甚至...

r = mt5.Buy(...)
if r is None:
    print(mt5.last_error())
else:
    if r.retcode ...
 

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


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

from datetime import datetime 
import matplotlib.pyplot as plt
import pandas as pd
from pandas.plotting import register_matplotlib_converters
import pytz

register_matplotlib_converters()
import MetaTrader5 as mt5


 if not mt5.initialize():
    print("initialize() failed")
    mt5.shutdown()


print(mt5.terminal_info())
print(mt5. version ())

timezone = pytz.timezone("Etc/UTC")
utc_from = datetime ( 2020 , 1 , 10 , tzinfo=timezone)


eurusd_rates_m1 = mt5.copy_rates_from("EURUSD", mt5.TIMEFRAME_M1, utc_from, 1000 )
print('M1 eurusd_rates(', len(eurusd_rates_m1), ')')
eurusd_rates_m5 = mt5.copy_rates_from("EURUSD", mt5.TIMEFRAME_M5, utc_from, 1000 )
print('M5 eurusd_rates(', len(eurusd_rates_m5), ')')
eurusd_rates_m10 = mt5.copy_rates_from("EURUSD", mt5.TIMEFRAME_M10, utc_from, 1000 )
print('M10 eurusd_rates(', len(eurusd_rates_m10), ')')
eurusd_rates_m15 = mt5.copy_rates_from("EURUSD", mt5.TIMEFRAME_M15, utc_from, 1000 )
print('M15 eurusd_rates(', len(eurusd_rates_m15), ')')
eurusd_rates_m30 = mt5.copy_rates_from("EURUSD", mt5.TIMEFRAME_M30, utc_from, 1000 )
print('M30 eurusd_rates(', len(eurusd_rates_m30), ')')


mt5.shutdown()
M1 eurusd_rates( 1 )      ???
M5 eurusd_rates( 1000 )
M10 eurusd_rates( 1000 )
M15 eurusd_rates( 1000 )
M30 eurusd_rates( 1000 )
 
我知道这个话题很快就会变得非常长。Metaquotes需要为每种语言增加一个新的子论坛(Python)。
 
Christian:

copy_rates_range没有提供足够的M1时间框架的数据。


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

注意注意复印率的范围

注意事项

更多信息见CopyRates() 函数。

MetaTrader 5终端仅在用户可使用的历史图表中提供条形图。用户可用的条数在 "图表中最大条数"参数中设置。

当创建'datetime'对象时,Python使用当地的时区,而MetaTrader 5则以UTC时区(不含移位)存储tick和bar open时间。因此,在执行使用时间的函数时,'datetime'应该以UTC时间创建。从MetaTrader 5终端收到的数据有UTC时间。


Documentation on MQL5: Integration / MetaTrader for Python / copy_rates_range
Documentation on MQL5: Integration / MetaTrader for Python / copy_rates_range
  • www.mql5.com
# create 'datetime' objects in UTC time zone to avoid the implementation of a local time zone offset # get bars from USDJPY M5 within the interval of 2020.01.10 00:00 - 2020.01.11 13:00 in UTC time zone                  time     open     high      low    close  tick_volume  spread  real_volume...
 
Rashid Umarov:

请注意注意复印率范围

在复制率方面有一个错误。我发了好几次这个帖子,但没有人承认它。

import MetaTrader5 as mt5

mt5.initialize()
maxbars = mt5.terminal_info().maxbars
for count in range(maxbars):
    rates = mt5.copy_rates_from_pos('EURUSD', mt5.TIMEFRAME_M1, 0, count)
    errno, strerror = mt5.last_error()
    if errno != mt5.RES_S_OK:
        print(f"Failed on count={count} with strerror={strerror}")
        break
mt5.shutdown()

##
# Failed on count=7844 with strerror=IPC recv failed
##
 
这很遗憾,但我的理解是,MT中结构的初始化有问题。
 
顺便说一下,我必须把我的孙女介绍给Python,我不认识他......再见。
 

我有一个脚本,运行了几个小时。但后来我开始收到这些错误,无效的止损,然后它就不再打开交易。

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) 

谁能帮助指导从哪里开始寻找这个问题?

谢谢你

 
fbrand:

我有一个脚本,运行了几个小时。但后来我开始收到这些错误,无效的止损,然后它就不再打开交易。

谁能帮助指导从哪里开始寻找这个问题?

谢谢你

当前的价格(买入和卖出)是多少?冻结水平是多少(SYMBOL_TRADE_FREEZE_LEVEL)?