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
Eu não disse isso.
Eu não toquei neste tópico e não pretendo me envolver.
Aparentemente, me pareceu:
E os stoplots e takeprofits integrados são na verdade virtuais e são jogados fora para execução no mercado quando chegar a hora. Esta solução tem um lado bom - economiza em CS (colateral, margem).
Pense no que os novos recursos de acesso aos dados fornecem e por que isso é o caso.
MetaTrader 4 tem profundidade limitada da história, prazos separados e acesso direto às barras de seu símbolo via Aberto/Alto/Baixo/Fechado/Tempo[xxx]. Tal acesso direto é muito caro de ser implementado em termos de recursos e custo de CPU. Considere que cada Expert Advisor tem sua própria cópia local desses dados para evitar conflitos com outros Expert Advisors e com o próprio terminal.
Quando o número de símbolos cresce (por exemplo, no MT5 você pode ter 5 000-10 000 símbolos), e usando o histórico profundo de um minuto como base de todos os prazos, não é mais possível, em princípio, usar os métodos do MT4. Não há RAM suficiente e a cópia de grandes pedaços mata o desempenho. É por isso que a MT5 não mantém mais automaticamente uma cópia oculta e cara do gráfico para cada ecpert.
Em vez disso, mudamos para funções muito econômicas do CopyXXX, onde o desenvolvedor solicita exatamente à matriz local tantos dados quanto precisa, não todo o gráfico disponível. A seguir vem o tratamento de dados local mais rápido possível (em vez do velho e caro Open/High/Low/Close/Time[xxx]), mais o autor pode armazenar esses dados e usá-los com parcimônia na próxima chamada. A economia de memória e CPU é enorme. Além disso, a plataforma em si é particularmente livre para gerenciar vastos bancos de dados - o acesso a eles é sempre sob demanda (em vez de acesso direto sem supervisão) e isto permite o gerenciamento flexível de caches.
Deve-se notar também que a simplicidade das chamadas Open/High/Low/Close/Time[xxx] em MQL4 foi limitada ao símbolo e ao prazo atual, e todos os outros dados para outros símbolos e prazos foram obtidos usando as funções iClose/iLow(...), o que causou sérios atrasos. A transição em MQL5 para um único modelo de função CopyXXX melhorou radicalmente a situação, permitindo aos desenvolvedores obter os pedaços de dados necessários por uma solicitação, e não fazer múltiplas chamadas bloqueadas (pense em todos os bloqueios em cada chamada para iClose).
...
Que tal o desempenho do CopyXXX?
Em termos de economia de memória - sem perguntas. Mas é mais caro chamar o CopyXXX para cada tick do que copiar uma vez uma série de citações no buffer e acessá-lo por um índice direto do tipo Tarifas[X]. Aqui temos um clássico dilema de programação: "Para economizar memória vs. para economizar tempo de CPU".
Nada menos que um MT5. Agora, dirija-se a si mesmo, substitua apenas um B por um A.
Vá aprender o que é o MERCADO! Trader, você sabe....
Então você está dizendo que o MT4 pode, digamos, armazenar a história ou "saber" sobre volumes reais (sem todas as muletas e outras soluções totalmente inadequadas)?
Você concorda que no mercado real o spread não é claramente fixo? Vá e no testador do MT4 tente testar a EA nas cotações com spreads variáveis, então conversaremos.
Não me preocupo tanto com o resto do mundo quanto com os interesses do desenvolvimento de especialistas com lógicas complexas. ;)
A solução de compromisso seria organizar pedidos virtuais no nível MT5. Então haveria tanto uma rede que alguém precisa quanto a velha lógica de trabalhar com encomendas.
Você assumirá os riscos de uma tal "visualização"?
Na MT5, todos os que quiseram utilizar a solução há muito tempo, fazendo hedging com negociações em diferentes instrumentos com um alto grau de correlação.
Sim, isto pode exigir muito mais margem do que na MT4, mas o senso comum diz que é correto.
Naturalmente, ninguém cancelou o esquema "virtual" neste caso.
Então você está dizendo que o MT4 pode, digamos, armazenar a história ou "saber" sobre volumes reais (sem todas as muletas e outras soluções inadequadas)?
Você concorda que no mercado real o spread não é claramente fixo? Vá e no testador do MT4 tente testar a EA nas cotações com spreads variáveis, então conversaremos.
Você assumirá os riscos de tal "visualização"?
Na MT5, todos que queriam utilizar uma solução de hedging, utilizando negociações em diferentes instrumentos com um alto grau de correlação.
Graças a Deus, existe o MT4 por enquanto. :) Você pode usá-lo em um instrumento, se desejar. Você pode usar diferentes instrumentos.
O que você vê como os riscos?
E quanto ao desempenho do CopyXXX?
Em termos de economia de memória - sem perguntas. Mas é mais caro chamar o CopyXXX para cada tick do que copiar uma vez uma série de citações em um buffer e acessá-lo por um índice direto do tipo Tarifas[X]. Aqui temos um clássico dilema de programação: "Para economizar memória vs. para economizar tempo de CPU".
CopyXXX tem a mesma velocidade das funções iClose/iOpen/iXXXXXX. Somente iXXX retorna um elemento de cada vez e CopyXXX retorna muitos e, portanto, é mais eficiente e produtivo.
Provavelmente, você não considera que o MT4 copia à força _todos_ os históricos do gráfico local para o ambiente de mercado local (cache) da EA antes de cada manipulador de carrapatos começar. E isto é muito caro, embora tenhamos um método para a atualização econômica destas informações. A função especial RefreshRates na MQL4 provoca a atualização forçada das caches e do histórico do gráfico local.
Chamar o CopyXXX é muito mais eficiente, e os desenvolvedores têm um mecanismo muito preciso e preciso de cache de dados previamente solicitados. Por exemplo, você não precisa solicitar novamente um histórico profundo em cada carrapato, mas armazená-lo/escrevê-lo localmente e acessá-lo o mais rápido possível.
Se compararmos os antigos métodos de acesso "direto" (não de fato acesso direto) de acesso aberto/alto/baixo/fechado e trabalhar com a matriz local dupla local[xxxx], este último é muitas vezes mais rápido. Portanto, é melhor copiar para você mesmo localmente e depois ter acesso local rápido aos dados repetidamente consultados.
Graças a Deus existe um MT4, por enquanto. :) Com ele, você pode usar um instrumento de cada vez. Você pode usar diferentes instrumentos.
O que você vê como os riscos?
Ao desenvolver/usar "plataformas comerciais" há certos custos e riscos, que alguém acaba assumindo.
Quanto à "virtualização" em software de outros desenvolvedores
Isto é uma coisa boa, desde que tudo seja usado para si mesmo e as pessoas que implementam a solução entendam o que estão fazendo.
Os principais custos serão: dinheiro gasto no desenvolvimento do sistema, dinheiro gasto para mantê-lo em funcionamento e tempo gasto na implementação do projeto.
Os principais riscos: muito tempo ou dinheiro será gasto para implementar um projeto viável (o projeto não será rentável), o projeto não será eficaz em comparação com outras soluções, erros ocultos no código ou algoritmos serão introduzidos durante a implementação do projeto.
Sim, bancos e outros agentes do mercado recorrem ao desenvolvimento de seus softwares com a funcionalidade necessária, mas eles gastam uma enorme quantidade de tempo e recursos. Enquanto isso, eles assumem absolutamente todos os riscos.
Com relação ao trabalho com MT5 (diferentes variantes usando MT5)
Aqui, é claro, a MQ fez a maior parte do trabalho, mas também introduziu certas restrições de funcionalidade.
Os principais custos serão: dinheiro gasto para manter o desempenho do sistema e tempo gasto na implementação do projeto.
Os principais riscos: o projeto não será eficiente em comparação com outras soluções, haverá erros ocultos no código ou algoritmos ao implementar o projeto, você terá que monitorar constantemente o desempenho de todo o sistema (protegê-lo de problemas de software e hardware; monitorar a qualidade da comunicação, fornecimento de energia, segurança de dados, etc.).
É claro que você pode pensar em uma aplicação comercial (permitindo que outras pessoas a utilizem), com certas limitações e ressalvas.Eu gostaria de dar uma olhada em
Aqui está um exemplo onde a simplicidade e facilidade de uso do OOP ao escrever programas simples é particularmente evidente.