Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 1202

 
Igor Makanu:

é o que estou a escrever, é mais fácil de verificar, dentro de 10 minutos.... verificado, FileWriteArray() não escreve o tamanho do array no cabeçalho ou no primeiro byte, por isso tem de ser você a escrever estes valores

Igor, eu não disse que era de todo impossível. Leia atentamente as minhas palavras.

Alexey Viktorov:

...

Como é possível ler a estrutura e três matrizes de um ficheiro, desconhecendo-se como foi escrito.

...

Além disso, nesse exemplo, há um ficheiro aberto, estrutura lida, três arrays lidos e nenhum ficheiro fechado. Nesta altura, é preciso interrogar-se se o ficheiro estará fechado depois de ter sido escrito.

No seu exemplo, é a leitura de arrays e elementos estruturais, não FileReadStruct().

Obrigado pelo exemplo. Lembrar-me-ei e utilizá-lo-ei se necessário.

 
Alexey Viktorov:

Igor, eu não disse que era de todo impossível. Bem, leia as minhas palavras com um pouco mais de atenção.

Além disso, esse exemplo tem abertura de ficheiros, leitura de estrutura, leitura de três matrizes e nenhum fecho de ficheiro. Neste momento, começa-se a perguntar se o ficheiro é encerrado após ter sido escrito.

O seu exemplo mostra a leitura de arrays e elementos estruturais, não FileReadStruct().

Obrigado pelo exemplo. Lembrar-me-ei e utilizá-lo-ei se necessário.

Não sei de que outra forma explicar ))))

acredita em algum tipo de magia - que programas de terceiros podem descobrir o formato dos dados escritos num ficheiro binário - ninguém pode ler dados de um ficheiro binário sem conhecer a estrutura dos dados!

Um ficheiro binário é uma grande matriz de bytes que é acedida sequencialmente - o que é que escreveu? o que leu? - só você sabe, se não souber, estará a ler muitos dados binários.

)))

SZZ: é compreensível que eu queira escrever (ler) um array com um comando ArrayWrite e uma estrutura da mesma maneira, sim é possível, mas se usarmos um tamanho de dados fixo e escrevermos cada estrutura/array num ficheiro separado

 

Igor Makanu:

Bem, você acredita em algum tipo de magia - que programas de terceiros podem descobrir o formato dos dados escritos num ficheiro binário - ninguém pode ler dados de um ficheiro binário sem conhecer a estrutura dos dados!

Não me entendeu bem. Eu disse exactamente o mesmo apenas por outras palavras. Não era uma questão de como fazer, era... nem sequer um ponto de interrogação...

 

Pode dizer-me como criar um símbolo personalizado em mt5 se eu quiser colocar lá um gráfico de acções com fundos? Corretor Otkritie, se houver alguma coisa)

Tentei o seguinte:

1. Descarrego um histórico de citações em csv de finam

2. Converter csv em json

{
    "root": {
        "row": [
            {
                "TICKER": "FXRU",
                "PER": "1",
                "DATE": "20190502",
                "TIME": "100100",
                "OPEN": "748.7000000",
                "HIGH": "749.7000000",
                "LOW": "747.7000000",
                "CLOSE": "749.7000000",
                "VOL": "115"
            },
               ]
           }
}

3. não funciona.

 
Igor Makanu:

é o que estou a escrever, é mais fácil de verificar, dentro de 10 minutos.... verificado, FileWriteArray() não escreve o tamanho da matriz no cabeçalho ou no primeiro byte, por isso temos de ser nós a escrever estes valores

2020.03.25 10:18:36.058 tst (EURUSD,H1) 1. d_arr

2020.03.25 10:18:36.058 tst (EURUSD,H1) 3.14159 3.14159 3.14159 3.14159 3.14159

2020.03.25 10:18:36.058 tst (EURUSD,H1) 2. i_arr

2020.03.25 10:18:36.058 tst (EURUSD,H1) 1234567890 1234567890

2020.03.25 10:18:36.058 tst (EURUSD,H1) 2. c_arr

2020.03.25 10:18:36.058 tst (EURUSD,H1) 127 127 127 127 127 127

2020.03.25 10:18:36.058 tst (EURUSD,H1) mstruct.a = 666 , mstruct.b = 123.123000

Isto é, se as dimensões da matriz são dinâmicas, significa que escrevemos as dimensões da matriz quando escrevemos e lemos as dimensões da matriz a partir do ficheiro e definimos as dimensões das matrizes da estrutura quando lemos

no meu exemplo 2 estruturas - uma foi inicializada e escrita, a segunda foi lida, inicialização a partir de dados do ficheiro

Obrigado, muito impressionante.

E se escrever 2 estruturas no ficheiro, pode obviamente lê-las da mesma forma.


PS Uma estrutura simples (em qualquer quantidade) é escrita e lida por função regular sem qualquer problema.
 
Por favor, como se define o tamanho da segunda dimensão de uma matriz dinâmica bidimensional na mosca?
 
Сергей Таболин:
Por favor, seja gentil, como se define o tamanho da segunda dimensão de uma matriz dinâmica bidimensional na mosca?

ou embrulhar uma matriz unidimensional num conjunto de estruturas

struct Sarr
{
   double            y[];
};
struct Sarr2x2
{
   Sarr              x[];
};

void OnStart()
{
   Sarr2x2 arr;
   ArrayResize(arr.x,10);
   for(int i=0; i<ArraySize(arr.x); i++)
   {
      ArrayResize(arr.x[i].y,10);
   }
   arr.x[0].y[0] = 5.0;
}
//+------------------------------------------------------------------+

ou usar uma classe que fará o trabalho - não quero procurá-lo, já lhe dei os links uma centena de vezes

https://www.mql5.com/ru/forum/6729/page3#comment_674794


sim, há uma classe matriz em algibe

#include <Math\Alglib\matrix.mqh>

void OnStart()
  {
      CMatrixDouble d_arr;
      d_arr.Resize(10,10);
 

O que significa a escala temporal na história do comércio?

escala X. O que significam os valores na escala?

 

como usar MQL para criar uma imagem .bmp e guardá-la num ficheiro sem encadernação a um gráfico - ou seja, sem criar primeiro uma Tela ou um objecto CGráfico num gráfico

Procurei cursorosamente nos artigos não vi tal informação, preciso de uma instrução sobre como começar, eu próprio escreverei o código

 
Igor Makanu:

como usar MQL para criar uma imagem .bmp e guardá-la num ficheiro sem encadernação a um gráfico - ou seja, sem criar primeiro uma Tela ou um objecto CGráfico num gráfico

Procurei cursorosamente nos artigos não vi tal informação, preciso de uma instrução sobre como começar, eu próprio escreverei o código

Em recursos
Razão: