MetaTrader 5 Python User Group - como usar o Python no Metatrader - página 73

 
E outra questão interessante é se eu executar um programa python com todo o seu ambiente num contentor portuário e o terminal estiver no exterior, será que isso vai funcionar?
 
Dmitri Custurov:
Se o programa python faz internamente o registo, multithreading, ligação de socket ao terminal, tudo funcionará correctamente se o executar num gráfico?

O terminal executa o seu próprio intérprete e redirecciona a saída padrão para o separador de peritos do terminal e o registo interno. O processo de intérprete termina quando se fecha o diagrama, pelo que não será possível registar quaisquer funções de chamada de retorno "atexit". Além disso, não poderá aceder imediatamente ao texto de registo, uma vez que o terminal não regista o ficheiro de registo à medida que os eventos de registo chegam. Pode experimentar o meu pacote de conchas que se registará imediatamente.

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 : E outra questão interessante é se eu executar um programa python com todo o seu ambiente num contentor portuário, e o terminal estiver no exterior, então será que vai funcionar?

Presumo que esteja a utilizar contentores de linux para o estivador, pelo que não funcionará com o pacote MetaTrader5. Pode utilizar o python virtualenv. Não funcionará se colocar o guião no gráfico, mas funcionará se activar o ambiente e o executar a partir da linha de comando.

 
E a autorização alargada quando é necessária não só o nome de utilizador/senha, mas também a senha do certificado ssl?
 
Dmitri Custurov:
E a autorização alargada quando é necessária não só o nome de utilizador/senha, mas também a senha do certificado ssl?

A senha do certificado é definida pelo utilizador no momento da geração. A chave pública é então extraída do certificado e entregue ao corretor para registo. Leia as instruções no sítio web do corretor.

 
Alexey Viktorov:

A senha do certificado é definida pelo utilizador no momento da geração. A chave pública é então extraída do certificado e entregue ao corretor para registo. Leia as instruções no sítio web do corretor.

Estou a tratar deste assunto.

initialize(
   path,                     // путь к EXE-файлу терминала MetaTrader 5
   login=LOGIN,              // номер счета
   password="PASSWORD",      // пароль
   server="SERVER",          // имя сервера, как оно задано в терминале
   timeout=TIMEOUT,          // таймаут
   portable=False            // режим portable
   )

Não há campo de senha para o certificado. Como se comportará a ligação de python se for utilizada uma autorização alargada no terminal?

 
Dmitri Custurov:

Estou a falar deste aqui.

Não há campo de senha para o certificado. Como se comportará a ligação de python se a autenticação avançada for utilizada no terminal?

Deveria ter escrito a pergunta completa imediatamente. Não sei isso e teria ficado em silêncio.

 
Dmitri Custurov:

Estou a falar deste aqui.

Não há campo de senha para o certificado. Como se comportará a ligação de python se o terminal utilizar autenticação alargada?

Isto irá utilizar um certificado já activado e guardado no terminal.

Mas pode colocar um ficheiro pfx em /config/certifica-se
 
Alexey Viktorov:

Deveria ter escrito imediatamente a pergunta completa. Não sei isso e teria ficado calado.

Peço desculpa por isso. Pensei que seria claro a partir do contexto deste fio, eu deveria ter sido mais claro.

 
Renat Fatkhullin:
Será utilizado um certificado já activado e guardado no terminal.

Mas pode colocar o ficheiro pfx em /config/certifica-se

Obrigado.

Razão: