Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Tudo está pronto agora, e é hora de ligar nosso Python TS ao terminal MT. No entanto, há algumas ações a serem tomadas para que isso seja feito.
Nosso futuro TC lê e escreverá arquivos na pasta C:\PyTS, mas o terminal MT, a algum capricho desconhecido do MQ, pode ler-escrever arquivos somente em seu próprio diretório - C:\PyTS - com tantas letras e números, e de nenhuma outra forma. É claro, você pode mudar as configurações em código Python e deixá-lo trocar para a pasta MQ nativa, mas eu preciso do terminal para ler-escrever arquivos de lá e para onde eu quiser, não para onde ele, o terminal, quiser. Mais ainda, será necessário no futuro.
Na verdade, esta questão foi resolvida há alguns anos, em meu tópico - https://www.mql5.com/ru/forum/79922.
Tudo é resolvido com ferramentas Windows. Na pasta terminal C:{\i1}um monte de letras e números>Arquivos que você coloca referência à pasta C:{\i}PyTS, que é interpretada pelo terminal (e pelo sistema operacional também) como subpasta Arquivos e o terminal escreve lá, em C:{\i}PyTS, como em sua pasta nativa).
Isto é feito na linha de comando, usando o utilitário nativo do Windows MKLINK. Para aqueles que não podem fazer isso sozinhos, aqui está uma descrição detalhada:
Digite em executar - cmd, ou no menu - Utilities-Windows -> Command Prompt. Você obtém uma janela onde você digita MKLINK ou mklink. Aqui nós temos:
Agora digite cd... várias vezes até chegar ao C:\.
Depois abra o Windows Explorer, e vá para C:<um monte de letras e números>\postos, onde o terminal coloca os arquivos, e selecione e copie o caminho para a pasta Ctrl-Ins.
Volte para a janela de comando e lá escreva cd <space>, use Shift-Ins para colar no caminho para ... \\i1}Arquivos e Enter. Nós o entendemos:
Agora na linha de comando escrevemos - mklink /D PyTS c:\PyTS , e como de costume - Enter. Aqui o temos:
Vemos que foi criado um elo. Vemos que apareceu na pasta ......\Files e a acessamos - vemos os arquivos na pasta C:\PyTS. )) É isso aí.
Agora, todos os arquivos escritos por terminal para pasta ...Files\PyTS serão, de fato, escritos para pasta C:\PyTS.
.
O código MQL também está no anexo. - A MQL lê a história, e a passa para a aplicação Python. Python o aceita e o imprime. Em Python, não se esqueça de pressionar o botão Start. )
Espero que não haja necessidade de escrever comentários sobre o código MQL - há uma referência). Sim, a transferência de dados da MT é feita no timer, é mais conveniente para mim, nesta fase.
Vou fazer uma pausa por enquanto - agora precisamos resolver as questões com a estratégia. Se você tiver alguma sugestão - vamos considerar).
Mais uma vez, o compartilhamento de arquivos é ideal para o desenvolvimento e depuração de estratégias, pois não requer nenhum esforço de modificação. Para a maioria das estratégias do mundo real, ele ainda é adequado. Mas, se necessário, podemos sempre substituí-lo por algo mais, sem nenhuma mudança significativa no programa - uma questão de 1-2 dias.
Não prometo escrever com freqüência, apenas quando eu o receber. O projeto está sendo feito em segundo plano, com pouco ou nenhum tempo de sobra.
Pensei que seria bom para o sistema exibir gráficos
Em geral, Python é uma linguagem simples - um par de dias para estudá-la é suficiente. Mas lidar com módulos é muito mais difícil - há milhares deles, e quem faz o que e por que nem sempre é óbvio. Com gráficos, foi o que aconteceu - tive que resolver isso por muito tempo. Mas o resultado é o seguinte:
O programa lê um arquivo CSV e desenha um gráfico.
O gráfico mostra os preços por Fechar, cerca de 50 mil candelabros.
Se você clicar na lupa e selecionar um retângulo na área da tabela como este:
você pode ampliar o gráfico, e você o obterá:
Isto pode ser feito repetidamente. O gráfico também pode ser movido e salvo como uma imagem e, é claro, expandido para tela cheia.
Todos os arquivos que você precisa estão na aplicação. Descompacte o zip para alguma pasta e execute o CSVGraph.py
Antes de executá-lo, não se esqueça de verificar se os módulos que você deseja importar estão instalados.
Deixemos as bobagens para os vizinhos e para os ouvintes amadores, mas vamos resumir os resultados preliminares nós mesmos.
Se você já está familiarizado com o assunto Se você é um profissional, já conhece alguns Python, sabe como trabalhar com arquivos CSV, sabe como construir gráficos e trocar dados com o terminal. Isto já é suficiente para desenvolver, simular e testar estratégias comerciais. Se sua estratégia trabalha com TF 1 min e mais sem utilizar carrapatos e acessa o terminal com intervalos de 5-10 seg., você já pode criar estratégias de trabalho diretamente em Phyton, deixando apenas a entrega dos dados e a "execução" de seus pedidos para o terminal.
Além disso, você já conhece a programação e o ambiente Phyton, em um nível além da linguagem e do ambiente R, tão popular entre os apologistas locais da aprendizagem de máquinas. Você já será capaz de construir até mesmo estratégias de indicadores muito complexos em Python, mas todas as características do Python (similar a R) podem ser implementadas usando módulos. Neste tópico, usamos apenas 3 módulos - tkinter, tkinter, numpy e matplotlib.
Agora, o que Python precisa para construir estratégias mais avançadas, digamos, usando a aprendizagem de máquinas. O módulo -scikit-learn pode ser usado para isto. Com o uso doscikit-learn, as seguintes características tornam-se disponíveis - Guia do Usuário. O que você acha do conjunto de métodos? - Ele já tem praticamente tudo, incluindo, não desconhecido do R e do tópico Aprendizado de Máquinas, desde a classificação Bayesiana até as florestas aleatórias e redes neurais.
Este é apenas um dos módulos de aprendizagem de máquinas em Python, e há cerca de uma dúzia deles. Diz-se que o móduloscikit-learn não é o melhor deles, nem o mais avançado. Isso depende de quem precisa do quê. Os outros não são difíceis de encontrar na Internet.
PS Para aqueles que estão começando ou apenas começando com Python.
Tentei vários ambientes de desenvolvimento Python e parei no mais conveniente para iniciantes (entre os quais me incluo) - Anaconda. O que torna conveniente é que tudo o que eu preciso já está instalado, inclusive o Python. Editor Utilizo Spyder - instalado comAnaconda. Aconselho também a instalação do editor VSCode - também muito bom e instalado diretamente doAnaconda.
Talvez você não fique satisfeito com a minha escolha.
Os indicadores necessários estão todos prontos. Veja figura feita em Python (Em Python é muito conveniente e rápido desenhar todos os tipos de gráficos). Esta é a resposta a um único salto - 1(t), ou a função de transição. Na verdade, um dos testes padrão.
A fm é a média móvel convencional (servindo apenas para calibração), f1 é a EMA, com um cálculo de coeficiente modificado, e f2 é um indicador não-padrão.
No entanto, como costumava dizer nosso conhecido mútuo:
Já o disse um milhão de vezes e provavelmente o direi novamente... Ninguém inventou nada melhor do que indicadores da oferta MT (padrão... por assim dizer antigos indicadores eslavos... pagãos!!!).
Assim, para não enganar sua cabeça com a ciência, você obterá o EMA padrão e as fontes estratégicas. No entanto, farei e testarei a estratégia em meus indicadores. Talvez eu esconda outra coisa dos olhos curiosos, mas sem perda de funcionalidade.
Mas não é para a travessia da EMA que se trata de tudo isso. O objetivo de tudo isso são as estratégias de aprendizagem da máquina. Até agora, estou testando diferentes métodos de classificação. E aqui estão os resultados dos testes:
Gaussiano, RBF SVM, Redes Neurais e classificação Bayesiana ingênua estão no topo até agora. O programa Python já está pronto, disponível em algum lugar na Internet, mas a preparação dos dados fica a cargo do usuário.
Vamos lá.
Os indicadores necessários estão todos prontos. Veja figura feita em Python (Em Python é muito conveniente e rápido desenhar todos os tipos de gráficos). Esta é a resposta a um único salto - 1(t), ou função transitória. Na verdade, um dos testes padrão.
A fm é a média móvel convencional (servindo apenas para calibração), f1 é a EMA, com um cálculo de coeficiente modificado, e f2 é um indicador não-padrão.
No entanto, como costumava dizer nosso conhecido mútuo:
Assim, para evitar enganar sua cabeça com a ciência, você terá o EMA padrão e as fontes da estratégia. No entanto, farei e testarei a estratégia em meus indicadores. Talvez eu esconda outra coisa dos olhos curiosos, mas sem perda de funcionalidade.
Mas não é para a travessia da EMA que se trata de tudo isso. O objetivo de tudo isso são as estratégias de aprendizagem da máquina. Até agora, estou testando diferentes métodos de classificação. E aqui estão os resultados dos testes:
Gaussiano, RBF SVM, Redes Neurais e classificação Bayesiana ingênua estão no topo até agora. O programa Python já está pronto, disponível em algum lugar na Internet, mas a preparação dos dados fica a cargo do usuário.
Vamos lá.
É uma pena que eles tenham mudado para redes neurais. Mas, em sua maioria, muito útil, acho que será útil.
Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos
Robôs de aprendizagem de máquinas
Yuriy Asaulenko, 2018.09.21 00:45
Eles não o farão. O máximo que eles farão é o mesmo que antes.
É uma pena que eles tenham mudado para redes neurais. Mas, em sua maioria, muito útil, acho que será útil.
Não há planos de mudar para NS e outros métodos MoD nesta linha. Por enquanto, pelo menos). Veremos.
O que está sendo feito aqui é um modelo do sistema Python. O preenchimento específico deste modelo é uma questão de usuário específico.
Bem, para mostrar as capacidades das bibliotecas Python, eu acho que não é supérfluo.
Quando o programa é iniciado, a estratégia é testada, o relatório de todas as negociações é salvo em arquivo CSV, o gráfico de lucro é exibido no console, que pode ser salvo no disco - veja Fig.