Cálculo de matriz única durante a otimização - página 4

 

Rapazes, como escrever os dados em uma linha, separados por vírgulas?)

Eu o recebo sempre de uma nova linha.

int Qnt=FileWrite(Handle,Time[0]);
if(Qnt<0)Alert("не получилась запись=");
   return(0);

Em princípio, deve funcionar mais rápido se eu colocar todos os dados em uma matriz de uma só vez, como aconselhado:

double arr[100500]={1,2,3....} 
 
forexman77:

Rapazes, como escrever os dados em uma linha, separados por vírgulas?)

Eu o recebo sempre de uma nova linha.

Em princípio, deve funcionar mais rapidamente se todos os dados de uma só vez na matriz, como aconselhado:

Eu li o artigo sobre as funções das cordas, acho que consegui:

string str1,str2;
   for (int y=stroki-1;y>=0;y--)
   {
   str1=T[y];
   str2=str2+","+str1;
   }
   Print("str2=",str2);
2016.09.15 21:42:58.649 запись данных GBPUSD,H4: str2=,1452038400,1454022360,1454104980,1456788420,1457130840,1459205760,1459463580,1459814040,1461621600,1461710760
 
forexman77:

Rapazes, como escrever os dados em uma linha, separados por vírgulas?)

Eu o recebo sempre de uma nova linha.

Em princípio, deve funcionar mais rápido se eu colocar todos os dados em uma matriz de uma só vez, como você aconselhou:

Por que você gostaria de fazer isso? Dmitry deu links para a documentação sobre leitura e escrita de uma matriz para um arquivo.

Como em "O Braço de Diamante"... "Com uma onda da mão, as calças se transformam em..." Somente neste caso não há nenhuma avaria técnica. Afinal, eu não pedi nada sobre como a escrita e a leitura da matriz está organizada.
 
Alguém tem instruções sobre como converter um arquivo normal com dígitos para lixeira? Eu não consigo descobrir qual deve ser o separador para os dígitos?
 
-Aleks-:
Alguém tem instruções sobre como converter um arquivo normal com dígitos para lixeira? Eu não consigo descobrir que tipo de separador deveria ter os dígitos?
Leia os dígitos em um array e depois escreva o array no arquivo em modo binário.
 
Dmitry Fedoseev:
Ao ler os dígitos, podemos colocá-los no array e depois escrever o array no arquivo em modo binário.

Vejo, ou seja, você pode ler o arquivo pronto com dígitos em um array (meu caso), depois escrevê-lo em um arquivo binário, e depois usá-lo.

Bem, se você precisa ler dados de 10 matrizes do arquivo, então você precisa fazer um classificador, que entenderá o fim da matriz por dígitos especiais e preencherá a próxima matriz... Pois não é conveniente escrever o tamanho da matriz toda vez.

 
-Aleks-:

Vejo, ou seja, você pode ler o arquivo pronto com dígitos em um array (meu caso), depois escrevê-lo em um arquivo binário, e depois usá-lo.

Bem, se você precisa ler dados de 10 matrizes do arquivo, então você precisa fazer um classificador, que entenderá o fim da matriz por dígitos especiais e preencherá a próxima matriz... porque seria inconveniente escrever o tamanho da matriz cada vez à mão.

Que bagunça.

Aescrita da matriz no arquivo é necessária para salvá-lo para o tempo de recarga da EA. Deve ser escrito antes da saída e lido na entrada.

Se houver 10 matrizes no Expert Advisor, haverá 10 arquivos. Mas antes que ele (uma matriz) possa ser lido, ele deve ser criado e escrito.

 
Alexey Viktorov:

Uma bagunça na cabeça.

Agravação de um array em um arquivo é necessária para salvar esse array para quando a EA for reinicializada. Escrever antes de sair e ler na entrada.

Se houver 10 matrizes no EA, haverá 10 arquivos. Mas antes que ele (a matriz) possa ser lido, ele deve ser criado e escrito.

Você está tão preso, eu estou falando de soluções e você está elogiando o problema. Meu posto não é para resolver o problema do melhor acionista.

Desatenção e agressividade - aparentemente apatia, outono...

 
Alexey Viktorov:

Por que eu preciso fazer isso? Dmitry deu links para a leitura e escrita de documentação para um arquivo.

É como no filme "O Braço de Diamante"... "Com um movimento da mão, as calças são transformadas..." Somente neste caso, não há nenhuma avaria técnica. Afinal, não pedi nada sobre como se organiza a escrita e a leitura de uma matriz.

É bem possível que fosse mais rápido com um arquivo de lixo.

Ontem eu tentei declarar a matriz imediatamente. Afinal, conheço a matriz antes de tudo, antes da otimização.

Por exemplo, assim (eu apaguei uma parte das cordas):

datetime T[411]=
   {
   1262731020,1262735700,1262821920,1262903400,1262989740,1263247200,1263339060,1263420000,1263507480,1263595500,
   1265324700,1265407200,1265752980,1265926500,1265930820,1267657200,1267740300,1267826460,1268175840,1268346360,
   1270504920,1270684140,1270768500,1272924180,1273011720,1273097100,1273272240,1273528800,1273617180,1275344100,
   1275516000,1275602400,1275689160,1276034400,1276124580,1276208700,1276211640,1278027960,1278369780,1278373920,
   1278456660,1278540000,1278626400,1278712800,1280447880,1280527200,1280789220,1280959200,1281045720,1283292000,
   1283378400,1283812200,1285626300,1285887060,1286229600,1286316000,1286404740,1288133220,1288216860,1288305120,
   1288392420,1288648860,1288735200,1288741980,1288822080,1288994400,1290722460,1290809040,1291069320,1291329540,
   1293228420,1293577020,1293666300,1293746400,1295992800,1296079320,1296253680,1296514200,1296686940,1296770400,
   1298503260,1298592000,1298672280,1298931060,1300831920,1300917600,1301609160,1301696460,1303512420,1303768920
   };

Ainda não funcionou tão bem. Atualmente os terminais estão ocupados com a otimização e tentarei fazer isso de diferentes maneiras mais tarde. Suponho que eu tenha que converter de cordel para data.

 
Eu faço isso. Eu faço um único teste. Durante estes testes eu escrevo arrays em um arquivo. Então eu faço a otimização na mesma área, mas as matrizes não são recalculadas em cada barra ou carrapato, elas são lidas a partir do arquivo. A otimização através da abertura de preços em um período semanal é instantânea. Sem operações de arquivo, leva horas.