Dmitri Custurov: Si el programa python hace internamente logging, multithreading, conexión de socket a la terminal, ¿funcionará todo correctamente si lo ejecutas en un gráfico?
La terminal ejecuta su propio intérprete y redirige la salida estándar a la pestaña de experto de la terminal y al registro interno. El proceso del intérprete termina cuando se cierra el diagrama, por lo que no podrá registrar ninguna función de devolución de llamada "atexit". Además, no podrá acceder al texto del registro inmediatamente, ya que el terminal no registra el archivo de registro a medida que llegan los eventos de registro. Puede probar mi paquete de shell que se registrará inmediatamente.
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 : Y otra pregunta interesante es si ejecuto un programa python con todo su entorno en un contenedor docker, y la terminal está fuera, ¿entonces funcionará?
Supongo que estás usando contenedores linux para el docker, por lo que no funcionará con el paquete MetaTrader5. Puedes usar python virtualenv. No funcionará si pones el script en el gráfico, pero sí si activas el entorno y lo ejecutas desde la línea de comandos.
Dmitri Custurov: ¿Qué pasa con la autorización ampliada cuando no sólo se requiere el nombre de usuario/contraseña sino también la contraseña del certificado ssl?
La contraseña del certificado la establece el usuario en el momento de la generación. A continuación, se extrae la clave pública del certificado y se entrega al intermediario para su registro. Lea las instrucciones en el sitio web del corredor.
La contraseña del certificado la establece el usuario en el momento de la generación. A continuación, se extrae la clave pública del certificado y se entrega al intermediario para su registro. Lea las instrucciones en el sitio web del corredor.
initialize(
path, // путь к EXE-файлу терминала MetaTrader 5
login=LOGIN, // номер счета
password="PASSWORD", // пароль
server="SERVER", // имя сервера, как оно задано в терминале
timeout=TIMEOUT, // таймаут
portable=False // режим portable
)
No hay ningún campo de contraseña para el certificado. ¿Cómo se comportará la conexión desde python si se utiliza la autorización ampliada en el terminal?
No hay ningún campo de contraseña para el certificado. ¿Cómo se comportará la conexión desde python si se utiliza la autenticación avanzada en la terminal?
Deberías haber escrito la pregunta completa de inmediato. No lo sé y habría guardado silencio.
Si el programa python hace internamente logging, multithreading, conexión de socket a la terminal, ¿funcionará todo correctamente si lo ejecutas en un gráfico?
La terminal ejecuta su propio intérprete y redirige la salida estándar a la pestaña de experto de la terminal y al registro interno. El proceso del intérprete termina cuando se cierra el diagrama, por lo que no podrá registrar ninguna función de devolución de llamada "atexit". Además, no podrá acceder al texto del registro inmediatamente, ya que el terminal no registra el archivo de registro a medida que llegan los eventos de registro. Puede probar mi paquete de shell que se registrará inmediatamente.
Supongo que estás usando contenedores linux para el docker, por lo que no funcionará con el paquete MetaTrader5. Puedes usar python virtualenv. No funcionará si pones el script en el gráfico, pero sí si activas el entorno y lo ejecutas desde la línea de comandos.
¿Qué pasa con la autorización ampliada cuando no sólo se requiere el nombre de usuario/contraseña sino también la contraseña del certificado ssl?
La contraseña del certificado la establece el usuario en el momento de la generación. A continuación, se extrae la clave pública del certificado y se entrega al intermediario para su registro. Lea las instrucciones en el sitio web del corredor.
La contraseña del certificado la establece el usuario en el momento de la generación. A continuación, se extrae la clave pública del certificado y se entrega al intermediario para su registro. Lea las instrucciones en el sitio web del corredor.
Estoy en el tema de este.
No hay ningún campo de contraseña para el certificado. ¿Cómo se comportará la conexión desde python si se utiliza la autorización ampliada en el terminal?
Me refiero a este.
No hay ningún campo de contraseña para el certificado. ¿Cómo se comportará la conexión desde python si se utiliza la autenticación avanzada en la terminal?
Deberías haber escrito la pregunta completa de inmediato. No lo sé y habría guardado silencio.
Me refiero a este.
No hay campo de contraseña para el certificado. ¿Cómo se comportará la conexión desde python si la terminal utiliza la autenticación extendida?
Deberías haber escrito la pregunta completa de inmediato. No lo sé y me habría callado.
Me disculpo por ello. Pensé que quedaría claro por el contexto de este hilo, debería haber sido más claro.
Se utilizará un certificado ya activado y guardado en el terminal.
Gracias.