Desejos para MT5 - página 23

 

Não é muito conveniente que as aulas não possam ser descritas no final do programa, mas apenas no seu início.

 

Seria bom fazer um deslizador no editor que divide a janela de edição em duas independentes, como no Word. Seria conveniente copiar, escrever e assistir a duas secções do programa ao mesmo tempo.

 
MetaDriver:

Eu desejo...

A única excepção (e não necessária) são os fins-de-semana, que também podem ser ignorados, mas novamente GARANTIDOS para estarem em sincronia através de diferentes instrumentos.

Sabia que, de facto, nos fins-de-semana, o câmbio funciona

é que a maioria dos corretores não trabalha

---

alguns dão-lhe até citações no fim-de-semana e deixam-no trabalhar nas suas encomendas.

o que é muito conveniente.

podem alargar o spread no fim-de-semana porque não há liquidez

mas há uma forma de encobrir e mudar as coisas

 

Seria uma boa ideia acrescentar uma função às bibliotecas padrão para lidar com um fio da forma: Decompor a corda em módulos limitados por "início", "fim" e escrevê-los num conjunto de cordas. Por exemplo: int count=(string, array,"<h1>","</h1>",flag); Onde string é a string de entrada, array é a array de saída de strings, "<h1>" - O início do módulo na corda, "</h1>". - Módulo final em cadeia. flag - especifica se deve ou não incluir limitadores de módulo nas cordas da matriz de saída, contagem - número de módulos encontrados.

Neste caso, int count=(string, array,"<h1>","</h1>",flag); - irá criar o array de todos os cabeçalhos, que estão em string.

Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 
Isto também pode ser feito com as ferramentas existentes, ver o artigo Parsing HTML com MQL4
Разбор HTML средствами MQL4 - Статьи по MQL4
  • www.mql5.com
Разбор HTML средствами MQL4 - Статьи по MQL4: примеры использования экспертов, тестирования и оптимизации
 
Rosh:
Isto pode ser feito com ferramentas existentes, leia o artigo Parse HTML com ferramentas MQL4
Bem, é evidente que o pode fazer passo a passo com as ferramentas existentes. Mas é melhor ter uma função pronta que faz tudo de uma só vez do que duas páginas de code....
 
Rinng:
Bem, é compreensível que o possa fazer passo a passo com as ferramentas disponíveis. Mas melhor do que duas páginas de código para ter uma função pronta que faz tudo de uma só vez....
Adicione-o a uma biblioteca ou ficheiro mqh e sem problemas ;))
 

No editor, seria útil esconder/abrir alguns blocos de código de programa. Por exemplo "funções", "definições", "classes"..., ou pode esconder/abrir sub-códigos, por exemplo, para, se...

Документация по MQL5: Основы языка / Операторы / Оператор цикла for
Документация по MQL5: Основы языка / Операторы / Оператор цикла for
  • www.mql5.com
Основы языка / Операторы / Оператор цикла for - Документация по MQL5
 
Rosh писал(а) :
Leia Organização do acesso aos dados, diz como solicitar o histórico correctamente.

Relatório. E particionados. E aquele que eu dominei. É perfeitamente possível descobrir, se necessário. Tenho ainda de aprender MQL, por isso quase qualquer pergunta que tenha sobre o risco de a língua ser tola.

Não compreendo outro: "O parâmetro "Max barras nos gráficos" limita o número de barras disponíveis aos gráficos, indicadores e mql5-programas em formato HC. Esta limitação aplica-se a todos os dados de prazos e foi concebida principalmente para poupar recursos.

Ao definir valores altos deste parâmetro, devemos lembrar que se houver um histórico suficientemente profundo de dados de preços para períodos de tempo baixos, o consumo de memória para armazenamento de séries temporais e buffers indicadores pode atingir centenas de megabytes e atingir o limite de memória para o programa terminal cliente (2 GB para aplicações de 32 bits do MS Windows).

