Germany | Finland | Saint Petersburg | Drive

Market Scanner

4.5/5 оценка (16 голосов)
  • Размер: 825.50 KB
  • Версия: 1.22
  • Просм: 3592
  • Добавлено: 09.09.16
  • Скачано: 1025
  • Изменено: 24.02.18

Инструмент, позволяющий просканировать сегмент рынка и проверить выполнение произвольного условия для каждого из инструментов. Условия задаются математическим выражением с использованием арифметических, логических, статистических функций, а также функций, рассчитывающих индикаторы технического анализа. В качестве исходных данных можно использовать как историю цен инструментов, так и историю изменений его параметров.

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

 

Таким образом, используя этот индикатор, можно (например):

  • Узнать, в каких инструментах размах текущей строки (High-Low) больше заданного количества процентов
  • Узнать, в каких инструментах текущая свеча ниже предыдущей на заданное количество процентов
  • Узнать, в каких инструментах линия цены пробила линию скользящей средней
  • Узнать, в каких инструментах произошел пробой канала Дончиана
  • На каких инструментах сформировался верхний или нижний фрактал
  • Узнать был ли гэп на открытии и каков его размер
  • Узнать момент пересечения двух, трех ... 15 .. индикаторов, построенный по инструменту
  • И так далее. Язык описания условий аналогичен языку Lua и предоставляет неограниченные возможности для описания условий. Набор встроенных индикаторов пополняется.

Более подробное описание сканера

Примеры задания условий находятся в файле scaner.ini

 

Сигнализация о срабатывании условия может быть несколькими способами:

  1. Сообщением в экранной таблице скрипта
  2. Всплывающим сообщением на экране
  3. Проигрыванием мелодии (как на срабатывание, так и на прекращение срабатывания условия)
  4. Отсылкой почтового сообщения (как на срабатывание, так и на прекращение срабатывания условия)
  5. Запуском внешней программы
  6. Голосовым сообщением

Для любого условия можно задать свой набор типов оповещений. Оповещение можно получать как на начало выполнения условия, так и на прекращение выполнения. Можно получать оповещения обоих типов.

Одновременно можно анализировать произвольное количество условий по произвольному количеству инструментов. Для каждого условия задаётся подмножество инструментов, для которых это условие необходимо проверять. Подмножество задаётся привычным способом - шаблонами, аналогичными маскам файлов Windows.

Ограничений на количество проверяемых условий и инструментов нет, однако слишком большое количество (более 2000-3000 одновременно) может превысить возможности терминала quik и вашей аппаратуры.

ИСПОЛЬЗОВАНИЕ:

  1. Создайте папку с произвольным именем и разархивируйте с нее содержимое архива.
  2. Если вы знаете пароль к полной версии, распакуйте в эту же папку (с заменой) файл Scaner_Full.rar. Если пароль вам неизвестен, пропустите этот пункт.
  3. Отредактируйте файл Scaner.ini, задав необходимые условия срабатывания оповещений. Правила описания событий находятся в самом файле. Обязательно прочтите его внимательно.
  4. Запустите Scaner.lua как обычный lua-скрипт (Таблицы-Lua-Доступные скрипты).
  5. Ждите сигналы cool


Собираю пожертвования для покупки курса охранной дрессировки для моей трехцветной приблудившейся кошки. Вот этой:

Всем жертвователям в качестве благодарности высылается пароль от полной версии скрипта. Сумма пожертвования не регламентируется (соблюдайте приличия wink). Номер карты для перевода приведен на картинке:

И да, карта актуальна.

 

Демонстрационная версия работает на интервалах от 1 минуты до 4 минут включительно. Полная версия ограничений не имеет.

Сложность условий ограничена лишь вашей фантазией и способностью эту фантазию написать в виде формулы. Для особых случаев, когда условием записать одним выражением затруднительно, предусмотрено подключение плагинов.

Вопросы по сканеру можно задавать на форуме.

 

История изменений:

1.22
  • Исправлен расчет индикатора STDEV. Соответственно стали точнее работать индикаторы, которые его используют в своих расчетах (Bollinger Bands и другие)
