Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1217

 

Olá a todos, eu tenho uma pergunta sobre a MQL4

Por padrão, a matriz é indexada de 0 e em ordem ascendente

PERGUNTAS E RESPOSTAS

Com que função, ou construção de linguagem, a matriz acima pode ser indexada por 10 valores com valores inteiros arbitrários e em qualquer ordem? Por exemplo, como abaixo. Eu ficaria muito grato se você pudesse demonstrar este método com um código apropriado.

Obrigado.

 
ANDREY:

Olá a todos, eu tenho uma pergunta sobre a MQL4

Por padrão, a matriz é indexada de 0 e em ordem ascendente

Q:

Com que função, ou construção de linguagem, posso indexar a matriz acima a 10 valores com valores inteiros arbitrários e em qualquer ordem? Por exemplo, como abaixo. Eu ficaria muito grato se você pudesse demonstrar este método com um código apropriado.

Obrigado.

Baralhar aleatoriamente, tampão ou índices(MathRand)

 
Valeriy Yastremskiy:

No indicador na estrutura Alerta. A 5ª linha do fundo éAlerta(b);

Este parece ser o número de milissegundos desde o início do sistema)

Obrigado!
 
Taras Slobodyanik:

Baralhar aleatoriamente, tampão ou índices (MathRand)

Quanto à disposição dos índices em seqüência aleatória, entendo que isso é feito usando a função MathRand().

Minha pergunta é que função pode me ajudar a substituir os valores de índice, que estão em default (0,1,2,3,4,5,6...9) por valores de índice necessários para mim, por exemplo ( 45,90,119,120,234,336,338,564,607,901). Eu não preciso desta operação para escrever um indicador.

Obrigado.

 
ANDREY:

Quanto à disposição dos índices em seqüência arbitrária, entendo que isso é feito com a função MathRand().

A pergunta E com a ajuda de qual função posso substituir os valores de índice, que estão em default (0,1,2,3,4,5,6...9) por valores de índice necessários para mim, por exemplo ( 45,90,119,120,234,336,338,564,607,901). Eu não preciso desta operação para escrever um indicador.

Obrigado.

Criar um segundo buffer - buffer de índice.
Preencha-o com valores mistos, de 0 a size_buffer - são os índices)

ou simplesmente pegue um número aleatório e use-o para obter o valor tampão.
 
Taras Slobodyanik:

Criar um segundo buffer - um buffer de índice.
Preencha-o com valores embaralhados, de 0 a size_buffer - isso é o índice)

ou simplesmente pegue um número aleatório e use-o para obter o valor tampão.

Obrigado pela ajuda.

Aqui está um código simples

double MaX[10];
int a;
void OnTick()
{
if (Minute()!=Min)
{
if (a==9)
{
a=0;
}
a++;
MaX[a]=Bid;
Min=Minute();
}
}

Em 10 minutos o array será preenchido com valores de preços com índices de 0 a 9.
Se você não se importa, por favor mude o código para que o array seja preenchido com os mesmos valores, mas os índices deste array estão na seguinte ordem 45,90,119,120,234,336,338,564,607,901

Ainda não há necessidade de embaralhar os valores do índice.
Obrigado pela ajuda.

Eu simplesmente não tenho nenhum indicador em minhas estratégias. Eu não estou familiarizado com amortecedores. Tanto quanto sei, o buffer é um elemento de um indicador.

 
ANDREY:

Obrigado por sua ajuda.

Aqui está um código simples

Em 10 minutos o array será preenchido com valores de preços com índices de 0 a 9.
Se você não se importa, por favor mude o código para que o array seja preenchido com os mesmos valores, mas os índices deste array são os seguintes: 45,90,119,120,234,336,338,564,607,901

Ainda não há necessidade de embaralhar os valores do índice.
Obrigado pela ajuda.

Eu simplesmente não tenho nenhum indicador em minhas estratégias. Eu não estou familiarizado com amortecedores. Tanto quanto sei, o buffer é um elemento de um indicador.

O índice 901 significa que existem 902 elementos na matriz.
Mass[45]=Max[0].....Mass[901]=Max[9]
 
Valeriy Yastremskiy:
O índice 901 significa que existem 902 elementos na matriz.
Mass[45]=Max[0].....Mass[901]=Max[9]

Não ... Há 10 elementos na matriz. E estes 10 índices destes 10 elementos devem ser indicados por estes valores nesta seqüência (0)45, (1) 90, (2) 119, (3) 120, (4) 234, (5) 336, (6) 338, (7) 564, (8) 607, (9) 901

Entre parênteses estão os valores anteriores dos índices. Eles devem ser substituídos por novos valores sem parênteses.

de elementos da matriz pode ser indexado por qualquer seqüência de números, e não na ordem 0,1,2,3,4........ 100

Документация по MQL5: Основы языка / Переменные
Документация по MQL5: Основы языка / Переменные
  • www.mql5.com
Переменные должны быть объявлены перед их использованием. Для идентификации переменных используются уникальные имена. Описания переменных используются для их определения и объявления типов. Описание не является оператором. Индексом массива может быть только целое число. Допускаются не более чем четырехмерные массивы. Нумерация элементов массива...
 
ANDREY:

Não ... há 10 elementos na matriz. E estes 10 índices destes 10 elementos devem ser indicados por estes valores nesta seqüência (0)45, (1) 90, (2) 119, (3) 120, (4) 234, (5) 336, (6) 338, (7) 564, (8) 607, (9) 901

Entre parênteses estão os valores anteriores dos índices. Eles devem ser substituídos por novos valores sem parênteses.


Ou seja, posso indexar qualquer número de elementos em uma matriz por uma seqüência arbitrária de números, não na ordem 0,1,2,3,4........ 100

Umíndice(lat.index significa uma lista, registro, indexador ou indicador) é um número, letra ou outra combinação de símbolos que indica onde um item está localizado em uma matriz.

O índice 45 indica o 45º elemento da lista, o índice 90 indica o 90º elemento.

 
ANDREY:

Não ... há 10 elementos na matriz. E estes 10 índices destes 10 elementos devem ser indicados por estes valores nesta seqüência (0)45, (1) 90, (2) 119, (3) 120, (4) 234, (5) 336, (6) 338, (7) 564, (8) 607, (9) 901

Entre parênteses estão os valores anteriores dos índices. Eles devem ser substituídos por novos valores sem parênteses.


Ou seja, posso indexar qualquer número de elementos da matriz por qualquer seqüência de números, e não na ordem 0, 1, 2, 3, 4........ 100

Eu não entendo, o índice da matriz é um índice de 0 a N. E o que você quer é mais como um dicionário com hashes. Não sei como fazê-lo em uma matriz e não acho que você possa fazê-lo em uma matriz regular. Há uma biblioteca de classe genérica com dicionários em MT. Isso deve ajudar.

Библиотека Generic классов - ошибки, описание, вопросы, особенности использования и предложения
Библиотека Generic классов - ошибки, описание, вопросы, особенности использования и предложения
  • 2017.12.07
  • www.mql5.com
С 6 декабря 2017 года в стандартную поставку MetaTrader 5 стали входить так называемые Generic-классы, реализующие эффективные алгоритмы для хранен...