![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Vou apoiar o início do tópico, pedi emprestado mql muitas vezes como 4 e 5, e vou dizer que pessoalmente tenho pouco desejo de aprender a língua que só posso usar aqui no comércio ...
Bem, ou isso é em vão ou porque você não entende o problema. Você vai realmente escrever os algoritmos indicadores novamente? É como chegar de Volgograd a Moscou via Vladivostok. Mais uma coisa, todos os indicadores levam em conta o histórico. Ou seja, se você pegar os dados (barras) durante um mês, calcular o indicador de acordo com seu algoritmo e compará-lo com o Terminal, seus cálculos serão diferentes.
Eu também não entendo a frase:
Com base no que escrevi, acontece que existe uma grande camada de conhecimento de Python :) Você abre um editor e já conhece python - é tão fácil, e abre mql e você não sabe nada.
Ao mesmo tempo, para chamar o mql, queé completamente orientado para plataformas, uma ferramenta "obsoleta" ... python foi criada em 1991 e isto é muito anterior
O que eu vi neste fio, escrito em píton, é muito fácil de implementar em mql
---
Bem, é interessante como uma idéia geral, mas não mais.
Além disso, ele não tira vantagens da Python e não é "estilo Python". É como martelar pregos com uma chave de fenda, o martelo é antiquado.
Eu suspeito que a única louça em sua casa é uma colher - você pode fazer uma sopa ou um bolo e é mais seguro de usar
)))
Se você gosta, use Python, mas não como o iniciador do tópico - não crie seus próprios tipos de dados personalizados - barras e assim por diante, não escreva seus próprios cálculos ... e use as soluções existentes, caso contrário não adianta usar esta linguagem, você também pode escrever seus próprios pacotes de rede neural ;)
Sim) A propósito, não há bíblia em Python para tais funções quase comerciais, ou se você puder escrever a análise estatística completa de uma série em algumas linhas, você não precisa de MA)...
Sim) A propósito, não há nenhuma biblioteca Python para todos os tipos de funções quase comerciais, ou se você puder escrever uma análise estatística completa de uma série em algumas linhas, então o MA não é mais necessário)...
As Melhores 101 bibliotecas Python algorítmicas de comercialização | PythonRepo
Não foi possível voltar ao fórum ontem. Eu vou continuar. Iniciei uma nova conta demo, e nela estão os nomes dos instrumentos sem '_i' no final, então corrigi o código nesta parte.
Vou continuar o movimento gradual e lento, uma espécie de micro-tutorial, para quem possa vir a calhar.
Vamos introduzir uma variável n (pequena) - seja, por assim dizer, o comprimento da janela. Ou seja, em arquivos com preços, N leituras, por exemplo, 1000, en, vamos definir, por exemplo, 10, ou 100, ou 288 (um dia, se o prazo for M5).
A variável d para mim significa a mudança desta janela no tempo, para o passado. Vamos definir d = 0.
Por exemplo, exibiremos 10 leituras de preços de fechamento e SMA da ordem de 101 (atrasado em 50 intervalos entre as leituras):
Resultado do trabalho:
Vamos aprender a interrogar o terminal sobre os negócios atuais no mercado, por assim dizer, para os instrumentos.
Vou apresentar a função
Deixe ele pegar a lista de posições abertas do símbolo e devolver o tuple(o número de negócios a vender, o número de negócios a comprar).
Na função principal adicione este fragmento antes da função terminal_done()
O resultado (n é reduzido a 5 por causa da produção):
Proponho iniciar a abertura real dos negócios. Por exemplo: se o preço for superior ao SMA por alguns: abrir um comércio de venda, se for inferior ao SMA por alguns: abrir um comércio de compra.
Sugiro mais algumas funções: controlar os negócios abertos em termos de SL e TP, fechá-los se estiverem ausentes, e uma função que retorna o resultado atual (lucro ou perda) em pips.
Temos que nos lembrar de lidar de alguma forma com a situação quando a ordem já está na história e não está na posição ativa, e não reenviar a ordem de abertura neste caso.
Esta situação acontece de tempos em tempos e, por exemplo, trabalhar através do Trade.mqh não resolve este problema (pelo menos, não resolvia antes - eu desisti do Trade.mqh há muito tempo).
Às vezes é o contrário - a ordem de fechamento já está na história e a posição ainda é visível.
Temos que nos lembrar de lidar de alguma forma com a situação quando a ordem já está na história e não está na posição ativa, e não reenviar a ordem de abertura neste caso.
Esta situação acontece de tempos em tempos e, por exemplo, trabalhar através do Trade.mqh não resolve este problema (pelo menos, não resolvia antes - eu desisti do Trade.mqh há muito tempo).
Às vezes é vice-versa - a ordem de fechamento já está na história e a posição ainda é visível.
Mostrei como interrogar o terminal em relação às posições em aberto. Nada nos impede de escrever o código de tal forma que, se a posição já existe, não precisaríamos reenviar o pedido, se não - nós o faremos. Especialmente, que após enviar um pedido, o objeto é devolvido, que tem tudo em suas propriedades, podemos ver se ele é normal, ou que tipo de erro está presente, e com base neste ato. Aqui não há nenhum problema.
As Melhores 101 bibliotecas Python algorítmicas de comercialização | PythonRepo
Já está 104) Aqui está escrito 105)
Código completo do arquivo TradeLogic.py até agora (sim, é primitivo, mas tenho certeza de que pode abrir a porta para o comércio usando Metatrader 5 e Python para alguns)
Resultado do trabalho:
Z.I.Y. As peças de código mais primitivas, elementares, mostradas, em minha opinião, já demonstram muito claramente que não é difícil implementar absolutamente nenhuma lógica, quaisquer cálculos, comparações, controle de negócios abertos por vários critérios, fechando-os automaticamente sob algumas condições, mantendo registros tanto na linha de comando como por escrito em arquivos, etc., etc. - qualquer coisa sem qualquer restrição.
Z.U.2 Até agora, a classe Sdelka era usada, e em geral é conveniente passar os objetos desta classe em funções, escrevê-los em arquivos como .json, etc., - mas de alguma forma ficou um pouco cansado, acho que aqueles que querem entender, eu posso ajudar aqui com algo. Se você quiser, você pode parafusar uma interface gráfica.
Recomendo vivamente o comércio com a biblioteca Python + metatrader5.
Eu mostrei como sondar o terminal para posições abertas. Não há nada que o impeça de escrever o código para que, se já houver uma posição, não seja necessário reenviar o pedido, se não - enviá-lo. Especialmente, que após o envio de um pedido, o objeto é devolvido, que tem tudo em suas propriedades, podemos ver se ele abriu normalmente ou se há um erro, e com base neste ato. Aqui não há problemas.
Mais uma vez, a ordem já foi executada e passada para a história. Ela não está mais na posição ativa. A posição já foi aberta, mas ainda não é visível; o pedido não a mostra.
Normalmente, este é um intervalo de tempo muito curto e é difícil alcançá-lo, especialmente porque nem sempre é o caso.
Entretanto, esta situação pode não durar nem mesmo segundos, mas minutos em uma abertura matinal com um intervalo e uma grande quantidade de pedidos.
Para tornar mais claro: TRADE_TRANSACTION_ORDER_DELETE veio mais cedo que TRADE_TRANSACTION_HISTORY_ADD ou TRADE_TRANSACTION_DEAL_ADD
E podemos não ver ordens em atividade ou histórico em algum momento, ou podemos não ver nenhuma ordem ou negociação.