1.21
  • Добавлен расчет индикатора MACD (функции MACD() и MACDS())
  • Добавлен расчет индикатора MACD Histogram (функция MACDH)
  • Проверка на корректность задания выражения производится при старте скрипта
  • Версия скрипта выведена в заголовок таблицы
  • Ускорена работа
1.20
  • Добавлен индикатор Keltner Channel
1.19
  • Расчет ATR приведен в соответствие с расчетом в терминале quik
1.18
  • Добавлен индикатор HMA - Hull Moving Average
1.17
  • Добавлен индикатор VHF - Вертикальный горизонтальный фильтр
1.16
  • Добавлена настраиваемая сортировка экранной таблицы
  • Убрано мелькание экранной таблицы
1.15

Исправлен расчет верхней линии индикатора Bollinger Bands

1.14

Добавлен индикатор "Индекс Вариации"

1.13

Добавлены функции SCALE и STEP

Устранена неточность, из-за которой некоторые индикаторы рассчитывались всегда по цене CLose

1.12

Добавлен индикатор CMO

1.11

Добавлен индикатор Aroon

1.10

Добавлена функция PARAM для получения значений параметров из таблицы текущих торгов

1.9

Добавлен индикатор фракталов

1.8

Добавлена функция IIF (Immediate IF)

1.7

Добавлено голосовое информирование.

Добавлены функции CLASS() и CODE()

1.6

Добавлена скользящая средняя ALMA

1.5

Добавлен индикатор ROC (Rate Of Change)

Добавлен индикатор Williams % Range

Улучшен синтаксический разбор условий и диагностика ошибок

1.4

Добавлены индикаторы TR (True Range) и ATR (Average True Range)

Принципиально ускорен расчет всех индикаторов

Добавлена функция FMT

1.3 Добавлен индикатор Bollinger Bands
1.2 Добавлен индикатор Momentum
1.1 Добавлен индикатор RSI
1.0 Исправлены мелкие недочёты.
0.99 alpha Начальная тестовая версия.
Комментарии   
# sekret_x 29.09.2016 12:11
Здравствуйте Михаил.
Я правильно понимаю, что для работы сканера нет необходимости открывать график для каждого инструмента и индикатора и присваивать им уникальные названия???
Ответить | Ответить с цитатой | Цитировать
# admin 29.09.2016 12:20
Добрый день!

Да, именно так. Скрипт все сделает сам.

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

Поскольку версия 0.99 является тестовой, буду рад отзывам.
Ответить | Ответить с цитатой | Цитировать
# sekret_x 29.09.2016 12:23
И ещё не нашёл в ини файле частоту скана рынка. Она постоянная какая то или привязывается к таймфрейму???

А по индикаторам сразу бы не отказался от RSI и Volume Oscillator))) извините за нескромность
Ответить | Ответить с цитатой | Цитировать
# admin 29.09.2016 12:41
Сканирование рынка происходит адаптивно по каждой бумаге отдельно исходя из частоты изменения цены последней сделки по ней.

Таким образом, если выбрано обозримое (неогромное, менее 1000) бумаг и процессор не перегружен, то сканирование бумаги идет сразу после получения каждого тика по ней.

Если ядро процессора, на котором крутится скрипт, нагружено сильно, то сканирование произойдет с некоторой задержкой, измеряемой в единицах секунд.
Ответить | Ответить с цитатой | Цитировать
# admin 29.09.2016 14:50
Цитирую sekret_x:
не отказался от RSI и Volume Oscillator))) извините за нескромность


Подкрепляйте желание покупкой полной версии :lol: :lol: :lol:
Ответить | Ответить с цитатой | Цитировать
# sekret_x 29.09.2016 17:49
Цитирую admin:
Цитирую sekret_x:
не отказался от RSI и Volume Oscillator))) извините за нескромность


Подкрепляйте желание покупкой полной версии :lol: :lol: :lol:


Понял, учту :lol: :lol: :lol: , но не сегодня
Ответить | Ответить с цитатой | Цитировать
# Юрий77 07.10.2016 09:24
вопрос
По индикатору ZigZag - этот скрипт может давать оповещение - например по количеству процентов отклонения от максимума или минимума индикатора??
Ответить | Ответить с цитатой | Цитировать
# admin 07.10.2016 10:02
Юрий.

