Смотри, как бесплатно скачать роботов
Ищи нас в Telegram!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Библиотеки

CDictionary - библиотека для MetaTrader 5

Просмотров:
1785
Рейтинг:
(27)
Опубликован:
2017.11.28 08:49
Обновлен:
2017.12.01 11:38
\MQL5\Scripts\ \MQL5\Include\
MQL5 Фриланс Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

Реализация такой структуры данных, как словарь (ассоциативный массив) на MQL5 на основе CArrayObj и CList.

Функция хэширования

FNV-1a

Использование

Примитивы:

CDictionary *dict=new CDictionary();
//установка
dict.Set<string>("costarring","liquid");
dict.Set<double>("liquid",0.1);

//получение - вариант 1
string variant1 = dict.Get<string>("costarring");
Print(variant1);

//получение - вариант 2
double variant2 = 0;
dict.Get<double>("liquid",variant2);
Print(variant2);

Также в нем могут содержаться указатели на объекты (но не сами объекты или структуры):

dict.Set<CObject*>("object",new CObject());

Устранение противоречий

  1. Каждая запись имеет свой собственный хэш.
  2. Если две или более записи имеют один и тот же хэш, они сравниваются по ключу и имени типа. Это дает возможность сохранять несколько записей с одинаковым ключом (но различными типами).
  3. При использовании Set<T>, если уже есть запись с таким же ключом и именем, то переданное значение будет рассматриваться как замена существующей записи, а не как новая. Это же относится и к указателям.

Перевод с английского произведен MetaQuotes Ltd.
Оригинальная публикация: https://www.mql5.com/en/code/19314

PS Magicas - Three moving averages PS Magicas - Three moving averages

PS Magicas - три скользящих средних, которые задают цель и возможные входы.

KDJ Expert Advisor KDJ Expert Advisor

Эксперт по индикатору "KDJ Indicator"

Daily BreakPoint Daily BreakPoint

Стратегия пробоя дневного бара.

FractalLevels_System FractalLevels_System

Индикатор, реализующий пробойную систему с использованием канала индикатора Fractal_Levels.