Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1217

 

Всем доброго времени суток! У меня вопрос по MQL4

По умолчанию массив индексируется от 0 и по возрастанию

ВОПРОС

При помощи какой функции, или языковой конструкции можно индексировать вышеуказанный массив на 10 значений  произвольными целыми значениями и в произвольном порядке? Например, так как ниже. Буду очень признателен , если продемонстрируете этот метод при помощи соответствующего кода.

Спасибо.

 
ANDREY:

Всем доброго времени суток! У меня вопрос по MQL4

По умолчанию массив индексируется от 0 и по возрастанию

ВОПРОС

При помощи какой функции, или языковой конструкции можно индексировать вышеуказанный массив на 10 значений  произвольными целыми значениями и в произвольном порядке? Например, так как ниже. Буду очень признателен , если продемонстрируете этот метод при помощи соответствующего кода.

Спасибо.

перемешать случайно, буфер или индексы (MathRand)

 
Valeriy Yastremskiy:

В индикаторе в структуре алерт. 5 строка снизу Alert(b); 

Cудя по всему это количество миллисекунд, прошедших со старта системы)

Спасибо!
 
Taras Slobodyanik:

перемешать случайно, буфер или индексы (MathRand)

По поводу расположения индексов в произвольной последовательности , я понял что это делается при помощи математической функции MathRand()

Вопрос А при помощи какой функции я могу значения индексов , которые есть по умолчанию (0,1,2,3,4,5,6...9) заменить нужными мне значениями индексов , например ( 45,90,119,120,234,336,338,564,607,901). Данная операция мне нужна НЕ для написания индикатора.

Спасибо.

 
ANDREY:

По поводу расположения индексов в произвольной последовательности , я понял что это делается при помощи математической функции MathRand()

Вопрос А при помощи какой функции я могу значения индексов , которые есть по умолчанию (0,1,2,3,4,5,6...9) заменить нужными мне значениями индексов , например ( 45,90,119,120,234,336,338,564,607,901). Данная операция мне нужна НЕ для написания индикатора.

Спасибо.

Создать второй буфер - буфер индексов.
Заполнить его перемешанными значениями, от 0 до размер_буфера - вот и индексы)

..или просто брать случайное число и по нему получать значение буфера.
 
Taras Slobodyanik:

Создать второй буфер - буфер индексов.
Заполнить его перемешанными значениями, от 0 до размер_буфера - вот и индексы)

..или просто брать случайное число и по нему получать значение буфера.

Спасибо за помощь.

Вот простой код

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

Через 10 минут массив будет заполнен значениями цены с индексами от 0 до 9.
Если Вам не сложно, внесите изменения в код что бы массив был заполнен теми же значениями, но индексы у этого массива были в следующей последовательности  45,90,119,120,234,336,338,564,607,901

Перемешивать значения индексов пока не нужно.
Спасибо за помощь.

Просто в моих стратегиях нет ни каких индикаторов. Поэтому с буферами я не знаком. Как я понял ,буфер - это элемент индикатора.

 
ANDREY:

Спасибо за помощь.

Вот простой код

Через 10 минут массив будет заполнен значениями цены с индексами от 0 до 9.
Если Вам не сложно, внесите изменения в код что бы массив был заполнен теми же значениями, но индексы у этого массива были в следующей последовательности  45,90,119,120,234,336,338,564,607,901

Перемешивать значения индексов пока не нужно.
Спасибо за помощь.

Просто в моих стратегиях нет ни каких индикаторов. Поэтому с буферами я не знаком. Как я понял ,буфер - это элемент индикатора.

 Индекс 901 это значит в массиве 902 элемента. 
Mass[45]=Max[0].....Mass[901]=Max[9]
 
Valeriy Yastremskiy:
 Индекс 901 это значит в массиве 902 элемента. 
Mass[45]=Max[0].....Mass[901]=Max[9]

Нет ... в массиве 10 элементов. И эти 10 индексов этих 10 элементов нужно обозначить этими значениями в этой последовательности   (0)45,  (1) 90,  (2) 119,  (3) 120,  (4) 234,  (5) 336,  (6) 338,  (7) 564,  (8) 607,  (9) 901

В скобках - прежние значения индексов. И на их место нужно поставить новые значения без скобок.


То есть любое количество элементов массива могу я проиндексировать произвольной последовательностью  чисел , а не в порядке 0,1,2,3,4........100

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

Нет ... в массиве 10 элементов. И эти 10 индексов этих 10 элементов нужно обозначить этими значениями в этой последовательности   (0)45,  (1) 90,  (2) 119,  (3) 120,  (4) 234,  (5) 336,  (6) 338,  (7) 564,  (8) 607,  (9) 901

В скобках - прежние значения индексов. И на их место нужно поставить новые значения без скобок.


То есть любое количество элементов массива могу я проиндексировать произвольной последовательностью  чисел , а не в порядке 0,1,2,3,4........100

И́ндекс (лат. index — список, реестр, указатель, а также указательный палец) — число, буквы или другая комбинация символов, указывающая место элемента в массиве.

Индекс 45 указывает на 45-ый элемент списка, индекс 90 - на 90-ый элемент.

 
ANDREY:

Нет ... в массиве 10 элементов. И эти 10 индексов этих 10 элементов нужно обозначить этими значениями в этой последовательности   (0)45,  (1) 90,  (2) 119,  (3) 120,  (4) 234,  (5) 336,  (6) 338,  (7) 564,  (8) 607,  (9) 901

В скобках - прежние значения индексов. И на их место нужно поставить новые значения без скобок.


То есть любое количество элементов массива могу я проиндексировать произвольной последовательностью  чисел , а не в порядке 0,1,2,3,4........100

Что то не понял, индекс массива это индекс от 0 до N. А то что Вы хотите больше похоже на словарь с хешами. Как это делать в массиве не знаю и думаю что это нельзя сделать в обычном массиве. Есть библа Дженерик классов со словарями в МТ. Должно помочь.

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