Сейчас индикатор ZigZag в сканер еще не встроен. Если его туда добавить - то конечно сможет.
Ответить | Ответить с цитатой | Цитировать
# Юрий77 07.10.2016 14:23
Тогда не совсем понял - сканер работает только со встроенными туда индикаторами?
а как же фраза -
"Узнать момент пересечения двух, трех ... 15 .. индикаторов, построенный по инструменту" - ???
Ответить | Ответить с цитатой | Цитировать
# Юрий77 07.10.2016 14:25
а какие индикаторы тогда встроены ?
Огласите весь список - пожалуйста?))
Ответить | Ответить с цитатой | Цитировать
# admin 07.10.2016 14:31
Некоторые индикаторы уже встроены и их можно использовать.

Поскольку разновидностей индикаторов бесконечное множество, все из них встроить невозможно. Наиболее востребованные индикаторы будут добавляться соразмерно пожеланиям трудящихся и их меценатским порывам :sad:
Ответить | Ответить с цитатой | Цитировать
# Юрий77 07.10.2016 14:44
Ну так а какие все же уже есть?
Ответить | Ответить с цитатой | Цитировать
# admin 07.10.2016 15:03
Они перечислены в ini файле. Оформлены в виде функций.
Ответить | Ответить с цитатой | Цитировать
# Senex 07.10.2016 17:14
Здравствуйте Михаил! Скажите можно ли в MARKET SCANER сканировать все тикеры рынка forts или micex, если да то как это сделать?
Ответить | Ответить с цитатой | Цитировать
# admin 07.10.2016 20:12
Здравствуйте.

Для этого потребуется создать несколько секций, по одной на каждый класс бумаг, торгующихся на рынке. И в каждой секции указать в качестве кода бумаги * (звездочку)
Ответить | Ответить с цитатой | Цитировать
# Senex 07.10.2016 20:23
Скажите чтобы на днях сканировать, в колонке с указанием временного интервала нужно указывать D
Ответить | Ответить с цитатой | Цитировать
# admin 07.10.2016 21:32
Цитирую Senex:
Скажите чтобы на днях сканировать, в колонке с указанием временного интервала нужно указывать D


Задать таймфрейм можно несколькими способами:
Параметр Значение интервала
INTERVAL_TICK Тиковые данные
INTERVAL_M1 1 минута
INTERVAL_M2 2 минуты
INTERVAL_M3 3 минуты
INTERVAL_M4 4 минуты
INTERVAL_M5 5 минут
INTERVAL_M6 6 минут
INTERVAL_M10 10 минут
INTERVAL_M15 15 минут
INTERVAL_M20 20 минут
INTERVAL_M30 30 минут
INTERVAL_H1 1 час
INTERVAL_H2 2 часа
INTERVAL_H4 4 часа
INTERVAL_D1 1 день
INTERVAL_W1 1 неделя
INTERVAL_MN1 1 месяц

можно сокращенно

TICK M1 M2 M3 и так далее

можно количеством секунд. 180 это трехминутный интервал

можно даже выражением. Например, дневной интервал можно задать как 24*60*60
Ответить | Ответить с цитатой | Цитировать
# Senex 08.10.2016 04:58
Спасибо Михаил за ответы и самое главное за сканер! Рекомендую всем, в торговле просто незаменим! Еще пару пожеланий дополнить сканер, отбором по вашей скользящей средней от объема и отбором по обороту с текущей таблицы параметров, а то много неликвида попадает в таблицу!
Ответить | Ответить с цитатой | Цитировать
# admin 08.10.2016 12:00
Спасибо :roll:

