Discussão do artigo "Expert Advisor Universal: Negociação em Grupo e Gestão de uma Carteira de Estratégias (Parte 4)"
Responda a algumas perguntas:
1. O autor, nos primeiros artigos, escreveu sobre a independência da plataforma... O que deve ser feito para adaptar esse código ao MT4?
2. Ao negociar 10 instrumentos, 2 a 3 sistemas em cada um, cada sistema com 10 parâmetros, o XML-portfolio se tornará um arquivo muito grande, que será difícil de editar manualmente sem erros. Talvez, nesse caso, seja razoável armazenar o XML-portfolio em arquivos diferentes - um arquivo para cada instrumento, que contenha informações sobre os sistemas negociados nele e seus parâmetros... Assim, seria mais fácil ativar/desativar (definindo caixas de seleção no arquivo) tanto a negociação no instrumento quanto o TS individual nesse instrumento.
Muito obrigado a Vasiliy Sokolov por um trabalho tão completo.
Responda a algumas perguntas:
1. O autor, nos primeiros artigos, escreveu sobre a independência da plataforma... O que deve ser feito para adaptar esse código ao MT4?
2. Ao negociar 10 instrumentos, 2 a 3 sistemas em cada um, cada sistema com 10 parâmetros, o XML-portfolio se tornará um arquivo muito grande, que será difícil de editar manualmente sem erros. Talvez, nesse caso, seja razoável armazenar o XML-portfolio em arquivos diferentes - um arquivo para cada instrumento, que contenha informações sobre os sistemas negociados nele e seus parâmetros... Assim, seria mais fácil ativar/desativar (definindo caixas de seleção no arquivo) tanto a negociação no instrumento quanto o TS individual nesse instrumento.
Infelizmente, a primeira pergunta não é tão fácil de responder. Na verdade, muitas coisas precisam ser escritas para que o mecanismo funcione no MT4. Farei isso em breve. Quando eu portar o mecanismo para o MT4, publicarei um artigo correspondente.
Com relação à segunda pergunta, é melhor armazenar tudo em um único arquivo. O XML é bom porque permite a organização de seções em forma de árvore e não permite que você se confunda, mesmo com um grande volume de tags. Outro aspecto é que a edição manual de XML não é bem-vinda pelo próprio padrão. Ele é um formato industrial para que os algoritmos se comuniquem entre si. Idealmente, cada arquivo xml deveria ter uma interface gráfica na forma de um aplicativo comum que permitisse editar os parâmetros da estratégia. Mas isso, embora bastante simples (do ponto de vista algorítmico), levará muito tempo, portanto, por enquanto, editamos o xml diretamente.
Cada arquivo xml deve ter uma interface gráfica na forma de um aplicativo comum que permita editar os parâmetros da estratégia. Mas isso, embora bastante simples (do ponto de vista algorítmico), levaria muito tempo, portanto, por enquanto, editamos o xml diretamente.
A solução ideal seria um botão "Editar" no Painel do usuário que abriria uma janela para editar a seção <Strategy>... correspondente . </Strategy>:)
Sim, isso seria legal. Só preciso encontrar alguém que esteja disposto a se apresentar e fazer isso. Não é difícil de fazer, posso até lhe dizer o que fazer.
Boa tarde, Vasily!
Ótimo mecanismo! ...é claro que tenho que terminar algumas coisas (por exemplo, trabalhar com pedidos pendentes).... mas isso já está sendo ajustado...
Tenho uma pergunta... Por algum motivo, a posição não é fechada quando o método m_trade.PositionClose() é chamado... ocorrem os erros 10030, 10015 ao fechar uma posição.
Sei que, em comparação com a MQL4, em termos de fechamento de ordens/posições, tudo mudou muito... Quero entender qual é o problema....
Vasiliy Sokolov, é importante observar que você fez um excelente trabalho ao criar um mecanismo universal e demonstrou um domínio virtuoso da OOP. Portanto, estudar esse material é útil até mesmo para aprimorar suas habilidades de programação MQL5.
O mecanismo contém muitos pontos necessários e úteis e será procurado por muitos operadores.
No momento, estou migrando meus robôs do mecanismo S#.Shell para o MT5 e devo dizer que o mecanismo de negociação que você criou implementa muitos recursos que me faltavam quando me familiarizei com os modelos padrão de Expert Advisor apresentados no Codebase. Além disso, muitas coisas são implementadas no mesmo nível, e ainda mais legal, embora o produto mencionado seja o trabalho de toda uma equipe de programadores.
Nesse sentido, após a familiarização, decidi parar de trabalhar no meu código e transferi-lo para o seu mecanismo.
Vasiliy Sokolov, é importante observar que você fez um excelente trabalho ao criar um mecanismo universal e demonstrou um domínio virtuoso da OOP. Portanto, estudar esse material é útil até mesmo para aprimorar suas habilidades de programação MQL5.
O mecanismo contém muitos pontos necessários e úteis e será procurado por muitos operadores.
No momento, estou migrando meus robôs do mecanismo S#.Shell para o MT5 e devo dizer que o mecanismo de negociação que você criou implementa muitos recursos que me faltavam quando me familiarizei com os modelos padrão de Expert Advisor apresentados no Codebase. Além disso, muitas coisas são implementadas no mesmo nível, e ainda mais legal, embora o produto mencionado seja o trabalho de toda uma equipe de programadores.
Nesse sentido, após a familiarização, decidi parar de trabalhar no meu código e transferi-lo para o seu mecanismo.
Obrigado por sua apreciação da minha abordagem proposta.
Gostaria de observar que o próprio mecanismo de negociação do CStrategy é baseado na biblioteca padrão, começando pelas classes de organização de dados e terminando com a classe de negociação CTrade. A biblioteca padrão é boa, robusta e eficiente, mas nem todas as suas classes são realmente OO. Muitas delas são apenas invólucros para funções padrão. O objetivo da abordagem OO não é chamar uma função padrão de outra forma mais complexa, mas executar uma tarefa útil da maneira mais eficiente possível, ocultando a complexidade da implementação. Mas isso já é uma filosofia...
Obrigado por sua apreciação da minha abordagem proposta.
Gostaria de observar que o próprio mecanismo de negociação da CStrategy é baseado em uma biblioteca padrão, começando pelas classes de organização de dados e terminando com a classe de negociação CTrade. A biblioteca padrão é boa, robusta e eficiente, mas nem todas as suas classes são realmente OO. Muitas delas são apenas invólucros para funções padrão. O objetivo da abordagem OO não é chamar uma função padrão de outra forma mais complexa, mas executar uma tarefa útil da maneira mais eficiente possível, ocultando a complexidade da implementação. Mas isso já é uma filosofia...
Diga-me como usar o módulo MoneyManagement. Ele não é mostrado em nenhum lugar dos exemplos. As configurações do MM devem ser diferentes para cada estratégia ou são comuns a todo o portfólio?
Por que essas variáveis externas no MoneyManagement.mqh? Não entendo onde elas são usadas.
input ENUM_MM_TYPE TypeMM; // Тип управления MM
input double FixLotOrPercent; // Фикс. лот или %
Hi.
Material interessante. Eu o li e decidi testá-lo na prática. Estou tentando compilar o Expert Advisor Agent.mq5 em anexo no MT5 Build 1295. Todos os arquivos estão sem erros, mas no final aparece "Internal compiler error". :( Você pode me dizer onde devo procurar?
- 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 Expert Advisor Universal: Negociação em Grupo e Gestão de uma Carteira de Estratégias (Parte 4) foi publicado:
Na última parte da série de artigos sobre o mecanismo de negociação CStrategy, vamos considerar a operação simultânea de vários algoritmos de negociação, aprenderemos a carregar estratégias de arquivos XML, e apresentaremos um painel simples para selecionar Expert Advisors partir de um único módulo executável e gerenciar os seus modos de negociação.
Com apenas um clique em qualquer botão no painel, você define a sua execução. Por exemplo, se selecionar uma estratégia a partir da lista, o índice da atual estratégia será igual ao selecionado, então você pode executar outras ações de negociação. Por exemplo, para alterar o modo de negociação da estratégia eleita, basta selecionar a opção apropriada no menu da lista suspensa dos modos de estratégia:
Fig. 2. A lista dos modos de uma estratégia selecionada
Autor: Vasiliy Sokolov