MetaTrader 5 Python User Group - как использовать Python в Метатрейдере - страница 38
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Новая версия MetaTrader 5 for Python 5.0.18 и бета версия MetaTrader 5 build 2319:
Так как все апи изменилось, то старые примеры больше не работают.
Вот новый набор функций:
Пример:
Планируется ли добавление функций для запуска тестирования/оптимизации и получения их результатов?
Программы на питоне будут запускаться в терминале только в виде скриптов и никак не участвуют и не будут участвовать в тестере торговых стратегий.
Это решение для тех, кто занимается глубокими исследованиями в питоне и хочет:
Тестер стратегий только для MQL5 программ.
Позже мы расширим библиотеку и дадим возможность обращаться к встроенным и кастомным индикаторам из терминала.
В общем, ситуация на данный момент такова: ставил на 3 машины windows 7.
Итог:
Поставил на windows server 2012 - завелся с пол оборота. И даже на питоне 3.8.1
В общем, ситуация на данный момент такова: ставил на 3 машины windows 7.
Итог:
Поставил на windows server 2012 - завелся с пол оборота. И даже на питоне 3.8.1
Десятки нет под рукой, но думаю и там заведется.
На 10 стало нормально.
1.Осталась прошлая проблема. При инициализации терминал запускается с произвольным брокером и счетом. Вроде обещали поправить?
2. Ордера исполняются. Дальше не проверял.
3. Не понятно почему модуль "metatrader5 5.0.18 pypi_0 pypi" импортируется только как "MetaTrader5"?
Будем пробовать.
Удачи
Программы на питоне будут запускаться в терминале только в виде скриптов и никак не участвуют и не будут участвовать в тестере торговых стратегий.
Это решение для тех, кто занимается глубокими исследованиями в питоне и хочет:
Тестер стратегий только для MQL5 программ.
Позже мы расширим библиотеку и дадим возможность обращаться к встроенным и кастомным индикаторам из терминала.
Запуск самих питоновских скриптов на оптимизацию не особо интересен.
Интересна возможность автоматизации оптимизации mql5-советников посредством питоновских скриптов. Что-то навроде того, о чём написано в статье "Управление оптимизацией".
Программы на питоне будут запускаться в терминале только в виде скриптов и никак не участвуют и не будут участвовать в тестере торговых стратегий.
Это решение для тех, кто занимается глубокими исследованиями в питоне и хочет:
Тестер стратегий только для MQL5 программ.
Позже мы расширим библиотеку и дадим возможность обращаться к встроенным и кастомным индикаторам из терминала.
Я правильно понимаю, что для передачи из Py в mt5 рассчитанных значений и массивов, таких функций не будет ?
И остаётся использовать - сетевые решения, или пилить модуль по передаче через память?
Как я заметил, теперь изменилась структура объектов
раньше было
Time = [x.time for x in ticks]теперь стало
Не могли бы вы описать, структуры для copy_ticks и copy_rates ?
Какие индексы x[], чему соответствуют.
Или та же последовательность? что и в
Roman:
Как я заметил, теперь изменилась структура объектов
раньше было
теперь стало
Не могли бы вы описать, структуры для copy_ticks и copy_rates ?
Какие индексы x[], чему соответствуют.
Или та же последовательность? что и в
Это теперь numpy массив, а не tuple как был раньше (т.е.эффективный прямой маппинг на память самих данных), его формат можно увидеть просто выведя его:
>>> ticks1 = mt5.copy_ticks_from("EURAUD", datetime(2020,2,13,13), 20, mt5.COPY_TICKS_ALL) >>> ticks1 array([(1581591600, 1.61633, 1.61657, 0., 0, 1581591600170, 134, 0.), (1581591600, 1.61633, 1.61658, 0., 0, 1581591600362, 4, 0.), (1581591600, 1.61633, 1.61659, 0., 0, 1581591600569, 4, 0.), (1581591600, 1.61636, 1.61659, 0., 0, 1581591600759, 130, 0.), (1581591601, 1.61633, 1.61659, 0., 0, 1581591601964, 130, 0.), (1581591602, 1.61634, 1.61658, 0., 0, 1581591602261, 134, 0.), (1581591606, 1.61635, 1.61658, 0., 0, 1581591606276, 130, 0.), (1581591607, 1.61637, 1.61661, 0., 0, 1581591607795, 134, 0.), (1581591607, 1.61643, 1.61664, 0., 0, 1581591607880, 134, 0.), (1581591608, 1.61642, 1.61665, 0., 0, 1581591608184, 134, 0.), (1581591608, 1.61643, 1.61667, 0., 0, 1581591608791, 134, 0.), (1581591608, 1.61642, 1.61667, 0., 0, 1581591608992, 130, 0.), (1581591609, 1.61642, 1.61665, 0., 0, 1581591609192, 4, 0.), (1581591609, 1.61642, 1.61667, 0., 0, 1581591609584, 4, 0.), (1581591611, 1.61642, 1.61666, 0., 0, 1581591611397, 4, 0.), (1581591611, 1.61642, 1.61667, 0., 0, 1581591611694, 4, 0.), (1581591612, 1.61643, 1.61667, 0., 0, 1581591612091, 130, 0.), (1581591612, 1.61643, 1.61665, 0., 0, 1581591612881, 4, 0.), (1581591613, 1.61644, 1.61665, 0., 0, 1581591613300, 130, 0.), (1581591613, 1.61648, 1.6167 , 0., 0, 1581591613498, 134, 0.)], dtype=[('time', '<i8'), ('bid', '<f8'), ('ask', '<f8'), ('last', '<f8'), ('volume', '<u8'), ('time_msc', '<i8'), ('flags', '<u4'), ('volume_real', '<f8')])теперь их можно сразу де получать как отдельные вектора(умножать, вычитать) и рисовать графики:
rates2 = mt5.copy_rates_from_pos("EURGBP", mt5.TIMEFRAME_M1, 0, 1000) import matplotlib.pyplot as plt plt.plot(rates2['time'], rates2['low'], 'g-') plt.plot(rates2['time'], rates2['high'], 'r-') plt.show()Это теперь numpy массив, а не tuple как был раньше (т.е.эффективный прямой маппинг на память самих данных), его формат можно увидеть просто выведя его:
теперь их можно сразу де получать как отдельные вектора(умножать, вычитать) и рисовать графики:
Благодарю Алмаз, теперь понятно.
Остался открытым вопрос:
Я правильно понимаю, что для передачи из Py в mt5 рассчитанных значений и массивов, таких функций не будет ?
И остаётся использовать - сетевые решения, или пилить модуль по передаче через память?