MetaTrader 5 Python User Group - как использовать Python в Метатрейдере - страница 88

 

   File
   "C: \ Users \ MyName \ .spyder-py3 \ MyCode.py"
   , line 3
   ,
   in
   <module>
   import MetaTrader5
   as
   mt5
   File
   "C: \ Users \ Myname \ anaconda3 \ lib \ site-packages \ MetaTrader5 \ __ init__.py"
   , line
   257
   ,
   in
   <module>
   from
   ._core import *
ModuleNotFoundError:
   No module named
      'MetaTrader5._core'

does anyone know how to fix? wake up this morning and this.

did nothing new.

Nvm. I downgrade python to version 3.8.11 and its ok now.
 

Хотелось бы что бы разработчики как то объявляли о новых версиях пакета MetaTrader5(Py) с указанием о новых изменениях и требованиям по версиям основных сопутствующих пакетов(например numpy, pandas и других если нужно). Очень напрягают непонятные ошибки при обновлении, например до 37 версии. Откатился до 35 и пока пользую ее.

Может где то опубликовано это описание на форуме?

 

Возможно, дилетантский вопрос. Я не программист.
В МТ5 есть некоторые несоответствия в тиковых данных. А именно, висящие в воздухе и находящиеся
не на своём месте сделки. Один человек, здесь на форуме, в одной из статей описывал решение этой проблемы. 
Но там решалась конкретная задача.
То есть тиковые данные с сервера попадают в терминал в нормальном виде, но обработка в МТ искажает их.
Можно ли с помощью питона сделать что-то вроде ретранслятора уже исправленных данных? Последние нужны в индикаторе.

Или по другому. Можно ли с помощью питона написать код индикатора, который использует тиковые данные? 
Может питон вообще не заточен решать такие задачи...

Vasiliy Sokolov
Vasiliy Sokolov
  • 2019.09.05
  • www.mql5.com
Профиль трейдера
[Удален]  
Здравствуйте,

насколько я знаю метод python order_send() использует MT5 эквивалент OrderSend()

Я создаю async адаптер для библиотеки mt5 и я хотел бы чтобы мой python order_send использовал MT5 - OrderSendAsync() вместо OrderSend ()

Возможно ли это с текущей доступной функциональностью?
 
Умерло направление и ветка. Энтузиасты исчезли, разработчики естественно потеряли интерес к теме. Так бывает к сожалению.
 
Mircea Vlad #:
Здравствуйте,

насколько я знаю метод python order_send() использует MT5 эквивалент OrderSend()

Я создаю async адаптер для библиотеки mt5 и я хотел бы чтобы мой python order_send использовал MT5 - OrderSendAsync() вместо OrderSend ()

Возможно ли это с текущей доступной функциональностью?
А как вы результат асинхронной операции получить хотите?

Бросить ордер и будь что будет?
 
Добрый вечер, как можно получить календарь из mt5 в робот на питоне, примеры кода приветствуются.
 
sergey087 #:

Подскажите кто нибудь! Не был в сети около трех месяцев, зашел и обновил терминал. Сразу после обновления одна и та же ошибка:

Не работает даже код из примера на только что созданном демо аккаунте ... Обновил пакет до версии 5.0.35, обновил numpy до 1.21.2 .... И сам питон до 3.10.0. Получил новую ошибку:

Подскажите комплектацию, в которой это работает и собственно как бы теперь сменить версию питона на новую в той же консоли? pip привязан к старой ... Т.е. старый вроде бы как не нужен, а я вместо обновления получил новый питон в другой папке ... Хотя и не факт, что новый вообще заработает т.к. установить модуль на него пока не вышло т.к. я собираю все модули на 3.10.0 отдельно и получаю ошибку:



Привет!

Не подскажешь как решил проблему?

import MetaTrader5 as mt5
ModuleNotFoundError: No module named 'MetaTrader5'

У меня в pycharm не получается даже подключится к мт5

sergey087 #:

Подскажите кто нибудь! Не был в сети около трех месяцев, зашел и обновил терминал. Сразу после обновления одна и та же ошибка:

Не работает даже код из примера на только что созданном демо аккаунте ... Обновил пакет до версии 5.0.35, обновил numpy до 1.21.2 .... И сам питон до 3.10.0. Получил новую ошибку:

Подскажите комплектацию, в которой это работает и собственно как бы теперь сменить версию питона на новую в той же консоли? pip привязан к старой ... Т.е. старый вроде бы как не нужен, а я вместо обновления получил новый питон в другой папке ... Хотя и не факт, что новый вообще заработает т.к. установить модуль на него пока не вышло т.к. я собираю все модули на 3.10.0 отдельно и получаю ошибку:



 
Скорее всего поставили пакет в одну копию Питона, а в настройках MetaEditor прописан другой Питон.
 

Здравствуйте. У кого-нибудь работают функции копирования тиков?

Не удается получить тики с кодом ниже.

import MetaTrader5 as mt5
import pandas as pd
import time
from datetime import datetime, timedelta
import pytz

....
terminal_path = "D:/Programs/MetaTrader 5 Dev/terminal64.exe"
if not mt5.initialize(path=terminal_path, 
                      login=xxx,
                      password='xxxx',
                      server='xxxxx',
                      timeout=60000,
                      portable=True):
    print(f"Failed to connect to MetaTrader 5 terminal at {terminal_path}")
    return None
# запросим статус и параметры подключения
print(mt5.terminal_info())
# получим информацию о версии MetaTrader 5
print(mt5.version())

# set time zone to UTC
timezone = pytz.timezone("Etc/UTC")
# create 'datetime' object in UTC time zone to avoid the implementation of a local time zone offset
utc_from = datetime.now(timezone) - timedelta(days=1)  # get data from the last 24 hours
symbol='AUDUSD.sd'
count=1000
ticks = mt5.copy_ticks_from(symbol, utc_from, count, mt5.COPY_TICKS_ALL)

if ticks is None:
    print(f"Failed to fetch data for {symbol}")
    return None
print("Ticks received:",len(ticks))

# выведем данные каждого тика на новой строке
print("Output ticks...")
count = 0
for tick in ticks:
    count+=1
    print(tick)


TerminalInfo(community_account=False, community_connection=False, connected=True, dlls_allowed=True, trade_allowed=False, tradeapi_disabled=False, email_enabled=False, ftp_enabled=False, notifications_enabled=False, mqid=True, build=4682, maxbars=10000000, codepage=0, ping_last=125100, community_balance=0.0, retransmission=0.0, company='MetaQuotes Software Corp.', name='MetaTrader 5', language='English', path='D:\\Programs\\MetaTrader 5 Dev', data_path='D:\\Programs\\MetaTrader 5 Dev', commondata_path='C:\\Users\\Windows 10\\AppData\\Roaming\\MetaQuotes\\Terminal\\Common')

(500, 4682, '15 Nov 2024')

Ticks received: 1000

Output ticks...

b''

b''

b''

b''

b''

b''

b''

b''

b''

b''

С copy_ticks_range() то же самое.