Касаемо скользящей средней по объёмы - вы можете ее рассчитать, передавая в скользящую среднюю в качестве поля field V
Ответить | Ответить с цитатой | Цитировать
# Senex 08.10.2016 15:34
Точно,что-то я сразу не сообразил всю ночь настраивал сканер) Михаил скажите в ближайшем будущем рассматриваете работу сканера с параметрами из текущей таблицы параметров ?
Ответить | Ответить с цитатой | Цитировать
# admin 08.10.2016 19:39
Почему нет? Все возможно. Если народу этот скрипт окажется нужным и к нему будет интерес - можно развивать.
Ответить | Ответить с цитатой | Цитировать
# Петя 11.10.2016 14:20
Убрал строки отправки сигналов на почту (ненужно)
Скрипт пишет:
[Неверно указан почтовый адрес TO] :
Ответить | Ответить с цитатой | Цитировать
# admin 11.10.2016 14:37
Строки , связанные с отправкой почты, лучше оставить. Если вам отправка почты не нужна, не указывайте параметр EMAIL в секциях
Ответить | Ответить с цитатой | Цитировать
# Senex 21.10.2016 08:10
Михаил добрый день! Сканер выдает ошибку невозможно рассчитать nil, код пишу вроде правильно H(-1) > H(-2) AND C(-1) > H(-2) . Что не так?
Ответить | Ответить с цитатой | Цитировать
# Senex 21.10.2016 08:14
Разобрался, условие AND нужно с маленькой писать and.

Михаил пример формулы ROUND напишите пожалуйста, нужно ли в ней в конце через запятую указывать количество знаков после запятой?
Ответить | Ответить с цитатой | Цитировать
# admin 21.10.2016 08:41
Добрый день.

Указывать второй параметр необязательно. По умолчанию будет представлен 0 и будет произведено округление до целого
Ответить | Ответить с цитатой | Цитировать
# Senex 21.10.2016 09:15
Михаил подскажите, как в формуле написанной для 5 мин. свеч, обратится к HI Low предыдущего дня, допустим равен ли Hi или Low 5 мин. свечи вчерашнему HI или Low.
Ответить | Ответить с цитатой | Цитировать
# admin 21.10.2016 09:36
Нужно добавить в скрипт индикатор хайя и Лоу пред дня...)
Ответить | Ответить с цитатой | Цитировать
# Senex 21.10.2016 09:41
А этого индикатора в сканере нет) Может напишите условия для индивидуального дополнения сканера индикаторами и отбором по обороту.
Ответить | Ответить с цитатой | Цитировать
# admin 21.10.2016 10:36
Да тут все просто.

Если просьба не подкреплены материально - она ставится в очередь с приоритетом "при случае, под настроение".

Если человек готов заплатить за доработку- значит он действительно в ней нуждается (а не болтает от безделья) и приоритет этой задачи становится высоким: она будет сделана в ближайшие дни.
Ответить | Ответить с цитатой | Цитировать
# Senex 21.10.2016 10:42
Про материальную сторону все ясно, цена вопроса? Или как и сканер, цена не регламентирован а?
Ответить | Ответить с цитатой | Цитировать
# admin 21.10.2016 11:03
Индикаторы бывают разные: и простые и очень сложные. По этому вопросу имеет смысл связаться со мной почтой или скайпом. Скайп предпочтительне е.
Ответить | Ответить с цитатой | Цитировать
# w00zy 23.01.2017 01:30
Михаил, с некорректным подсчётом RSI не разбирались пока?
Ответить | Ответить с цитатой | Цитировать
# admin 23.01.2017 07:19
Посмотрел. Вроде все правильно, по википедии.

Расхождения, похоже из-за способа усреднения.. В квике используется SMA, а по стандарту EMA. Думаю, проблема именно в этом
Ответить | Ответить с цитатой | Цитировать
# Юрий77 01.03.2017 13:11
Михаил, вопрос
- можно в одной секции использовать два разный таймфрейма ? или брать данные из другой секции с другим таймфреймом.
- если Вы добавите в скрипт индикатор ЗигЗаг - можно будет переменную - процент - перелома зигзага указать расчитываемую (от другого индикатора и другого таймфрейма)?
Ответить | Ответить с цитатой | Цитировать
# admin 01.03.2017 13:35
Юрий,

Нет, использовать данные другого инструмента или другого таймфрейма нельзя.

Если вам нужно проверять сложные условия для одного инструмента, но для разных таймфреймов или в сопоставлении этого инструмента с каким-то другим, используйте Alerter
Ответить | Ответить с цитатой | Цитировать
# Юрий77 15.03.2017 13:42
Михаил можете добавить индикатор ZigZag в этот скрипт - я готов приобрести его?
Ответить | Ответить с цитатой | Цитировать
# admin 15.03.2017 14:29
Ну раз готовы -не откладывайте ))

