Ninguém lê, mas estão dispostos a apoiar. Acho que o vi no tópico sobre aprendizado de máquina? Se sim, você deve entender o que está escrito no artigo.
Acho que não entendi completamente. Por que um elemento de matriz tem 3 valores. É uma matriz tridimensional. Por que na ajuda o vetor é uma matriz unidimensional e a matriz nesse exemplo é representada por uma matriz tridimensional?
ZY, it happens)))) no exemplo há 3 linhas e 4 colunas)))) matrix))))))
//--- lista de caracteres a serem calculadosstring symbols[]= {"EURUSD", "GBPUSD", "USDJPY", "USDCAD", "USDCHF"};
int size=ArraySize(symbols);
//--- matriz e vetor para obter preços Fecharmatrix rates(InBars, size);
vector close;
for(int i=0; i<size; i++)
{
//--- obter preços de fechamento em um vetorif(close.CopyRates(symbols[i], InTF, COPY_RATES_CLOSE, 1, InBars))
{
//--- inserir o vetor na matriz de séries temporais
rates.Col(close, i);
PrintFormat("%d. %s: %d Preços de fechamento adicionados à matriz.", i+1, symbols[i], close.Size());
//--- gera os primeiros 20 valores do vetor para depuraçãoint digits=(int)SymbolInfoInteger(symbols[i], SYMBOL_DIGITS);
Print(VectorToString(close, 20, digits));
}
else
{
Print("vector.CopyRates(%d,COPY_RATES_CLOSE) failed. Error ", symbols[i], GetLastError());return;
}
}
Provavelmente seria melhor assim:
//--- lista de caracteres a serem calculadosstring symbols[] = {"EURUSD", "GBPUSD", "USDJPY", "USDCAD", "USDCHF"};
int size =::ArraySize(symbols);
//--- matriz e vetor para obter preços Fecharmatrix rates_mx(InBars, size);
vector close_vc;
for(int i = 0; i < size; i++)
{
::ResetLastError();//--- obter preços de fechamento em um vetorif(close_vc.CopyRates(symbols[i], InTF, COPY_RATES_CLOSE, 1, InBars))
{
//--- inserir o vetor na matriz de séries temporais
rates_mx.Col(close_vc, i);
::PrintFormat("%d. %s: %d Preços de fechamento adicionados à matriz.", i + 1, symbols[i],close_vc.Size());
//--- gera os primeiros 20 valores do vetor para depuraçãoint digits = (int)::SymbolInfoInteger(symbols[i], SYMBOL_DIGITS); ::Print(VectorToString(close_vc, 20, digits));
}
else
{
::PrintFormat("vector.CopyRates(%s,COPY_RATES_CLOSE) failed. Error %d", symbols[i], ::GetLastError());return;
}
}
Não é um vetor, é uma matriz, tenho o código acima
Você precisa descobrir isso sozinho ou convencer o compilador. Veja exemplos, leia.
Então, como você obtém uma coluna de uma matriz?
Você pode obter um vetor de uma matriz usando Col
O que você quer dizer com "retirar"? Remover?
Você pode obter um vetor de uma matriz usando Col
O que você quer dizer com "retirar"? Remover?
Retirar em termos de convertê-lo em algo com que se possa trabalhar.
Mostrei acima o código que falhou com o Col, que era uma matriz, não um vetor, como você escreveu.
Você precisa descansar e reler todas as suas perguntas neste osbud amanhã
Obrigado por sua preocupação!
A maioria das perguntas foi resolvida com sua ajuda.
Vou esperar até amanhã, talvez você possa responder minha pergunta mais tarde.
Ninguém lê, mas estão dispostos a apoiar. Acho que o vi no tópico sobre aprendizado de máquina? Se sim, você deve entender o que está escrito no artigo.
Provavelmente há um pequeno erro aqui:
Deveria ser assim:
Outro pequeno erro na seção"Copying timeseries to matrix or vector":
Provavelmente seria melhor assim:
Provavelmente há um pequeno erro aqui:
Deveria ser assim:
Obrigado, corrigido