- DIDI index
- Construtores de EAs (EA Builders), como o MQL5 Wizard, já usou algum?
- Metatrader 4 no Brasil??
Gostaria de saber se alguem esta operando com conta real nos indices futuros e caso sim, se encontrou alguma dificuldade.
Olá achaa... eu opero índice futuro em conta real. Pra ser bem sincero, o MetaTrader ainda tem falhas técnicas que impedem o desenvolvimento de algumas estratégias de alta frequência. Apesar do programa ser muito estável (pelo menos comigo nunca travou), existe ainda um problema de sincronização de dados com o servidor que estão tentando resolver. Se esse problema de sincronização de dados não for resolvido, basicamente as informações que você recebe no seu terminal MT5 passam a ser pouco confiáveis em relação ao tempo real do mercado. Resolvido esse problema, acredito que o MetaTrader passa a ser um programa respeitável no ambiente de negociação automatizada.
Gostaria de saber se alguem esta operando com conta real nos indices futuros e caso sim, se encontrou alguma dificuldade.
Eu tive alguns problemas com estrategias de alta frequência. Toda vez que saia de uma operação, era descontado o spread do resultado desta operação tanto no tp quanto no sl. Vcs chegaram a ver algo parecido com isso? Reparei tambem que os dados do backtest do mini e do cheio estao incorretos, pois o spread fica sempre fixo em 5 fazendo com que o ou o preço de compra ou o de venda esteja incorreto.
Vcs operam com EA's ou operam na mao?
Eu tive alguns problemas com estrategias de alta frequência. Toda vez que saia de uma operação, era descontado o spread do resultado desta operação tanto no tp quanto no sl. Vcs chegaram a ver algo parecido com isso? Reparei tambem que os dados do backtest do mini e do cheio estao incorretos, pois o spread fica sempre fixo em 5 fazendo com que o ou o preço de compra ou o de venda esteja incorreto.
Vcs operam com EA's ou operam na mao?
- 2010.06.02
- MetaQuotes Software Corp.
- www.mql5.com
Olá achaa, por mais engraçado que possa parecer, o esquema de backtests do MetaTrader no modo 'cada tick' não é baseado em ticks reais, mais sim num algoritmo proprietário da MetaQuotes, descrito no seguinte artigo:
Olá achaa... eu opero índice futuro em conta real. Pra ser bem sincero, o MetaTrader ainda tem falhas técnicas que impedem o desenvolvimento de algumas estratégias de alta frequência. Apesar do programa ser muito estável (pelo menos comigo nunca travou), existe ainda um problema de sincronização de dados com o servidor que estão tentando resolver. Se esse problema de sincronização de dados não for resolvido, basicamente as informações que você recebe no seu terminal MT5 passam a ser pouco confiáveis em relação ao tempo real do mercado. Resolvido esse problema, acredito que o MetaTrader passa a ser um programa respeitável no ambiente de negociação automatizada.
Malacarne, pode descrever melhor que problema é esse de sincronização e se possível de onde saiu essa informação? obrigado.
Olá Figurelli,
vamos às respostas... Vou responder primeiro à primeira pergunta e logo depois, num outro post, a segunda pergunta.
Após procurar insistentemente por informações sobre o modo de funcionamento do modo 'Cada tick' do MetaTrader, encontrei as seguintes informações:
a) No artigo "The Algorithm of Ticks’ Generation within the Strategy Tester of the MetaTrader 5 Terminal" (https://www.mql5.com/en/articles/75):
"Strategy Tester of the MetaTrader 5 terminal uses only one mode of price modeling in testing - the generation of ticks on the basis of existing historical data on minute time frames of the used symbols".
b) No manual em inglês (http://data.mql5cdn.com/mt5/mql5/pdf/mql5.pdf):
"The historical quotes data for financial instruments is transferred from the trading server to the MetaTrader 5 client terminal in the form of packed minute bars".
c) No manual em português (http://data.mql5cdn.com/mt5/mql5/pdf/mql5_portuguese.pdf):
"Os dados de cotação histórica para instrumentos financeiros são transferidos do servidor de negociação para o terminal cliente MetaTrader 5 na forma de barras de minuto empacotadas".
Ainda:
"O elemento mínimo do histórico de preços é a barra de minuto".
E mais!!!
"Para testar a estratégia de negociação, nós precisamos de uma seqüência de ticks, na qual o trabalho do Expert Advisor será simulado. Assim, para toda barra de minuto, nós conhecemos os 4 pontos de controle, onde os preços definitivamente estiveram. Se uma barra tem apenas 4 ticks, então isso é informação suficiente para realizar um teste, mas geralmente o volume de tick é maior que 4. Portanto, existe a necessidade de gerar pontos de controle adicionais para ticks, que ocorreram entre os preços de Abertura, Máximo, Mínimo, e Fechamento."
Por fim:
"Ao testar no modo "Cada Tick", a função OnTick() do EA será chamado a cada ponto de controle. Cada ponto de controle é um tick de uma seqüência gerada. O EA receberá a hora e preço do tick simulado, assim como se estivesse trabalhando online."
Portanto, a não ser que meu inglês esteja muito enferrujado (pois antes de consultar o manual em português eu li tudo que pude a respeito nas fontes em inglês), nada me convence (pois não encontrei nenhuma referência a respeito!) que os ticks do modo 'Cada tick' são verdadeiros, pois no meu ponto de vista, todos os ticks são simulados!
Ainda: existem diversos scripts no MetaTrader capazes de baixar dados históricos do servidor... mas até hoje eu não encontrei nenhum script capaz de baixar ticks históricos do servidor... E, pra terminar, existem diversas empresas no mercado cujo core business é justamente a venda de informações históricas de ticks de ativos... já pensou se nós pudéssemos ter essa informação de graça diretamente do MetaTrader??? Uma pequena mina de dinheiro, concorda?
Abraços,
Malacarne
- 2010.06.02
- MetaQuotes Software Corp.
- www.mql5.com
Olá Figurelli,
vamos às respostas... Vou responder primeiro à primeira pergunta e logo depois, num outro post, a segunda pergunta.
Após procurar insistentemente por informações sobre o modo de funcionamento do modo 'Cada tick' do MetaTrader, encontrei as seguintes informações:
a) No artigo "The Algorithm of Ticks’ Generation within the Strategy Tester of the MetaTrader 5 Terminal" (https://www.mql5.com/en/articles/75):
"Strategy Tester of the MetaTrader 5 terminal uses only one mode of price modeling in testing - the generation of ticks on the basis of existing historical data on minute time frames of the used symbols".
b) No manual em inglês (http://data.mql5cdn.com/mt5/mql5/pdf/mql5.pdf):
"The historical quotes data for financial instruments is transferred from the trading server to the MetaTrader 5 client terminal in the form of packed minute bars".
c) No manual em português (http://data.mql5cdn.com/mt5/mql5/pdf/mql5_portuguese.pdf):
"Os dados de cotação histórica para instrumentos financeiros são transferidos do servidor de negociação para o terminal cliente MetaTrader 5 na forma de barras de minuto empacotadas".
Ainda:
"O elemento mínimo do histórico de preços é a barra de minuto".
E mais!!!
"Para testar a estratégia de negociação, nós precisamos de uma seqüência de ticks, na qual o trabalho do Expert Advisor será simulado. Assim, para toda barra de minuto, nós conhecemos os 4 pontos de controle, onde os preços definitivamente estiveram. Se uma barra tem apenas 4 ticks, então isso é informação suficiente para realizar um teste, mas geralmente o volume de tick é maior que 4. Portanto, existe a necessidade de gerar pontos de controle adicionais para ticks, que ocorreram entre os preços de Abertura, Máximo, Mínimo, e Fechamento."
Por fim:
"Ao testar no modo "Cada Tick", a função OnTick() do EA será chamado a cada ponto de controle. Cada ponto de controle é um tick de uma seqüência gerada. O EA receberá a hora e preço do tick simulado, assim como se estivesse trabalhando online."
Portanto, a não ser que meu inglês esteja muito enferrujado (pois antes de consultar o manual em português eu li tudo que pude a respeito nas fontes em inglês), nada me convence (pois não encontrei nenhuma referência a respeito!) que os ticks do modo 'Cada tick' são verdadeiros, pois no meu ponto de vista, todos os ticks são simulados!
Ainda: existem diversos scripts no MetaTrader capazes de baixar dados históricos do servidor... mas até hoje eu não encontrei nenhum script capaz de baixar ticks históricos do servidor... E, pra terminar, existem diversas empresas no mercado cujo core business é justamente a venda de informações históricas de ticks de ativos... já pensou se nós pudéssemos ter essa informação de graça diretamente do MetaTrader??? Uma pequena mina de dinheiro, concorda?
Abraços,
Malacarne
Malacarne, antes de mais nada parabéns pela qualidade de teu estudo e argumentos, acredito que esse tipo de análise serve de exemplo da complexidade e riqueza dessa plataforma fantástica que é o MT5 e é muito relevante para todos.
Senão, gostaria de saber tua opinião (e demais) da razão de tanta diferença no número de ticks por minuto entre contas demonstração e real no Forex e da XP para as demais.
Se houver uma boa lógica para isso que possa ser comprovada na prática mudo de opinião, pode ter certeza.
- 2004.06.01
- Andrew Saks McLeod
- www.financemagnates.com
P.S.: sugiro que você faça o mesmo tipo de teste que eu fiz e nos mande também os resultados!!!
Malacarne, muito bom, são vários pontos levantados por ti e não sei se entendi bem todos, mas os riscos de operar com esse tipo de erro é alto, pois as decisões de compra e venda podem estar sendo tomadas sem dados precisos.
Note também que os stops (stoploss e takeprofit) e ordens pendentes são executados/das automaticamente no servidor da corretora, e o sincronismo dos ticks reflete também nessas decisões de definições de stops, além claro de impactar nos backtestings se não temos ticks realistas.
Além disso me preocupa se não existe uma latência que possa comprometer o roteamento preciso das ordens, já que o MT5 é uma ferramenta com raízes no Forex, e talvez a experiência brasileira seja o primeiro case real de operação em bolsa onde estão sendo estressados vários fatores novos (alguns já apontados por ti) como ausência de spread, latência das conexões, falta de know how da plataforma, problemas de liquidez, etc.
Sugiro portanto criarmos uma força tarefa de testes, diagnóstico e proposição de soluções, partindo das premissas dos teus testes e indicador, e seguindo as seguintes etapas:
Etapa 1) Padronização dos servidores de teste
Esse problema acontece também com outros servidores, ou seja, teus indicadores rodando em duas instâncias, conectados por exemplo no MetaQuotes-Demo, apresentam também essa diferença? Seja como for, sugiro fazermos sempre testes em mais de um servidor e mais de um tipo de conta (demo e real).
Etapa 2) Padronização do algoritmo de testes
Em primeiro lugar, o programa de testes influencia muito nos resultados, ainda mais quando estamos contando ticks, portanto, como sugerido pela turma em https://www.mql5.com/en/forum/16130 recomendo a abertura e análise detalhada do código fonte. Mas de forma diferente, e, ao invés de teres de abrir o código fonte do teu programa, minha sugestão é desenvolvermos um programa padrão para esses testes, com código aberto para outros colegas aqui fazerem testes similares. Acredito que isso irá contribuir para rápida identificação dos problemas e soluções.
Outro ponto é que os indicadores também podem pesar no processamento, principalmente se o loop de varredura for muito longo e por um período muito longo, impactando em diferenças.
Para isolar a contagem de ticks, minha ideia de programa é muito simples, baseado nas seguintes premissas:
- Coletar todos ticks recebidos a cada minuto do servidor e guardar apenas em variáveis na memória (sem operações de disco, evitando latência, ou até mesmo Prints em logs).
- Após um minuto completo de coleta exibir um comentário do tipo: "2013-12-14 03:46:00 - Ticks: 83 - OHLC (valores)"
Após criar um programa simples e rápido como esse (algum voluntário? se não aparecer eu me candidato ;-) publicamos o código aqui até chegar a um consenso que é o mais compacto e menos intrusivo para testes.
Etapa 3) Esforço conjunto de execução dos testes
Com o software descrito fico à disposição para repetir teus testes, e também tenho certeza que vários colegas aqui podem colaborar, até porque estaremos fazendo um esforço conjunto de medição comparativa da qualidade dos ticks recebidos por todos utilizando um programa aberto.
Até onde eu saiba não vi nenhuma iniciativa do tipo mesmo nas comunidades de outros idiomas (e na principal em inglês).
Etapa 4) Análise e diagnóstico conjunto
Nessa etapa fazemos a análise e diagnóstico de todos dados coletados, buscando encontrar problemas e endereçar as soluções (que talvez seja apenas comunicar o help desk da MetaQuotes ou TI da corretora).
Fique à vontade para propor modificações nas etapas propostas, a ideia foi só apresentar um primeiro escopo.
Aguardo tua opinião (e, claro, da comunidade) sobre essa força tarefa proposta e me coloco à disposição para ajudar no que for preciso.
- www.mql5.com
Sugiro portanto criarmos uma força tarefa de testes, diagnóstico e proposição de soluções, partindo das premissas dos teus testes e indicador, e seguindo as seguintes etapas:
Fantástico! É esse tipo de iniciativa que torna essa comunidade verdadeiramente profissional. Sugiro abrirmos um novo tópico, descrevendo os motivos que levaram à abertura do mesmo. Além disso, sugiro, nesse novo tópico, padronizarmos a metodologia de testes para que possa ser replicável por qualquer pessoa e, principalmente, desenvolver conjuntamente o script que fará essa coleta de dados para comparação.
Me comprometo, assim que for aberto o novo tópico, a postar um draft de script para que possamos conjuntamente modificá-lo até ficar da maneira que consensualmente acharmos ideal.
Abraços,
Malacarne
- 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