Касаемо индикатора. Я в конце марта вернусь в Россию и начну разгребать свои обещалки, которые накопились за время моей поездки к рыбкам.

Когда все обещанное сделаю, постараюсь и зигзаг подрисовать
Ответить | Ответить с цитатой | Цитировать
# Юрий77 28.03.2017 14:37
индикатор фракталов - это конечно хорошо, а когда же
ЗигЗаг будет?
Уж нету мочи ждать)))))
Ответить | Ответить с цитатой | Цитировать
# admin 28.03.2017 14:57
Терпение, сударь! :P
Ответить | Ответить с цитатой | Цитировать
# Юрий77 15.03.2017 15:46
Жду с нетерпением))
Ответить | Ответить с цитатой | Цитировать
# admin 08.04.2017 10:03
А как вы собираетесь с этим зигзагом работать из сканера? В каждой свече зигзаг имеет или значение nil или значение цены. Nil - если нет перелома, иначе перелом есть.

Сможете привести какое-нибудь разумное условие?
Ответить | Ответить с цитатой | Цитировать
# subspear 23.03.2017 23:36
Координаты таблицы не запоминаются, в чем причина? Версия полная.
Ответить | Ответить с цитатой | Цитировать
# admin 24.03.2017 04:02
Координаты наверное запоминаются, не запоминается вкладка, на которой была размещена таблица.

Если так, то все правильно. с вкладками работать невозможно -не предоставлены средства разработчиками
Ответить | Ответить с цитатой | Цитировать
# subspear 27.04.2017 14:16
Можно-ли добавить сортировку в таблице по SECCODE?
Ответить | Ответить с цитатой | Цитировать
# admin 27.04.2017 14:58
В принципе можно, конечно. А зачем?

Сейчас все последние сигналы выводятся в низ таблицы, соответственно можно видеть хронологию.
Ответить | Ответить с цитатой | Цитировать
# Юрий77 06.08.2017 09:42
Здравствуйте Михаил.

1. ATR в квике штатный и Ваш в сканере показывает разные результаты - Ваш немного меньше выдает значение - чем это может быть связано? (пробовал на разных периодах)
2. Сортировку в таблице по SECCODE можно сделать - как в Алерте (хронология конечно хорошо, но не удобно)
Ответить | Ответить с цитатой | Цитировать
# admin 06.08.2017 10:23
Проверил. АТР совпадает.
Ответить | Ответить с цитатой | Цитировать
# Юрий77 17.08.2017 14:54
Михаил подскажите функция PARAM в DESCRIPTION работает?

Делаю так -
DESCRIPTION = #PARAM(LOTSIZE NUMERIC)#

размер лота не показывает (в настройках квика все включил)
Ответить | Ответить с цитатой | Цитировать
# admin 17.08.2017 15:06
А numeric - это что за зверь?
Ответить | Ответить с цитатой | Цитировать
# Юрий77 17.08.2017 15:19
взял из вашего файла - где перечислены параметры
Ответить | Ответить с цитатой | Цитировать
# Юрий77 17.08.2017 15:33
Разобрался - Если убрать этого зверя и поставить кавычки все работает - в Вашем файле конфигурации надо убрать лишние из названий параметров - а то вводит в заблуждение))
например - CODE STRING - надо без STRING ))
Ответить | Ответить с цитатой | Цитировать
# admin 31.08.2017 21:29
Да здравствуем МЫ! )))
Ответить | Ответить с цитатой | Цитировать
# admin 31.08.2017 21:34
NUMERIC и STRING - это тип значения. NUMERIC - это числовое значение. STRING - это строка в кавычках. Никуда не деться от простейших базовых правил программировани я, если хочется дать пользователю максимум свободы в задании условия. Я максимально (на сколько смог) упростил эти правила, но уж совсем сделать их тривиальными невозможно. В большинстве случаев все получается само собой, но если хочется чего-то похитрее, придется слегка почесать тыковку.
Ответить | Ответить с цитатой | Цитировать
# tradeneo 12.09.2017 21:30
Столбец "Параметры" у меня пустой.
Подскажите правильный синтаксис заполнением например - как вывести в этот столбец ISSUESIZE NUMERIC ?
Ответить | Ответить с цитатой | Цитировать
# admin 13.09.2017 03:33
В качестве источника данных для расчета можно использоватькак историю цены инструмента, так и историю его параметра (например, история количества заявок на продажу).

