Скрипт secScanner
[
сканер
scanner
скрипт
робот
lua
qlua
квик
quik
]
Скрипт демонстратор.
В данном скрипте показано как организовать постоянную работу скрипта с корректным переходом через сутки.
Подключение и использование библиотеки логирования
Чтение и переопределение параметров из внешнего файла.
Как сканировать все инструменты класса, проверять параметры из “Таблицы текущих торгов”.
Подключение и использование библиотеки оповещений. Описание использования и настройки библиотеки оповещения
Проигрывание звукового файла по событию. (Необходимо установить библиотеку w32.dll)
Скрипт сканирует все инструменты указанных классов, проверяет на сильное изменение цены и объема. По событию отправляет оповещение.
Для этого используются конструкторы CheckProcessor и CheckEMAProcessor. Это “замыкания”, создаваемые для каждого инструмента.
Для фильтрации также используется FilterProcessor. В примере отбираются инструменты с дневным оборотом от 7 000 000 руб.
FilterProcessor принимает параметры
- @param Sec table - таблица с описанием инструмента
- @param info_string string - строка параметра “Таблицы текущих торгов”
- @param filter_limit number - значение фильтра
- @param sign number - знак. 1 - больше, -1 - меньше
- @return function
CheckProcessor и CheckEMAProcessor принимают параметры
- @param Sec table - таблица с описанием инструмента
- @param info_string string - строка параметра “Таблицы текущих торгов”
- @param check_interval number - интервал проверки в сек.
- @param msg_interval number - интервал отправки сообщений в сек.
- @param change_limit number - предел изменения параметра для наступления события
- @return function
FilterProcessor - конструктор функции проверки параметра, указанного в параметре info_string. Если полученное значение выше(ниже) чем порог filter_limit, то возвращается true.
CheckProcessor - конструктор функции контроля изменения параметра, указанного в параметре info_string на процент, указанный в параметре change_limit.
Проверка осуществляется раз check_interval секунд. В примере показан контроль изменения параметра “Цена последней сделки”. Интервал проверки 1 сек. Порог 2%.
Если “Цена последней сделки” изменится выше порога за 1 сек., то происходит обработка события.
Обработка события осуществляется раз msg_interval секунд. Это необходимо, чтобы сообщения не приходили очень часто.
CheckEMAProcessor похож по смыслу и использованию на CheckProcessor. Основное отличие в том, что происходит не просто проверка параметра info_string, а рассчитанной EMA на его основе. Поэтому интервал проверки здесь выше чем в CheckProcessor. В примере продемонстрирована проверка изменения параметра “Оборот в деньгах”. Интервал проверки 120 сек. Период расчета EMA - 5 значений. Порог 3,5. Т.о. раз в 120 секунд получаются данные о “Оборот в деньгах”, рассчитывается прирост от прошлой проверки и записывается как значение для расчета EMA. Когда наберется достаточно значений для контроля, происходит анализ текущего изменения с прошлыми. Если текущий прирост выше чем 3.5*EMA, то происходит обработка события.