MetaTrader 5 Python User Group - как использовать Python в Метатрейдере - страница 20
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
По крайней мере, должна иметься детальная документация, учитывающая все случаи. Универсум не так-то большой - всего 3 ветки операционных систем - Win/Linux/MacOS.
Установил Microsoft build tools с https://visualstudio.microsoft.com/ru/downloads/?rr=https%3A%2F%2Fwww.google.com%2F. Теперь пакет устанавливается в Python 3.8. Эта проблема РЕШЕНА.
C:\Users\labor>pip install MetaTrader5
Collecting MetaTrader5
Using cached https://files.pythonhosted.org/packages/3c/c8/713f1b8283cbbdef30dc9cf50a5d767f9b4a194eb4f886a8e50074b696a1/MetaTrader5-5.0.6.tar.gz
Installing collected packages: MetaTrader5
Running setup.py install for MetaTrader5 ... done
Successfully installed MetaTrader5-5.0.6
НО! Ошибка RuntimeError: IPC call failed осталась:
C:\Users\labor>C:\Users\labor\Anaconda3\envs\metatrader5\python.exe C:/Users/labor/Downloads/MetaTrader5-Python/metatrader5-test.py
[2, 'Exness-MT5Real', '0000000'] # код обнулен в распечатке
[500, 2174, '11 Oct 2019']
Traceback (most recent call last):
File "C:/Users/labor/Downloads/MetaTrader5-Python/metatrader5-test.py", line 10, in <module>
ticks1 = MT5CopyTicksFrom("EURAUD", datetime(2019,1,28,13), 10000, MT5_COPY_TICKS_ALL)
RuntimeError: IPC call failed
такая же ошибка возникает когда нет такого символа на счете в мт5. Например, EURPLN нету в терминале
Терминал работает как надо.
Пожалуйста, подключитесь к серверу MetaQuotes-Demo, выберите Help -> Check Desktop Updates -> Latest Beta Build, дождитесь обновления. Билд должен быть старше или равен 2174. Попробуйте запустить ваш скрипт на этом сервере и сообщите результат.
PS. Еще, убедитесь что у вас открыт счет в терминале, ф-ция MT5TerminalInfo() возвращает разумные значения и MT5WaitForTerminal() вернул True.
такая же ошибка возникает когда нет такого символа на счете в мт5. Например, EURPLN нету в терминале
Пожалуйста, подключитесь к серверу MetaQuotes-Demo, выберите Help -> Check Desktop Updates -> Latest Beta Build, дождитесь обновления. Билд должен быть старше или равен 2174. Попробуйте запустить ваш скрипт на этом сервере и сообщите результат.
PS. Еще, убедитесь что у вас открыт счет в терминале, ф-ция MT5TerminalInfo() возвращает разумные значения и MT5WaitForTerminal() вернул True.
Счет открыт, терминал работает, и пакет возвращает из него мой пароль и пр. ([2, 'Exness-MT5Real', '0000000'] , прим: пароль запикан), но на этапе извлечения из него данных возникает ошибка.
В Anaconda Python та же хрень (снес Python 3.8 и установил свежий дистрибутив Anaconda, который использует одну из версий Python 3.7 и pip-нул в нее ваш MetaTrader5):
File "C:\Users\labor\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 110, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "C:/Users/labor/.spyder-py3/temp.py", line 17, in <module>
eurusd_rates = MT5CopyRatesFrom("EURUSD", MT5_TIMEFRAME_M1, datetime(2019,4,5,15), 1000)
RuntimeError: IPC call failed
Как видно, спотыкается на MT5CopyRatesFrom во время какой-то файловой операции.Выпустили обновленную версию пакета MetaTrader 5.0.7 для Python.
Обновиться можно так:
Выпустили обновленную версию пакета MetaTrader 5.0.7 для Python.
Обновиться можно так:
какие-то изменения?
какие-то изменения?
Переход от true/false результатов к детальным числовым кодам.
Улучшили режимы ожидания доступности данных из терминала.Пожалуйста, подключитесь к серверу MetaQuotes-Demo, выберите Help -> Check Desktop Updates -> Latest Beta Build, дождитесь обновления. Билд должен быть старше или равен 2174. Попробуйте запустить ваш скрипт на этом сервере и сообщите результат.
PS. Еще, убедитесь что у вас открыт счет в терминале, ф-ция MT5TerminalInfo() возвращает разумные значения и MT5WaitForTerminal() вернул True.
Мой терминал имеет build 2190; в терминале тот же инструмент, который запрашивется в скрипте. Скрипт возвращает имя моего брокера и торговый код: [2, 'Exness-MT5Real', '*******'].
После обновления пакета ошибка возникает на той же самой строке кода, на сообщение об ошибке изменилось: RuntimeError: Terminal: Call failed
(base) C:\Users\labor>python.exe C:/Users/labor/Downloads/MetaTrader5-Python/mt5test2.py
[2, 'Exness-MT5Real', '0000000']
[500, 2190, '18 Oct 2019']
Traceback (most recent call last):
File "C:/Users/labor/Downloads/MetaTrader5-Python/mt5test2.py", line 17, in <module>
eurusd_rates = MT5CopyRatesFrom("EURUSD", MT5_TIMEFRAME_M1, datetime(2019,4,5,15), 1000)
RuntimeError: Terminal: Call failed
Мой терминал имеет build 2190; в терминале тот же инструмент, который запрашивется в скрипте. Скрипт возвращает имя моего брокера и торговый код: [2, 'Exness-MT5Real', '*******'].
Обновитесь до питон пакета MetaTrader 5.0.7 и приложите результаты, пожалуйста.
Обновитесь до питон пакета MetaTrader 5.0.7 и приложите результаты, пожалуйста.
1) использую Anaconda Python 3.7.4 и работаю в виртуальной среде base. Кстати, для какой версии Python предназначен пакет MetaTrader 5.0.7 ?
2) по вашей просьбе снова установил Python 3.8, обновил pip и уже на этапе установки matplotlib получаю вот это (весь ПРОТОКОЛ см. в скрепке):
Microsoft Windows [Version 10.0.17134.1069]. Чертовщина...
(c) Корпорация Майкрософт (Microsoft Corporation), 2018. Все права защищены.
C:\Users\labor>pip install matplotlib
Collecting matplotlib
Using cached https://files.pythonhosted.org/packages/12/d1/7b12cd79c791348cb0c78ce6e7d16bd72992f13c9f1e8e43d2725a6d8adf/matplotlib-3.1.1.tar.gz
Requirement already satisfied: cycler>=0.10 in c:\python38\lib\site-packages (from matplotlib) (0.10.0)
Requirement already satisfied: kiwisolver>=1.0.1 in c:\python38\lib\site-packages (from matplotlib) (1.1.0)
Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in c:\python38\lib\site-packages (from matplotlib) (2.4.2)
Requirement already satisfied: python-dateutil>=2.1 in c:\python38\lib\site-packages (from matplotlib) (2.8.0)
Requirement already satisfied: numpy>=1.11 in c:\python38\lib\site-packages (from matplotlib) (1.17.3)
Requirement already satisfied: six in c:\python38\lib\site-packages (from cycler>=0.10->matplotlib) (1.12.0)
Requirement already satisfied: setuptools in c:\python38\lib\site-packages (from kiwisolver>=1.0.1->matplotlib) (41.2.0)
Installing collected packages: matplotlib
Running setup.py install for matplotlib ... error
ERROR: Command errored out with exit status 1:
command: 'c:\python38\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\labor\\AppData\\Local\\Temp\\pip-install-unwrm6r5\\matplotlib\\setup.py'"'"'; __file__='"'"'C:\\Users\\labor\\AppData\\Local\\Temp\\pip-install-unwrm6r5\\matplotlib\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\labor\AppData\Local\Temp\pip-record-ly12rvmr\install-record.txt' --single-version-externally-managed --compile
............. продолжение в файле
3) установил matplotlib с помощью ресурса http://www.lfd.uci.edu/~gohlke/pythonlibs/, установил стандартно pytz и ваш пакет. Получил ту же ошибку: RuntimeError: Terminal: Call failed. См. скрепку 2.