Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 731
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Não são 10.000 x 10.000 bidimensionais?
e tudo isso...
Bem, sim, é bidimensional, não é assim que eu o digo, aparentemente não é uma matriz mas uma matriz. Será que uma matriz implica multidimensionalidade?
O que está a travar neste código não é a escrita de uma matriz mas sim um loop in a loop.
Concordo. Não foi isso que foi dito e foi mal compreendido.
O que está a travar neste código não é a escrita de uma matriz mas sim um loop in a loop.
É necessário portar para outro ambiente de programação, ou este não é um problema comum a todos os tipos de linguagens? Qual pode ser a solução para acelerar?
Se um laço e aumentar o valor da variável a partir do laço eliminado
{
int arr++
if(arr=ARRAY_SIZE_X) {z++;arr=0;}
arra[q]=sm.d[q].m[nBar-z]; // M(I) SMA
}
//--- запишем данные массива в конец файла FileTell IsFileLineEnded
FileSeek(handle,0,SEEK_END);
FileWriteArray(handle,arra);
Posso tê-lo verificado mas não quero incomodar o computador - se não acelerar, será colocado stress extra no disco rígido novamente))))
É necessário portar para outro ambiente de programação, ou este não é um problema comum a todos os tipos de linguagens? Qual pode ser a solução para acelerar?
Se um laço e aumentar o valor da variável de um laço apagado nele, irá acelerar?
Eu poderia verificá-lo, mas não quero torturar o computador, se não for acelerado, voltará a colocar tensão extra no disco rígido))))
Não se pode escrever a matriz depois do laço? É possível fazê-lo apenas em cada linha? Estou a referir-me à primeira variante em que o laço está no laço.
Claro que, além disso, é possível inserir um contador e escrever neste contador, não cada linha separadamente, mas é pouco provável que acelere tanto o processo, que seja perceptível sem medição.
Um conjunto deste tamanho não caberia na RAM atribuída.
Claro que, além disso, pode inserir um contador e gravar por este contador, não cada fila separadamente, mas é pouco provável que acelere tanto o processo que será perceptível sem medição.
Por favor, informe, a documentação diz (e o compilador também) que:"AbandeiraAS_SERIES não pode ser hasteada para arrays multidimensionais"
Pergunta: Como posso ordenar uma matriz em mql5?
void Func()
{
double m[][3];
if(условия)
{
// много кода
c++;
ArrayResize(m, c);
m[c-1][0]= Lots();
m[c-1][1]= Ticket();
m[c-1][2]= Profit();
}
BySort(m); // передаём в функцию "BySort"
}
void BySort(double &mas[][3])
{
// Сортируем по размеру лота от большего к меньшему
ArraySort(mas);
ArraySetAsSeries(mas,true); // при такой записи mql5 ругается, в mql4 работает
... здесь работа с массивом и основной код
}Por favor, informe, a documentação diz (e o compilador também) que:"A bandeiraAS_SERIES não pode ser hasteada para arrays multidimensionais".
Pergunta: como ordenar a matriz:
if(условия)
{
// много кода
c++;
ArrayResize(m, c);
m[c-1][0]= Lots();
m[c-1][1]= Ticket();
m[c-1][2]= Profit();
}
void BySort(double &mas[][3])// выделенное лишнее
{
// Сортируем по размеру от большего к меньшему
ArraySort(mas, WHOLE_ARRAY, 0, MODE_DESCEND); // вот это не работает в mql5
ArraySort(mas);
ArraySetAsSeries(mas,true); // а при такой записи ругается // это тоже лишнее
}
1 - muda a direcção da indexação das células da matriz sem alterar o seu conteúdo e 2 - muda o conteúdo das células sem alterar a sua indexação para que sejam ordenadas em ordem ascendente ou descendente.
Além disso, a documentação diz que a matriz só pode ser ordenada pela primeira dimensão.
AS_SERIES e triagem são conceitos completamente diferentes.
1 - muda a direcção da indexação das células da matriz sem alterar o seu conteúdo, e 2 - sem alterar a indexação muda o conteúdo das células para que sejam ordenadas em ordem ascendente ou descendente.
Além disso, a documentação diz que a matriz só pode ser ordenada pela primeira dimensão.
Aqui, ordena-se por ordem ascendente
Como é que o inverto agora? Tem de estar em ordem decrescente, está a ordenar lotes.
Aqui, ordena-se por ordem ascendente
Como é que o inverto agora? Precisa dele por ordem decrescente, ele classifica os lotes.
E a opção mais idiota é reescrever todo o conjunto na ordem inversa. Vale a pena?
Aqui, ordena-se por ordem ascendente
Como é que o inverto agora? Precisa dele por ordem decrescente, ele classifica os lotes.
E se, após a classificação, alterar a ordem de indexação usando o ArraySetAsSeries?
Depois é assim: