Discussão do artigo "Expert Advisor Universal: O Modelo de Evento e o Protótipo da Estratégia de Negociação (Parte 2)" - página 4
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
No mínimo, analise o preço. Talvez você nem precise entrar.
Sim, existe esse mecanismo. E onde ele deve ser incorporado, se não na classe de ordens comerciais? E como formalizar esse mecanismo, qual movimento brusco deve ser considerado crítico?
Bem, essa é a questão! É por isso que ele não está incorporado ao mecanismo.
Para uma estratégia, um deslize de 20 pips não importa, e você deve entrar de qualquer maneira, enquanto para outra estratégia um deslize de 2 pips quebra todas as estatísticas, e você não deve entrar pior.
E o que um mecanismo de negociação universal deve fazer para essas duas estratégias? Certo, retornar o preço de recotação e deixar que a lógica de negociação tome uma decisão.
Bem, ou adicionar uma personalização. Mais precisamente, configurações para todos os casos da vida)
Na compilação 1241, o código está compilando bem, então tentei executar um backtest. Ele não faz nenhuma negociação.
Depois de pesquisar um pouco, descobri que isso se deve ao modo de preenchimento. O modo permitido na corretora/símbolo que estou usando é ORDER_FILLING_IOC. Sua classe TradeCustom define o modo de preenchimento por padrão como ORDER_FILLING_FOK. E eu não consigo entender como posso alterar esse modo de preenchimento para que o EA Agent.mq5 faça a negociação? Eu poderia pesquisar, mas isso me tomaria muito tempo.
Esse é o problema com essas ferramentas, muito semelhantes ao assistente MQL5 EA da Metaquotes, que é quase inutilizável para quem não conhece todos os detalhes das classes. Quando você se depara com um problema que não foi fornecido pelo autor, torna-se uma verdadeira dor de cabeça corrigi-lo ou modificá-lo/adicioná-lo. Não vejo nenhuma diferença real entre sua solução e a do Metaquotes (assistente).
De qualquer forma, parabéns pelo enorme trabalho. É um excelente trabalho de programação.
Há algumas classes na pasta include do MetaEditor5. Se alguém puder nos dar uma explicação detalhada das classes da pasta Expert, será muito útil, pois elas parecem muito complicadas. As pessoas gostam de escrever EA padrão com base em classes básicas formais e nem sempre recriam rodas.... De qualquer forma, esse artigo ajuda muito a não recriar rodas.
Eu concordo. O problema é quando há um bug na estrutura. Antes de usar uma estrutura, devemos decidir aprendê-la profundamente ou ter certeza de que o autor oferece um bom suporte.
É por isso que quero aprender as aulas no MetaEditor5, pois elas são do "governo" ;)
Mr.Vasily,
very nice code.. and useful to me..
in the mt5 news builds (1952), we got a "message" in the compiler,
//+------------------------------------------------------------------+
expression not boolean NewBarDetector.mqh 87 24
the correct should be this? please confirm
Olá, Vasiliy,
Perdoe-me por fazer uma pergunta sobre seu artigo tão depois de tê-lo escrito. Só agora estou analisando os artigos corretamente em busca de alternativas para uma estrutura. Algo me pareceu estranho, muito provavelmente devido a um mal-entendido meu.
Com relação aos manipuladores de eventos New Tick e New Bar. Você percorre a lista de ticks adicionados e, em seguida, cria a estrutura de eventos, passando-a para os manipuladores de eventos Init e Support, por exemplo, o evento new tick abaixo:
Em um de seus exemplos, por exemplo, o clipe de média móvel abaixo;
Essa função IsTrackEvents parece anular a finalidade da função NewTickDetect acima! Portanto, o exemplo da Média Móvel acima deveria ser capaz de negociar em vários instrumentos com base em sua capacidade de verificar vários símbolos, como em NewTickDetect, mas IsTrackEvents permite a negociação somente para o período de tempo e o símbolo da estratégia (o símbolo é fundamental aqui). Isso não significa que o loop NewTickDetect não é realmente necessário, já que a estratégia só pode negociar em seu símbolo? De fato, a detecção do novo tick deve verificar apenas se o tick recebido é do símbolo da estratégia, sem looping. O que, de fato, é semelhante a ter um objeto de estratégia para cada símbolo de interesse, sobre o qual o CStragyList faz um loop?
Espero que eu esteja fazendo sentido e que você possa me esclarecer.
Gosto muito de seu trabalho. Aprendi muito com seus artigos, portanto, muito obrigado.
Atenciosamente,
Shep