Dmitri Custurov: Если питоновская программа внутри себя выполняет логирование, многопоточность, соединение с терминалом по сокету, будет ли все это корректно отрабатывать если ее запустить на чарте?
Терминал запускает собственный интерпретатор и перенаправляет стандартный вывод на вкладку экспертов терминала и внутреннее ведение журнала. Процесс интерпретатора завершается, когда вы закрываете диаграмму, поэтому вы не сможете зарегистрировать какие-либо функции обратного вызова «atexit». Кроме того, вы не сможете сразу получить доступ к тексту журнала, поскольку терминал не записывает файл журнала по мере поступления событий журнала. Вы можете попробовать мой пакет-оболочку, который будет регистрироваться немедленно.
import atexit
import logging
import os
from pathlib import Path
import pymt5adapter as mta
def main(conn):
try:
symbol, timeframe = mta.parse_args()
conn.logger.info(f'Script dropped on {symbol} {mta.TIMEFRAME(timeframe).name}')
return True
except TypeError:
conn.logger.warning(f'Missing... Drop on chart or start script with commandline args...')
return False
if __name__ == '__main__':
desktop_log_path = Path.home() / 'Desktop/python_mt5.log'
atexit.register(lambda: os.startfile(desktop_log_path))
logger = mta.get_logger(path_to_logfile=desktop_log_path, loglevel=logging.DEBUG)
with mta.connected(raise_on_errors=True, logger=logger) as conn:
main(conn)
Dmitri Custurov : And another interesting question is if I run a python program with all its environment in a docker container, and the terminal is outside, so will it work?
Я предполагаю, что вы используете контейнеры linux для докера, поэтому он не будет работать с пакетом MetaTrader5. Вы можете использовать python virtualenv. Это не сработает, если вы поместите скрипт на график, но он будет работать, если вы активируете среду и запустите его из командной строки.
Dmitri Custurov: Как быть с расширенной авторизацией когда требуется не только логин/пароль, но и пароль от ssl сертификата?
Пароль сертификата устанавливается пользователем во время его генерации. Затем извлекается из сертификата открытый ключ и передаётся брокеру для регистрации. Читайте инструкцию на сайте брокера.
Пароль сертификата устанавливается пользователем во время его генерации. Затем извлекается из сертификата открытый ключ и передаётся брокеру для регистрации. Читайте инструкцию на сайте брокера.
Я на счет вот этого
initialize(
path, // путь к EXE-файлу терминала MetaTrader 5
login=LOGIN, // номер счета
password="PASSWORD", // пароль
server="SERVER", // имя сервера, как оно задано в терминале
timeout=TIMEOUT, // таймаут
portable=False // режим portable
)
Здесь нет поля для пароля от сертификата. Как поведет себя подключение из python если в терминале используется расширенная авторизация?
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Если питоновская программа внутри себя выполняет логирование, многопоточность, соединение с терминалом по сокету, будет ли все это корректно отрабатывать если ее запустить на чарте?
Терминал запускает собственный интерпретатор и перенаправляет стандартный вывод на вкладку экспертов терминала и внутреннее ведение журнала. Процесс интерпретатора завершается, когда вы закрываете диаграмму, поэтому вы не сможете зарегистрировать какие-либо функции обратного вызова «atexit». Кроме того, вы не сможете сразу получить доступ к тексту журнала, поскольку терминал не записывает файл журнала по мере поступления событий журнала. Вы можете попробовать мой пакет-оболочку, который будет регистрироваться немедленно.
Я предполагаю, что вы используете контейнеры linux для докера, поэтому он не будет работать с пакетом MetaTrader5. Вы можете использовать python virtualenv. Это не сработает, если вы поместите скрипт на график, но он будет работать, если вы активируете среду и запустите его из командной строки.
Как быть с расширенной авторизацией когда требуется не только логин/пароль, но и пароль от ssl сертификата?
Пароль сертификата устанавливается пользователем во время его генерации. Затем извлекается из сертификата открытый ключ и передаётся брокеру для регистрации. Читайте инструкцию на сайте брокера.
Пароль сертификата устанавливается пользователем во время его генерации. Затем извлекается из сертификата открытый ключ и передаётся брокеру для регистрации. Читайте инструкцию на сайте брокера.
Я на счет вот этого
Здесь нет поля для пароля от сертификата. Как поведет себя подключение из python если в терминале используется расширенная авторизация?
Я на счет вот этого
Здесь нет поля для пароля от сертификата. Как поведет себя подключение из python если в терминале используется расширенная авторизация?
Так и надо было сразу писать полный вопрос. Я этого не знаю и промолчал-бы.
Я на счет вот этого
Здесь нет поля для пароля от сертификата. Как поведет себя подключение из python если в терминале используется расширенная авторизация?
Так и надо было сразу писать полный вопрос. Я этого не знаю и промолчал-бы.
Прошу меня извинить. Думал из контекста этой ветки будет понятно, мне нужно было выразиться яснее.
Будет использован сертификат, уже активированный и сохраненный в терминале.
Спасибо.