Discussão do artigo "Biblioteca para desenvolvimento fácil e rápido de programas para a MetaTrader (parte V): Classes e coleções de eventos de negociação, envio de eventos para o programa"
Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação.
Menos código, mais rolagem... escrevendo um EA
fxsaber, 2019.03.12 21:46
Essa tarefa pode muito bem ser considerada um teste inicial da capacidade de escrever negociações no MT5. Assim, todos podem experimentar.
Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação
Menos código, mais rolagem... escrevendo um EA
fxsaber, 2019.03.12 21:40
Tente aqui: ForexTimeFXTM-Demo01.
Gostaria de saber como a biblioteca lida com muitas nuances de negociação. Portanto, provavelmente vale a pena tentar passar pelo menos no teste inicial
Ainda não há classes de negociação na biblioteca. No momento, o trabalho com o histórico da conta e o estado do mercado ativo está chegando ao fim - o rastreamento dos eventos da conta de compensação será publicado no próximo artigo, depois o trabalho com a conta no MetaTrader 4 e, em seguida, após a preparação das classes para a saída de mensagens, o trabalho com as classes de negociação será descrito.
Ainda não há classes de negociação na biblioteca. No momento, o trabalho com o histórico da conta e o estado do mercado ativo está chegando ao fim - o rastreamento dos eventos da conta de compensação será publicado no próximo artigo, depois o trabalho com a conta no MetaTrader 4 e, em seguida, após a preparação das classes para a saída de mensagens, o trabalho com as classes de negociação será descrito.
Entendi. O MT5 é tão complexo nesse aspecto que acho que precisamos de um artigo inteiro que descreva em detalhes as sutilezas de negociação que surgem no MT5 e como levá-las em consideração.
Roger. O MT5 é tão complexo nesse aspecto que provavelmente precisaria de um artigo inteiro descrevendo em detalhes as sutilezas de negociação que surgem no MT5 e como levá-las em consideração.
Estou ocupado lidando com essas situações. Espero ser capaz de lidar com todas elas corretamente.
Outra coisa interessante é que, com base na biblioteca descrita, serão criadas funções de caso de usuário para facilitar o acesso aos dados coletados e armazenados na biblioteca, para o uso de classes de negociação e, consequentemente, para a criação simples e fácil de programas baseados nela.
Embora já esteja como está, existe a possibilidade de usá-la, mas em um nível mais baixo de acesso, por meio de ponteiros para listas de coleções e, a partir delas, por ponteiros para qualquer um de seus dados. Mas isso não corresponde às "afirmações" feitas logo no início sobre a facilidade de criar seus próprios programas com base na biblioteca. Mas isso é apenas o começo :)
A biblioteca detectará e trabalhará automaticamente com contas de compensação e contas do tipo hedge?
Sim, já foi feito. Isso será publicado no próximo artigo.
Sim, já. O próximo artigo será publicado.
Foi publicado o novo artigo Function library for easy and fast development of MetaTrader programs (part 5): trading event collection class, sending events to the program:
Autor: Artyom Trishkin
Muito poderosa como ferramenta de teste, obrigado por compartilhar!
Olá Artyom, parabéns pelo excelente trabalho! Seguindo a descrição no texto, parece que a função CHistoryCollection::OrderSearch(...) pode estar com uma quebra faltando.
O loop for sempre completa todas as iterações de start-1 a 0, quer encontre a "ordem perdida" ou não.
Talvez seja mais eficiente incluir uma pausa após encontrar a "ordem perdida ":
ulong CHistoryCollection::OrderSearch(const int start,ENUM_ORDER_TYPE &order_type) { ulong order_ticket=0; for(int i=start-1;i>=0;i--) { ulong ticket=::HistoryOrderGetTicket(i); if(ticket==0) continue; ENUM_ORDER_TYPE type=(ENUM_ORDER_TYPE)::HistoryOrderGetInteger(ticket,ORDER_TYPE); if(this.IsPresentOrderInList(ticket,type)) continue; order_ticket=ticket; order_type=type; break; } return order_ticket; }
O que você acha?
- www.mql5.com
Olá Artyom, parabéns pelo excelente trabalho! Seguindo a descrição no texto, parece que a função CHistoryCollection::OrderSearch(...) pode estar com uma quebra faltando.
O loop for sempre completa todas as iterações de start-1 a 0 , quer encontre a "ordem perdida" ou não.
Talvez seja mais eficiente incluir uma pausa após encontrar a "ordem perdida":
...
O que você acha?
Pode haver mais de uma ordem perdida
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Novo artigo Biblioteca para desenvolvimento fácil e rápido de programas para a MetaTrader (parte V): Classes e coleções de eventos de negociação, envio de eventos para o programa foi publicado:
Nos artigos anteriores, nós começamos a criar uma grande biblioteca multi-plataforma, simplificando o desenvolvimento de programas para as plataformas MetaTrader 5 e MetaTrader 4. Na quarta parte, nós testamos o monitoramento de eventos de negociação na conta. Neste artigo, nós vamos desenvolver classes de eventos de negociação e colocá-los nas coleções de eventos. A partir daí, eles serão enviados ao objeto base da biblioteca Engine e ao gráfico do programa de controle.
Agora nós podemos compilar o EA e lançá-lo no testador. Ao clicar nos botões, são exibidas no diário do testador duas linhas de mensagens curtas sobre os eventos da conta que ocorrem.
As entradas do manipulador de eventos do EA não são exibidas no diário, pois elas funcionam fora do testador. Se clicar nos botões do EA em uma conta demo, três linhas serão exibidas no diário do terminal: duas linhas do método para exibir as mensagens curtas da classe CEvent e outra — do manipulador OnChartEvent() do EA.
Abaixo está uma amostra exibindo uma mensagem no diário quando uma ordem pendente é colocada e removida:
Autor: Artyom Trishkin