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

 
MetaQuotes:

Will be available next beta version tonight:

https://www.mql5.com/en/forum/306742/page16#comment_16148685

MetaTrader 5 Python User Group - the summary
MetaTrader 5 Python User Group - the summary
  • 2020.04.24
  • www.mql5.com
The Main Study MetaTrader module for integration with Python - documentation Python Releases for Windows - website MetaTrader5 : Python Package...
 
Новая версия платформы MetaTrader 5 build 2360: Расширение интеграции с SQLite
Новая версия платформы MetaTrader 5 build 2360: Расширение интеграции с SQLite
  • 2020.05.03
  • www.mql5.com
В пятницу 6 марта 2020 года будет выпущена обновленная версия платформы MetaTrader 5...
 
https://www.mql5.com/ru/docs/integration/python_metatrader5
Пробую запустить стартовый скрипт - все выполняется, печатает массив с данными по торговым парам из примера, запускает окно на котором рисует график
Но попробовал заменить ""EURAUD" на "DAX30" например - скрипт после запуска выдает Failed to select DAX30
Подскажите пожалуйста в чем может быть проблема? Версия терминала 2402

Причем делаю подключение с логином паролем и сервером к демо счету своего брокера через mt5.initialize
Документация по MQL5: Интеграция / MetaTrader для Python
Документация по MQL5: Интеграция / MetaTrader для Python
  • www.mql5.com
Python является современным высокоуровневым языком программирования для разработки сценариев и приложений. Содержит множество библиотек для машинного обучения, автоматизации процессов, анализа и визуализации данных. Пакет MetaTrader для Python предназначен для...
 
Lol Kek:
https://www.mql5.com/ru/docs/integration/python_metatrader5
Пробую запустить стартовый скрипт - все выполняется, печатает массив с данными по торговым парам из примера, запускает окно на котором рисует график
Но попробовал заменить ""EURAUD" на "DAX30" например - скрипт после запуска выдает Failed to select DAX30
Подскажите пожалуйста в чем может быть проблема? Версия терминала 2402

Причем делаю подключение с логином паролем и сервером к демо счету своего брокера через mt5.initialize
Проверьте что возвращается в mt5.last_error() после вызова ф-ции работы с DAX30
 

# попробуем включить показ символа DAX30 в MarketWatch
selected = mt5.symbol_select("DAX30", True)
if not selected:
    print("initialize() failed, error code = ", mt5.last_error())
    mt5.shutdown()
    quit()


вот такую ошибку (-1, 'Terminal: Call failed')
 
Lol Kek:

# попробуем включить показ символа DAX30 в MarketWatch
selected = mt5.symbol_select("DAX30", True)
if not selected:
    print("initialize() failed, error code = ", mt5.last_error())
    mt5.shutdown()
    quit()


вот такую ошибку (-1, 'Terminal: Call failed')

Вы уверены, что символ DAX30 есть на вашем торговом счете?

Покажите скриншот обзора рынка с этим символом на вашем торговом счете, пожалуйста.

 
Renat Fatkhullin:

Вы уверены, что символ DAX30 есть на вашем торговом счете?

Покажите скриншот обзора рынка с этим символом на вашем торговом счете, пожалуйста.

***
вот беру этот код - https://www.mql5.com/ru/docs/integration/python_metatrader5/mt5copyratesrange_py, инициализацию провожу с подключением к демо счету своему. Если запустить с парой USDJPY из примера-все ок, выводит табличку. Если ее заменить на DAX30 - то      


for rate in rates:
TypeError: 'NoneType' object is not iterable

 
Lol Kek:

https://prnt.sc/sbapam
вот беру этот код, инициализацию провожу с подключением к демо счету своему. Если запустить с парой USDJPY из примера-все ок, выводит табличку. Если ее заменить на DAX30 - то     

for rate in rates:
TypeError: 'NoneType' object is not iterable

Lol Kek:

# попробуем включить показ символа DAX30 в MarketWatch
selected = mt5.symbol_select("DAX30", True)
if not selected:
    print("initialize() failed, error code = ", mt5.last_error())
    mt5.shutdown()
    quit()


вот такую ошибку (-1, 'Terminal: Call failed')
Дакс30 у Вас в квадратных скобках. Правильно ошибку Вам выдают.
 
Dmitriy Skub:
Дакс30 у Вас в квадратных скобках. Правильно ошибку Вам выдают.

Ухх, никогда не обращал внимание на это, спасибо
И спасибо разработчикам за возможность перенести логику на сторонний ЯП, в частности на Питон. 
По ходу разбора и реализации логики возможно будут вопросы или предложения, постараюсь оставлять фидбек здесь

 

Hi All,


I hope you don't mind an English man here.  Looking for some guidance after spending lots of time searching the web without success.

I am using the MetaTrader5 Python library after some inspiration from Maxiums articles. I have noticed a problem with memory handling. 

When I make a Dataframe using mt5 lib the resultant dataframe works as expected. I have done this within a function that collects the ticks and then performs various analysis before outputting the manipulated df. 

However, if I rerun the function that creates the DataFrame I have noticed that the memory just keeping accumulating from the previous instance. 

I get the same problem using mt5.copy_ticks_range () and mt5.copy_rates_range (). I have to reset the kernel in order to clear out the memory. 

I get the same problem even after removing all code except the line creating the dataframe. For instance:

def vel (symbol, lookback, lookforward, start_date, end_date, quantile_size): 

    ticks = pd.DataFrame (mt5.copy_ticks_range (symbol, datetime (start_date.year, start_date.month, start_date.day), datetime (end_date.year, end_date.month, end_date.day), mt5.COPY_TICKS_ALL), columns = [ 'time', 'bid', 'ask', 'last', 'volume', 'time_msc', 'flags', 'volume_real'])

If I run this several times the memory usage goes up 27MiB each time:

Line # Mem usage Increment Line Contents ================================================== 126.3 MiB 126.3 MiB def vel (symbol, lookback, lookforward, start_date, end_date, quantile_size): 153.3 MiB 26.9 MiB ticks = pd.DataFrame (mt5.copy_ticks_range (symbol, datetime (start_date.year, start_date.month, start_date.day), ...


   Line # Mem usage Increment Line Contents

==================================================



          140.9 MiB 140.9 MiB def vel (symbol, lookback, lookforward, start_date, end_date, quantile_size): 



          166.5 MiB 25.7 MiB ticks = pd.DataFrame (mt5.copy_ticks_range (symbol, datetime (start_date.year, start_date.month, start_date.day), ...