Muitas mudanças foram feitas durante o último ano, os guiões antigos já não funcionam.
Existe um terminal MT5 build 2361, 32bit no Windows 7. O terminal em si funciona, mas a ligação de scripts de pitões deixou de funcionar (embora estivesse a funcionar no início do ano).
Obviamente devido a actualizações do terminal, nada mais mudou. Para a realização do teste, um guião simples
import MetaTrader5 as mt5
from time import sleep
mt5.initialize()
print('start')
print(mt5.terminal_info())
sleep(10)
mt5.shutdown()
print('end')
Questione que versão do módulo python MetaTrader5 devo instalar para que volte a funcionar ? (Ou como reverter as actualizações do terminal ?)
Tentei diferentes versões de módulo - todas elas têm erros. Aqueles que são mais recentes dão -10003, 'IPC initialize failed, MetaTrader 5 x64 not found',
Alguns passam inicialização, terminal de lançamento, mas quando solicito algo, eles devolvem RuntimeError: IPC recv falhou em 'py_test.py'.
O mais antigo 5.0.10 tem outros comandos, mas também não funcionam.
O terminal não pode ser actualizado para versões mais recentes, havia alguma versão funcional do módulo python, mas não o consigo encontrar agora.
A versão de 64 bits do terminal requer actualizações do SO e muitas outras actualizações, mais o SO de 64 bits come muitas vezes mais memória e espaço em disco, má escolha. Em geral, a política de actualização automática de qualquer coisa é má. Se funcionar, não lhe tocar.
Em geral, deve ter uma tabela na documentação com que versões são compatíveis, se não suportar a compatibilidade com versões mais antigas e actualizações são forçadas.
В платформу встроена система автоматического обновления. Она позволяет своевременно получать и устанавливать новые версии программы. Эту систему отключить нельзя. Порядок обновления При подключении к торговому серверу происходит проверка наличия обновлений платформы. Если найдено обновление какого-либо из компонентов торговой платформы...
O suporte para o sistema operativo de 32 bits foi desactivado há muitos builds atrás. O terminal mudou muito desde então. Daí a solução provável para o seu problema: DEVE usar o Windows 10 de 64 bits.
Mas lá ERA uma construção compatível do terminal e do módulo, pode simplesmente instalá-los, sem quaisquer novas características.
E requerer Windows 10 64 bit é demasiado para um programa como o terminal. É demasiado pesado, ganancioso e pouco fiável para gerir qualquer coisa que requeira um funcionamento a longo prazo. Há também problemas com actualizações automáticas. É uma pena que a MT esteja ligada a este sistema.
Desde que não haja procura e não haja público preparado.
4 pessoas expressaram a sua exigência até agora, no tópico da aprendizagem por máquinas :) parece-me que se houver uma oportunidade e alguns artigos sobre o tópico, os pitonistas começarão a portar modelos. Especialmente os de língua inglesa.
from datetime import datetime
import MetaTrader5 as mt5
# выведем данные о пакете MetaTrader5
print("MetaTrader5 package author: ",mt5.__author__)
print("MetaTrader5 package version: ",mt5.__version__)
# импортируем модуль pandas для вывода полученных данных в табличной форме
import pandas as pd
pd.set_option('display.max_columns', 500) # сколько столбцов показываем
pd.set_option('display.width', 1500) # макс. ширина таблицы для показа
# импортируем модуль pytz для работы с таймзоной
import pytz
# установим подключение к терминалу MetaTrader 5if not mt5.initialize():
print("initialize() failed")
mt5.shutdown()
# установим таймзону в UTC
timezone = pytz.timezone("Etc/UTC")
# создадим объект datetime в таймзоне UTC, чтобы не применялось смещение локальной таймзоны
utc_from = datetime(2020, 1, 10, tzinfo=timezone)
# получим 10 баров с EURUSD H4 начиная с 01.10.2020 в таймзоне UTC
rates = mt5.copy_rates_from("EURUSD", mt5.TIMEFRAME_H4, utc_from, 10)
# завершим подключение к терминалу MetaTrader 5
mt5.shutdown()
# выведем каждый элемент полученных данных на новой строке
print("Выведем полученные данные как есть")
for rate in rates:
print(rate)
# создадим из полученных данных DataFrame
rates_frame = pd.DataFrame(rates)
# выведем пять первых строк (метод 'head' pandas)
print("\nВыведем пять первых строк")
rates_frame.head()
rates_frame['time']=pd.to_datetime(rates_frame['time'], unit='s')
# выведем данные
print("\nВыведем датафрейм с данными")
print(rates_frame)
rates_frame['time']=pd.to_datetime(rates_frame['time'], unit='s')
# выведем данные
print("\nВыведем датафрейм с данными")
print(rates_frame)
e o método não produz nada:
(1578614400, 1.11051, 1.11093, 1.11017, 1.11041, 2448, 1, 0)
Выведем пять первых строк
Выведем датафрейм с данными
Porque é que o método 'cabeça()' não funcionou, mas esta manobra:
# выведем пять первых строк (метод 'head' pandas)
print("\nВыведем пять первых строк")
print( rates_frame.head())
Resultado
Выведем пять первых строк
time open high low close tick_volume spread real_volume
015784848001.113841.113861.111101.112001210100115784992001.112001.113081.110871.111801324300215785136001.111801.111801.110181.11041570900315785280001.110531.111941.110331.11174440900415785424001.111741.111901.111261.11183296400
Renat, há alguma actualização sobre o suporte ONNX?
Não.
Ainda não há procura e não há público preparado.
Muitas mudanças foram feitas durante o último ano, os guiões antigos já não funcionam.
Existe um terminal MT5 build 2361, 32bit no Windows 7. O terminal em si funciona, mas a ligação de scripts de pitões deixou de funcionar (embora estivesse a funcionar no início do ano).
Obviamente devido a actualizações do terminal, nada mais mudou. Para a realização do teste, um guião simples
import MetaTrader5 as mt5 from time import sleep mt5.initialize() print('start') print(mt5.terminal_info()) sleep(10) mt5.shutdown() print('end')Questione que versão do módulo python MetaTrader5 devo instalar para que volte a funcionar ? (Ou como reverter as actualizações do terminal ?)
Tentei diferentes versões de módulo - todas elas têm erros. Aqueles que são mais recentes dão -10003, 'IPC initialize failed, MetaTrader 5 x64 not found',
Alguns passam inicialização, terminal de lançamento, mas quando solicito algo, eles devolvem RuntimeError: IPC recv falhou em 'py_test.py'.
O mais antigo 5.0.10 tem outros comandos, mas também não funcionam.
O terminal não pode ser actualizado para versões mais recentes, havia alguma versão funcional do módulo python, mas não o consigo encontrar agora.
A versão de 64 bits do terminal requer actualizações do SO e muitas outras actualizações, mais o SO de 64 bits come muitas vezes mais memória e espaço em disco, má escolha. Em geral, a política de actualização automática de qualquer coisa é má. Se funcionar, não lhe tocar.
Em geral, deve ter uma tabela na documentação com que versões são compatíveis, se não suportar a compatibilidade com versões mais antigas e actualizações são forçadas.
O suporte para o sistema operativo de 32 bits foi desactivado há muitos builds atrás. O terminal mudou muito desde então. Daí a solução provável para o seu problema: DEVE usar o Windows 10 de 64 bits.
Mas lá ERA uma construção compatível do terminal e do módulo, pode simplesmente instalá-los, sem quaisquer novas características.
E requerer Windows 10 64 bit é demasiado para um programa como o terminal. É demasiado pesado, ganancioso e pouco fiável para gerir qualquer coisa que requeira um funcionamento a longo prazo. Há também problemas com actualizações automáticas. É uma pena que a MT esteja ligada a este sistema.
Necessita de utilizar Windows 10 de 64 bits.
O que há de errado com o Windows 7 x64? Perdi outra actualização???
O que há de errado com o Windows 7 x64? Será que perdi outra notícia???
Parece-me que 7 é melhor do que 10. nenhuma orientação sobre sistemas móveis.
Para mim 7 é melhor do que 10. nenhuma orientação para sistemas móveis.
Concordo, trabalhei em 10 durante quase um ano e fiquei feliz com 7 quando cheguei a casa!
Não.
Desde que não haja procura e não haja público preparado.
Executo-o tanto como um guião em MetaEditor como em jupyter notebook.
Não consigo imprimir as primeiras cinco linhas do objecto DataFrame.
Pego no guião da 'pasta de dados' e adiciono as linhas:
e o método não produz nada:
Porque é que o método 'cabeça()' não funcionou, mas esta manobra:
Fórum sobre comércio, sistemas de comércio automatizados e testes estratégicos
Nova versão do MetaTrader 5 build 2650: Carregamento de gráficos de fundo e melhorias no MQL5 Profiler
Rashid Umarov, 2020.11.10 14:03
Experimente-o
Resultado
funcionou?
Porque é que o método 'cabeça()' não funcionou, mas esta manobra:
funcionou?
Porque o método head() (https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.head.html) devolve um objecto, e não a saída para o registo. Para ver o conteúdo, é necessário enviar explicitamente o objecto para impressão()
Esta anaconda para conveniência produz os objectos como se a impressão() tivesse sido chamada.