Germany | Finland | Saint Petersburg | Drive

Market Scanner

4.2/5 оценка (21 голосов)
  • Размер: 1.29 MB
  • Версия: 2.01
  • Просм: 5085
  • Добавлено: 09.09.16
  • Скачано: 1305
  • Изменено: 18.11.19

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

При этом построение каких-либо графиков и индикаторов в терминале не требуется. Все индикаторы технического анализа скрипт рассчитывает сам (более двух десятков, список приведён в файле настроек).

 

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

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

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

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

 

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

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

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

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

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

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

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


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

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

 

BTC: DhWeUAMFYXnnZKHij6yw6hk5Q4QdhSLrS
ETH: 0xd0d6018031aaccb4b4ebfdd2c14b6fb634fd2528
LTC: LfevAKKpASzVAcPTQDRxQV3oJga29ebuee
Руб: 410012694478342
Коды EXMO Руб, USD, EUR

 

 

 

 

 

 

 

 

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

 

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

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

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

 

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

2.01
  • Добавлена возможность включать в заголовки email вычисляемые выражения
  • Почтовые адреса можно задавать теперь также и в виде Joe <Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.>
  • Файл scaner_mail.exe исключен из архива - он упакован в контейнер скрипта
2.0
  • Адаптировано для работы с терминалом версии 8
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
"Какого кода?"
Я хотел бы что Вы написали всего одну строку - пример написания команды, дабы в пустующем ныне столбце "Параметры" что-либо, не важно что, появилось.
# admin 14.09.2017 05:01
PARAMETER=BID
# 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

Все сообщения, оставленные здесь будут автоматически удалены. Спасибо за понимание.

Недостаточно прав для комментирования