Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
- Просмотров:
- 4054
- Рейтинг:
- Опубликован:
- 2015.05.02 00:26
- Обновлен:
- 2015.05.29 11:02
-
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Этот пример показывает принцип использования механизма передачи кастомных фреймов данных с агентов во время массового перебора паролей в задаче поиска MD5 хешей.
Удаленным агентам отсылаются блоки заданий по подбору пароля из MD5 хеша, а в ответ они присылают найденные пароли. Найденный пароль печатается в окне "Эксперты" основного терминала. В режиме реального времени показываются скоростные характеристики расчетной сети и прогресс выполнения.
Тестовый MD5 хеш "ab4f63f9ac65152575886860dde480a1" за пару секунд нашелся в виде 6 символьного пароля 'azerty'.
Другой особенностью программы является демонстрация принципа виртуализации входных нелинейных и нечисловых параметров в числовой счетчик. Для этого всем входным параметрам ставим флаг sinput "не участвует в переборе" и добавляем рабочий счетчик под именем Counter, который и будем крутить программно:
//--- input parameters sinput int PasswordLengthFrom =6; // Password Length From sinput int PasswordLengthTo =6; // Password Length To sinput BruteForceEnumType BruteforceType =BRUTEFORCE_SET_ASCII_DIGITS;// Bruteforce Attack Charset sinput string BruteforceCharacters =""; // Bruteforce Custom Charset sinput HashEnumType HashType=HASH_TYPE_SINGLE; // Hash Type sinput string HashList="ab4f63f9ac65152575886860dde480a1"; // Hash Source of azerty // MD5 hash or filename (1 hash in line) sinput long Counter=0;
Используя гибридный мастер режим эксперта, который позволяет запускать одну копию эксперта на самом терминале в дополнение к копиям на удаленных и локальных агентах, мы можем:
- управлять удаленными агентами, раздавая им задания
- получать фреймы данных от удаленных агентов
- обрабатывать полученные данных, сохранять их или визуализировать на графике
На скриншоте выше видно, что мастер эксперт успешно визуализирует скорость перебора паролей в расчетной сети.
Чтобы активировать мастер режим, нужно добавить в эксперта обработчик OnTesterInit, где можно прочитать все входные параметры, преобразовать их в линейный счетчик и явным образом программно переопределить режим работы любой входной переменной. В коде ниже показан способ преобразования нечисловых/нелинейных параметров в double счетчик с последующей установкой новых пределов и режима работы числового параметра Counter:
void OnTesterInit() { double passes=0.0; //--- подсчитаем пределы if(!ExtScanner.CalculatePasses(PasswordLengthFrom,PasswordLengthTo,BruteforceType,BruteforceCharacters,passes)) return; ParameterSetRange("Counter",true,0,0,1,1+long(passes/MIN_SCAN_PART));
Хотя изначально параметр Counter был заблокирован, но затем он был программно переопределен как активный рабочий счетчик с явными пределами. Это означает, что тестер будет перебирать именно этот параметр.

Индикатор Bezier с возможностью изменения таймфрейма индикатора во входных параметрах.

Индикатор BBflat_sw с возможностью изменения таймфрейма индикатора во входных параметрах.

Индикатор Gaus_MA с дополнительной индикацией силы тренда цветными точками на основе алгоритма стандартного отклонения.

Индикатор ATRratio с возможностью изменения таймфрейма индикатора во входных параметрах.