MetaTrader 5 Python User Group - как использовать Python в Метатрейдере - страница 58
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Спасибо, этот пример я видел, это работает.
Я чуть о другом.
positions_get - мне вернет list of TradePosition. В принцпе норм, можно закинуть в pandas и отлично работать.
Но одной pandas все не ограничивается, и если надо получить что-то типа:
Посмотрите пример для positions_get, там несколько строк используется
Пример:
import MetaTrader5 as mt5
import pandas as pd
pd.set_option('display.max_columns', 500) # сколько столбцов показываем
pd.set_option('display.width', 1500) # макс. ширина таблицы для показа
# выведем данные о пакете MetaTrader5
print("MetaTrader5 package author: ",mt5.__author__)
print("MetaTrader5 package version: ",mt5.__version__)
print()
# установим подключение к терминалу MetaTrader 5
if not mt5.initialize():
print("initialize() failed, error code =",mt5.last_error())
quit()
# получим открытые позиции на USDCHF
positions=mt5.positions_get(symbol="USDCHF")
if positions==None:
print("No positions on USDCHF, error code={}".format(mt5.last_error()))
elif len(positions)>0:
print("Total positions on USDCHF =",len(positions))
# выведем все открытые позиции
for position in positions:
print(position)
# получим список позиций на символах, чьи имена содержат "*USD*"
usd_positions=mt5.positions_get(group="*USD*")
if usd_positions==None:
print("No positions with group=\"*USD*\", error code={}".format(mt5.last_error()))
elif len(usd_positions)>0:
print("positions_get(group=\"*USD*\")={}".format(len(usd_positions)))
# выведем эти позиции в виде таблицы с помощью pandas.DataFrame
df=pd.DataFrame(list(usd_positions),columns=usd_positions[0]._asdict().keys())
df['time'] = pd.to_datetime(df['time'], unit='s')
df.drop(['time_update', 'time_msc', 'time_update_msc', 'external_id'], axis=1, inplace=True)
print(df)
# завершим подключение к терминалу MetaTrader 5
mt5.shutdown()
Результат:
MetaTrader5 package author: MetaQuotes Software Corp.
MetaTrader5 package version: 5.0.29
positions_get(group="*USD*")=5
ticket time type magic identifier reason volume price_open sl tp price_current swap profit symbol comment
0 548297723 2020-03-18 15:00:55 1 0 548297723 3 0.01 1.09301 1.11490 1.06236 1.10101 -0.10 -8.00 EURUSD
1 548655158 2020-03-18 20:31:26 0 0 548655158 3 0.01 1.08676 1.06107 1.12446 1.10098 -0.08 14.22 EURUSD
2 548663803 2020-03-18 20:40:04 0 0 548663803 3 0.01 1.08640 1.06351 1.11833 1.10098 -0.08 14.58 EURUSD
3 548847168 2020-03-19 01:10:05 0 0 548847168 3 0.01 1.09545 1.05524 1.15122 1.10098 -0.06 5.53 EURUSD
4 548847194 2020-03-19 01:10:07 0 0 548847194 3 0.02 1.09536 1.04478 1.16587 1.10098 -0.08 11.24 EURUSD
В справку добавлены описания 3-х новых функций:
Кроме того, были внесены изменения в описания многих функций, так как они были доработаны. Практически все примеры были переписаны с учетом нового функционала. Правда, примеры для следующих функций на сайте пока не обновились, будут немного позже:
Господа, в соседней ветке ребята вопросы задают по либе:
URL: https://www.mql5.com/en/forum/306742/page11#comment_15595095
Окажете поддержку?
Ответил в той ветке
Посмотрите пример для positions_get, там несколько строк используется
Спасибо!
Ответил в той ветке
Рашид, скажите, а есть ли возможность использовать тестер c либы MetaTrader5?
При моделировании в тестре, есть один очень эффективный элемент - распаралеливание тасков моделирования в Local network farm или
MQL5 Cloud, хотелось бы использовать ресурс тестера с MetaTrader5.
Это то Вам зачем? Вы что не можете посчитать это в Питоне? Удивляете.
В справке указано как установить и обновить бибилиотеку - https://www.mql5.com/ru/docs/integration/python_metatrader5
Установка пакета в командной строке:
pip install MetaTrader5
Обновление пакета в командной строке:
pip install --upgrade MetaTrader5
В справке указано как установить и обновить бибилиотеку - https://www.mql5.com/ru/docs/integration/python_metatrader5
Если честно, не совсем все понятно. Т.к. без VS не работает, а что конкретно нужно от VS - не понятно (т.к. не хотелось бы ставить всю студию ибо не нужна);
Если уточните - будет замечательно.
Если честно, не совсем все понятно. Т.к. без VS не работает, а что конкретно нужно от VS - не понятно (т.к. не хотелось бы ставить всю студию ибо не нужна);
Если уточните - будет замечательно.
А зачем вам VS? Python не требует наличия VS.
Гуглите что-то типа window python, и будет вам щастье.
Господа разработчки, тут хорошее замечание поступило в соседней ветке.
Это кассается обработки **kwargs, в случае написания тестов - это очень важный момент.
https://www.mql5.com/en/forum/306742/page12#comment_15660939