В этом случае в секции нужно задать PARAMETER.

Значение, которое вы ему дали и будет выведено в интересующий вас столбец.
Ответить | Ответить с цитатой | Цитировать
# tradeneo 13.09.2017 16:01
Можно в качестве примера - кусок кода?
Ответить | Ответить с цитатой | Цитировать
# admin 13.09.2017 16:25
Какого кода?

Прочтите, пожалуйста, внимательно мой предыдущий ответ.
Ответить | Ответить с цитатой | Цитировать
# tradeneo 13.09.2017 20:17
"Какого кода?"
Я хотел бы что Вы написали всего одну строку - пример написания команды, дабы в пустующем ныне столбце "Параметры" что-либо, не важно что, появилось.
Ответить | Ответить с цитатой | Цитировать
# tradeneo 17.09.2017 21:06
Ещё вопрос - нужно узнать и вывести разницу (в %) между фьючерсом и базовым активом. Это можно сделать в сканере или нужна расширенная версия (alerter)?
Если можно то лучше сразу с примером.
Ответить | Ответить с цитатой | Цитировать
# admin 17.09.2017 22:56
Эта задача сканером не решается.

Для ее решения можно использовать alerter
Ответить | Ответить с цитатой | Цитировать
# eq_office 15.01.2018 14:28
Михаил, добрый день,
а вы можете добавить в сканер индикатор MACD (это уже прописная истина как РСИ). Чтобы он был вами уже прописан, так как самим экспон.средние рисовать и мудрить сочинять не хотелось бы.
Ответить | Ответить с цитатой | Цитировать
# admin 15.01.2018 15:26
Здравствуйте.

Да, конечно можно.

Вариантов 2.

1. Я это сделаю когда мне будет скучно

2. Я это сделаю относительно быстро, если кто-то продемонстрируе т свою финансовую заинтересованно сть в нем :lol:
Ответить | Ответить с цитатой | Цитировать
# eq_office 15.01.2018 16:32
Михаил, я бы выбрал по справедливости 2 опцию ) , тем более что там вам как хозяину скрипта это совсем не доставит сложностей, да и вэлью программы дополнительно повысит. Я посмотрю программу и если финально понравится то куплю полную версию. Тут уже да, деньги вперед.
Ответить | Ответить с цитатой | Цитировать
# eq_office 16.01.2018 09:53
Михаил, а сканер может работать по текущей таблице параметров?
Ответить | Ответить с цитатой | Цитировать
# admin 16.01.2018 10:42
Историю большинства параметров из таблицы обезличенных сделок можно получать, используя PARAMETER в секции инифайла и анализировать его как обычный график.

Статические параметры интереса не представляют и их получение не предусмотрено.
Ответить | Ответить с цитатой | Цитировать
# eq_office 16.01.2018 14:37
нет, я не об этом, в текущей таблице параметров представлены все интересующие меня инструменты и нет необходимости фильтровать целиком секции в сканере. Очень удобно как раз брать список инструментов из данной таблицы сразу.
Ответить | Ответить с цитатой | Цитировать
# admin 16.01.2018 15:19
Доступа к содержимому экранной таблицы текущих значений из языка программировани я нет.


Вы можете в каждой секции указать, какие вам нужны инструменты из класса, используя простое их перечисление и/или использование символов-подстановок.

Затраты мощности компьютера на фильтрацию инструментов в скрипте равны нулю
Ответить | Ответить с цитатой | Цитировать
# admin 17.01.2018 19:53
Дальнейшее обсуждение перенесено на форум www.bot4sale.ru/.../1299-market-scanner.html

Все сообщения, оставленные здесь будут автоматически удалены. Спасибо за понимание.
Ответить | Ответить с цитатой | Цитировать
Добавить комментарий