Testador apoiando os scripts e consultores MG4 - página 10

 
Renat:

Eu não disse isso.

Eu não toquei neste tópico e não pretendo me envolver.

Aparentemente, me pareceu:

Renat:

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).

A pergunta acima foi acrescentada.
 
Renat:

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".

 
lob32371:

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.

 
RickD:

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.

 
Interesting:

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.

Há um abismo intransponível entre mim e você. Você só está perdendo seu tempo, boa sorte!
 
Interesting:

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?

 
C-4:

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.

 
RickD:

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.
 
Vinin:
Eu gostaria de dar uma olhada em
Aqui está um exemplo onde você pode ver particularmente a simplicidade e a facilidade de uso do OOP ao escrever programas simples.
 
lob32371:
Aqui está um exemplo onde a simplicidade e facilidade de uso do OOP ao escrever programas simples é particularmente evidente.
Isto não é um indicador