Talvez, não tenha realmente compreendido o que é o quê neste episódio, e ao mesmo tempo quero sublinhar mais uma vez que não vou fazer perguntas aqui e agora sobre programas MQL, mas a motivação acima referida para poupar recursos parece estranha em relação ao pedido automático de histórico pelo terminal quando se trabalha directamente com um gráfico manualmente. O vosso código está fechado, por isso não posso julgar como tudo funciona. Não sei se cada castiçal é um objecto real com um grande conjunto de propriedades e atributos ou se é um desenho gráfico simplificado/renderização da imagem estrutural do mercado. Se omitirmos o tópico de descarregar a história em falta e nos concentrarmos no que já temos, então levantamos uma questão sobre a racionalidade da abordagem do desenho. Mesmo que fixemos uma certa e grande quantidade de barras no gráfico nas definições, mesmo que comprimamos as barras do gráfico a uma agulha e utilizemos uma resolução muito alta do monitor, não posso acreditar que a imagem inteira utilize a RAM se as barras forem correctamente carregadas do SGBD histórico para o ecrã. Está a utilizar o princípio LIFO? O número máximo de barras no gráfico pode ser infinitamente grande, mas o que está por detrás do ecrã (tanto à esquerda como à direita) não deve estar de todo na memória, e ao rolar, deve ser carregado na memória principal e descarregado instantaneamente, porque não estamos a trabalhar com a rede, mas apenas com o histórico disponível localmente. De que horríveis limitações de 2Gb poderíamos estar a falar?

...estou provavelmente muito fora do circuito, por isso perdoem antecipadamente o campónio.

 

Cada barra de preços é descrita pela estrutura MqlRates (nenhuma outra característica) com um tamanho de 52 bytes:

struct MqlRates
  {
   datetime time;         // время начала периода
   double   open;         // цена открытия
   double   high;         // наивысшая цена за период
   double   low;          // наименьшая цена за период
   double   close;        // цена закрытия
   long     tick_volume;  // тиковый объем
   int      spread;       // спред
   long     volume;       // объем
  };

Para estimar o tamanho das bases de dados de trabalho, é necessário procurar no directório /bases/ nome do servidor/símbolo/. Por exemplo, para EURUSD pode ver o seguinte:

Neste directório encontram-se os recipientes originais de minutos comprimidos tal como são dados pelo servidor comercial. Pode-se ver que, em média, os contentores de minutos demoram cerca de 15 mb durante 1 ano. Este é um formato de compressão muito específico para minimizar o tráfego.

O directório de cache contém as bases de dados de trabalho que foram comprimidas conforme necessário:


Como se pode ver, desde 1993 minutos (na verdade, até 1999 são utilizadas peças de dia em vez de minutos) são cerca de 231 megabytes sem compressão e prontos a usar. Os relógios adjacentes, no entanto, ocupam apenas 4 mb.

Se multiplicar 52 bytes por 4 400 000 barras, obtém cerca de 230 MB. Um simples indicador de Média Móvel com um buffer funcional (duplo) exigirá 4 400 000 * 8 = 35 megabytes de memória.


Quando o comerciante define "barras máximas na janela" nas definições do terminal, especifica explicitamente "não mais do que o número especificado de barras a serem carregadas na memória para trabalhar". Se todo o histórico de minutos for carregado (trabalhamos no gráfico M1), se forem aplicados alguns indicadores pesados multibuffer e se forem utilizados Expert Advisors, o custo da memória pode ser significativo. E não podemos pensar "Trabalho com uma janela e vejo 500 barras, por isso posso descarregar o resto". Não é possível descarregá-los - indicadores, Conselheiros Peritos, etc. vivem e trabalham com estes dados.

Implementámos um modelo de cache muito eficaz, quando os dados e indicadores são sempre armazenados num único número. Isto significa que abrir 5 janelas no EURUSD:M1 não requer a criação de 5 buffers de dados, e vários indicadores, absolutamente iguais em parâmetros, têm apenas uma cópia. Quando os indicadores ou gráficos não são utilizados durante muito tempo, os seus dados são automaticamente libertados e puxados para trás conforme necessário.

Além disso, temos uma versão de 64 bits do terminal do cliente, que pode lidar com uma enorme quantidade de história sem quaisquer limitações. Esta versão será lançada assim que terminarmos os testes MQL5 sob ambiente de 64 bits.