Fazendo um sistema comercial Python para MT.

 
A idéia de escrever um sistema comercial em Python surgiu e, como o fez, por que não torná-lo disponível ao público? Talvez alguém além de mim também se interessasse por ela.
Mas por que Python?
- É uma questão complicada com muitos aspectos. Vou tentar responder.
Historicamente, eu tenho quatro terminais instalados em meu computador. Alguns deles com API completo, outros com seus próprios idiomas não-padrão, outros com ambos.
O primeiro, em 2008, foi o terminal com API - foi utilizado para criar os primeiros sistemas, que eventualmente chegaram aos idiomas C++/C#. Quando outros terminais foram adicionados (com ou sem idiomas), o sistema não foi redesenhado, apenas uma nova interface entre o terminal e o sistema foi desenvolvida. Assim, o sistema é unificado, e para trabalhar com outro terminal, basta conectar a interface necessária. No caso mais simples, não leva mais do que um dia. E não há desejo de redesenhar o sistema para um determinado terminal.
O terminal é apenas um fornecedor de dados e um executor de pedidos. Isso é tudo - nada mais é necessário.
Esta é a ideologia do sistema.
Mas este é apenas um aspecto. Os outros estão nos próximos postos. Eu não prometo escrever com freqüência.
 
Em Python, quem quer? Tenho planos de portar algumas coisas para Java em cerca de 3 meses. Estou pensando sobre isso. E eu ainda não vi nenhum API de corretor em python. Embora... talvez haja alguns, é claro.
 
Sim, mas por que Python?
Na verdade, a Python me interessou porque tem muitas bibliotecas (módulos), incluindo as de Machine Learning (aprendizagem de máquinas ou MO), que é o que tenho feito durante o último ano. Entretanto, ainda não trabalhei com Python - ainda não escrevi uma linha). Bem, eu tentei algo abstrato, mas sem objetivos específicos.
Entretanto, para aplicar o Python especificamente aos sistemas comerciais é necessário, para começar, depurar sua interação tanto com o TS quanto com o terminal.
Considero erradochamar as funções Python da MQL via DLL - para chamar a função Python desta forma, preciso executar um intérprete e usá-lo para chamar a função - e este é um processo muito longo para cada chamada.
Eu tenho um conceito diferente: TC é uma aplicação EXE completa que armazena todos os dados anteriores e o histórico necessário. Portanto, só chamamos função a partir de uma aplicação já em execução - o tempo de chamada é mínimo.
Algumas pessoas dizem - escrevem - que Python é muito lento. Isto não é verdade. Para a maioria dos sistemas (mesmo intraday) o desempenho do Python é mais do que suficiente, e veremos isso mais tarde. Quanto ao HFT, não podemos competir com eles em qualquer velocidade - é outro dinheiro). E outras propagandas).
 
Viktar Dzemikhau:
Em Python, eu não sei quem quer. Tenho planos de portar algumas coisas para Java em cerca de 3 meses. Estou pensando sobre isso. E em python eu não vi nem mesmo API de nenhum corretor. Embora... talvez haja alguns, é claro.

Espere, vamos fazer o API também. Nesta linha. Não tudo de uma só vez). Se houver interesse, do lado do fórum.

IMHO, Java não é uma opção. Eu posso estar errado.

 
Konstantin Nikitin:
Como alternativa, você pode escrever C++ usando QT. Uma das vantagens é que você pode escrever imediatamente para a compilação em plataforma cruzada.

Eu concordo. Mas a intenção nesta linha é Python e utilizar suas bibliotecas (módulos). E acabaremos com uma API (cross-platform) cruzada (crossterminal). Para qualquer linguagem de programação.

Mas, em geral, para a maior parte do TC Python é mais do que suficiente. E a interface para escrever entre o TC e qualquer terminal é, bem, 1 dia no máximo.

Mas, não de uma só vez, dependendo do tempo livre. Eu não prometo nada regularmente.

 
O intérprete Python é executado uma vez, então você pode usá-lo em um EA ou indicador. Tudo já está feito e disponível no fórum. Há um fio sobre a aprendizagem de máquinas. Use https://github.com/RandomKori/Py36MT5
 
Grigoriy Chaunin:
O intérprete Python é executado uma vez e depois você pode usá-lo em seu Expert Advisor ou indicador. Tudo já foi feito e está disponível no fórum. Há um fio sobre a aprendizagem de máquinas. Use https://github.com/RandomKori/Py36MT5

Sim, obrigado. Mas a idéia é diferente. Você precisa de uma aplicação completa, um EXE, para implementá-la. Mas algo pode vir a ser útil. É uma pena que o código fonte da DLL esteja ausente, mas não é crucial.

 
As fontes estão todas dispostas ali.
 
Grigoriy Chaunin:
Todas as fontes estão dispostas ali.

Sim, de fato, todo o projeto DLL está em VS. Não digerido.

E eu de alguma forma perdi esse elo no fio condutor do MoD.

Mas, os heróis normais sempre fazem as rondas (c). E nós seguiremos nosso próprio caminho). Esta linha tem outras tarefas.

 

Vamos começar criando uma aplicação Python que irá trocar dados com o terminal - receber dados do terminal e enviá-los para a janela de saída, assim como enviar dados para o terminal a partir da janela SendData. Vamos precisar dele para testar a interação do TC com o terminal.

Até o momento, a aplicação não desempenha nenhuma função.

Aqui está a janela.

Código Python em anexo.

Arquivos anexados:
PyTS.txt  2 kb
 
Yuriy Asaulenko:

Vamos começar criando uma aplicação Python que irá trocar dados com o terminal - receber dados do terminal e enviá-los para a janela de saída, assim como enviar dados para o terminal a partir da janela SendData. Será necessário para testar a interação do TC com o terminal.

Até o momento, a aplicação não desempenha nenhuma função.

Aqui está a janela.

Código Python em anexo.

Onde estão os comentários em código? Você acha que todos aqui entendem Python e suas idéias, os comentários serão redundantes?

O que se passa com todos os crapshooting"""? Окно вÐомааав """" ?

Que biblioteca importa tkinter, onde a descrição de suas funções (métodos)?