Germany | Finland | Saint Petersburg | Drive

Расширенный сервис оповещений quik

4.9/5 оценка (56 голосов)
  • Размер: 725.07 KB
  • Версия: 2.01
  • Просм: 10930
  • Добавлено: 12.12.13
  • Скачано: 2876
  • Изменено: 21.08.17

Замена встроенного сервиса оповещений терминала quik. Практически полностью покрывает встроенные возможности плюс дает возможность генерировать сообщения на основании графиков и индикаторов, применяя широкий набор математических и логических функций.

 

Позволяет оповещать о наступлении события 

  1. Индикацией состояния в экранной таблице с использованием цвета.
  2. Сообщением на экране
  3. Проигрыванием звукового файла wav, mp3, midi (настраивается отдельно на каждое событие
  4. Запуском произвольной программы Windows
  5. Отсылкой почты на указанный адрес (в полной версии)
  6. Установкой метки на графике (отдельно для каждого условия, в полной версии)

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

В полной версии позволяет использовать для генерации события более 2х графиков (индикаторов)

Количество правил для генерации оповещений не ограничено.

Можно использовать как встроенные в терминал индикаторы, так и пользовательские, написанные на qlua.

Все действия и сигналы и ошибки протоколируются.

Корректная работа на тиковых графиках не гарантируется.

 


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

  1. Создайте папку с любым именем и разархивируйте в неё содержимое архива.
  2. Если вы знаете пароль к полной версии, разархивируйте файл Alerter_Full.zip (с заменой) в эту же папку. Если пароль вам неизвестен, пропустите этот пункт.
  3. Добавьте в терминал необходимые графики или индикаторы.
  4. Отредактируйте файл Alert.ini, задав необходимые условия срабатывания оповещений. Правила описания событий находятся в самом файле.
  5. Запустите Alert.lua как обычный lua-скрипт (Таблицы-Lua-Доступные скрипты).
  6. Если в задании условий есть ошибки (робот сообщит) - исправляйте (редактируйте) Alert.ini прямо "на лету".
  7. Ждите сигналыКрутой
  8. Не забудьте поблагодарить автора за работу. Сумма благодарности не регламентируется (соблюдайте приличия Подмигиваю). В ответ вы получите пароль от файлов полнофункциональной версии. Номер карты для перевода приведен на картинке:

 


Примеры возможностей:

  • Цена инструмента превысила 100 рублей за акцию
  • Цена инструмента превысила максимум цен за последние 10 свечей
  • Цена инструмента пробила вверх (вниз) скользящую среднюю
  • Цена инструмента превысила верхнюю линию Боллинджера
  • Потеряно соединение с брокером
  • Текущее время больше чем 12:00:00
  • Сегодня пятница и через 10 минут завершится торговый день
  • Три (четыре, пять, восемь или пятнадцать) скользящих средних выстроились в порядке возрастания (убывания) их периодов
  • Все четыре индикатора RSI, построенных с разными периодами, выше 70
  • Спред между базовым активом и фьючерсом на него превысил (или стал меньше) требуемой величины
  • Индекс РТС отклонился на большее чем задано расстояние от рассчитанного индекса его составляющих по фьючерсам
  • Цена вошла в облако Ишимоку и стохастик меньше (больше, равен) заданного значения
  • Прибыль клиентского портфеля превысила 10000 рублей
  • Стоимость портфеля более 300 000 рублей
  • За последние 5 свечей Газпром вырос на большее количество процентов, чем Роснефть (или индекс РТС)
  • Квадратный корень из цены индекса РТС минус натуральный логарифм лучшей цены предложения фьючерса на Сбербанк превышает сумму предложений Газпрома на величину цены вчерашнего закрытия акции Уралкалия минус квадратный корень из индекса ММВБ
  • И все остальное, на что у Вас хватает фантазии

 

 В полной версии историю срабатывания условий можно хранить на графике:

а также получать на экране:

Также программа создаёт лог-файл. Взависимости от настроек он может быть кратким и подробным. Подробное логирование удобно во время отладки условий. Лог-файл можно отключить.

 

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

Демонстрационная версия не имеет ограничений по времени. Предложения по развитию приветствуются.

 


 

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

2.02
  • Разрешена отправка почты на адреса, начинающиеся с цифры
2.01
  • Версия 2.0 приведена в работоспособный вид
2.0
  • Перепаковано для работы с новой версией bot4sale.dll
  • Улучшена обработка ошибок файла настроек
1.18
  • Добавлена функция iif()
  • Ускорена реакция табличных форм на действия пользователя
  • Исправлена функция varianta()
1.17
  • Убрано мелькание тёмного окна при отправке почты в полной версии
  • Все внешние библиотеки заменены на одну (старые больше не требуются)
  • В лог-файл можно выводить время с микросекундами. Настройка вывода микросекунд в ini-файле, параметр MSEС. Можно оценить быстродействие Алертера.
1.16
  • Правка: в сообщениях больше не задваивается символ %
1.15
  • Изменено значение параметров MESSAGE , DESCRIPTION и EMAIL (текст экранного сообщения, текст информационной строки таблицы Alerter и текст почтового сообщения
  • Во всех этих параметрах можно использовать значения, полученные с графиков, а также использовать вычисляемые выражения
  • Параметры DESCRIPTION и EMAIL используются только в полной версии
1.14
  • Исправлена ошибка компиляции файла настроек при разбиении условия на несколько строк
1.13
  • В полной версии возможен просмотр истории срабатываний условий. Для каждой секции свое окно истории.
1.12
  • Добавлено поле Exist, позволяющее отследить, существует ли свеча на индикаторе.
  • Поля Close,Open,High,Close,Volume,Exist можно указывать в условиях в укороченном виде
  • Функция const()
1.11
  • Добавлена возможность включать в текст экранных и почтовых сообщений информации с любых графиков.
1.10
  • Для удобства редактирования файла настроек добавлена возможность разбивать параметры на несколько строк.
1.9
  • Добавлена возможность помечать события метками на графиках
1.8
  • Добавлена возможность раскраски строк экранной таблицы
  • В полной версии теперь сохраняется положение окна скрипта между запусками
  • Экранная таблица отсортирована по именам секций
1.7
  • Убрано мелькание экранной таблицы
1.6
  • Функция Weekday() - номер дня недели
1.5
  • Функции типа floor() или cos() теперь работают с произвольным количеством аргументов.
  • Новые функции: Time(), Date(), ServerTime(), isConnected()
1.4
  • Возможность групповых операций над свечами
  • Изменен язык описания условий. Полное описание в Alert.ini
1.3
  • Возможность использования не только последней, но и предыдущих свечей
1.2
  • Расширен набор математических функций
1.1
  • Добавлен вывод на экран состояния условий
  • Исправлена ошибка, возникающая при работе с индикаторами, состоящими из нескольких линий
1.0
  • Начальная версия
Комментарии   
# Sergio 27.01.2014 21:47
Михаил, в момент срабатывания сигнала робот постоянно пищит. От этого можно избавиться?
Ответить | Ответить с цитатой | Цитировать
# admin 27.01.2014 22:03
Sergio. Если я правильно понял вопрос, то Вы пишете условие типа такого:

{price} > 100

Получается следующая штука. Допустим , сделки идут так:

100
100.1
100
100.1
100
100.1

Если инструмент ликвидный - то такая ситуация является совершенно нормальной.В описанной ситуации, естественно, возникнет три сигнала, один за другим. Робот 3 раза и отреагирует, как положено.

Как бороться?

  • Вариант 1. Ждем закрытия свечи выше заданного уровня. В момент возникновения новой свечи проверяем предпоследнюю, закрытую : {price,1,close} > 100
  • Вариант 2. Можно уменьшить частоту анализа роботом рынка.скажем, до раза в минуту.Или до раза в 5 минут. Тогда большую часть дерготни вокруг уровня он будет пропускать. Но это отразится на анализе всех секций, если их несколько.
  • Вариант 3. {price,0,high} > 100


Выбирайте на свой вкус ;-)
Ответить | Ответить с цитатой | Цитировать
# Алексан 06.10.2014 10:18
Подскажите как прописать условие обновления хая вчерашнего дня и как сделать чтобы было оповещение при срабатывании стопа и тейка
Ответить | Ответить с цитатой | Цитировать
# admin 06.10.2014 10:49
Цитирую Алексан:
Подскажите как прописать условие обновления хая вчерашнего дня и как сделать чтобы было оповещение при срабатывании стопа и тейка


Александр, крайне просто. Для нужного инструмента постройте дневной график и дайте ему идентификатор. Например, XXX.

Далее в условии сравниваете хай сегодняшнего дня с закрытием вчерашнего. Что-то типа
CONDITION = {XXX,0,HIGH} > {XXX,1,CLOSE}

Срабатывание стопа можно сделать путем сравнения текущей цены с ценой, на которую установлен стоп.
Ответить | Ответить с цитатой | Цитировать
# Алексан 06.10.2014 10:56
Спасибо за оперативный ответ! Но хотелось бы поставить стоп и не о чем не думать.... :-) т.е один раз настроить и спать спокойно.....дв игать его не меняя каждый раз условия
Ответить | Ответить с цитатой | Цитировать
# admin 06.10.2014 11:04
Сделать оповещения на условную заявку не так просто, как кажется. Дело в том, что при любом перемещении заявки старая снимается и появляется новая с новым номером. В общем случае осознать какая заявка на какую была изменена невозможно.
Ответить | Ответить с цитатой | Цитировать
# Алексан 06.10.2014 11:14
Как вариант на графике стоп нарисован в виде линии когда она исчезает значит сработал стоп. А когда двигаешь стоп просто отключать скрипт.....
Ответить | Ответить с цитатой | Цитировать
# admin 06.10.2014 11:20
Нет, так делать не стоит на мой взгляд.

Как вариант - сделать оповещения ПО ВСЕМ стоп-заявкам. Но надобность этого мне совсем неочевидна
Ответить | Ответить с цитатой | Цитировать
# Алексан 06.10.2014 11:28
А ваш скрипт может видеть линии на графике стоп заявок и лимитных заявок? Если да то как прописать условие когда до них доходит цена и когда они пропадают?
Ответить | Ответить с цитатой | Цитировать
# admin 06.10.2014 11:31
"Видеть линии" невозможно
Ответить | Ответить с цитатой | Цитировать
# Алексан 06.10.2014 11:33
Я к вашему скрипту прикрутил отправку СМС через 3G модем, очень удобно, но нужно знать когда сработал стоп или профит сейчас обкатываю если все будет так как мне хочется готов приобрести полноценную версию
Ответить | Ответить с цитатой | Цитировать
# admin 06.10.2014 11:36
Все, что можно сделать - это генерировать оповещения при срабатывании любой стоп заявки (или обычной заявки). Других (правильных) путей я не вижу.
Ответить | Ответить с цитатой | Цитировать
# Алексан 06.10.2014 11:39
А как это сделать практически, я так понимаю сейчас этого нет.....а очень хочется..... :-)
Ответить | Ответить с цитатой | Цитировать
# admin 06.10.2014 11:45
Ну раз очень хочется - надо позвонить мне скайпом. Что-нибудь придумаем :lol:
Ответить | Ответить с цитатой | Цитировать
# Алексан 06.10.2014 11:48
ok я сейчас на работе вечером позвоню после 18 напишите свой скайп
Ответить | Ответить с цитатой | Цитировать
# Николай2 05.12.2014 11:38
а по объемам скрипт работает? или только по ценам
Ответить | Ответить с цитатой | Цитировать
# admin 05.12.2014 11:48
Николай. График объёма - это такой же график как и все остальные. Работает.
Ответить | Ответить с цитатой | Цитировать
# Николай2 05.12.2014 13:44
а что не так? обозвал верхнюю половину графика с ценой pri нижнюю с объемом vol.
если CONDITION = {pri} > 50 работает
а когда CONDITION = {vol} > 100 не хочет
Ответить | Ответить с цитатой | Цитировать
# Николай2 05.12.2014 13:53
Разорбрался:) если удалить с графика цену - оставить один объем - то все заработало. Видать с двухэтажных графиков только верхний этаж работает.
Ответить | Ответить с цитатой | Цитировать
# Николай2 05.12.2014 14:37
и всё-таки не работает
больше 53 срабатывает сразу на запуске
больше 54 говорит нет сколько не жди
а по графику тиковые объемы частенько за 100 а минутные все больше 1000.
пробовал хай за последние 10 свечей - не помогает.
Про тиковые я читал, что не работает. Но на минутках тоже не пашет
Ответить | Ответить с цитатой | Цитировать
# admin 05.12.2014 15:07
; Контроль объёмов текущей свечи
[Большой объем в GAZP]
CONDITION = {GAZPVOL,0,Volu me} > 10000
DESCRIPTION = Объем в последней свече Газпрома больше 10000
MESSAGE = Нет
SOUND = Alert.wav




; Контроль объёмов нескольких свечей
[Большой объем в последних свечах GAZP]
CONDITION = average({GAZPVO L,1-4,Volume}) > 10000
DESCRIPTION = Средний объем в последних 4 свечах Газпрома (исключая текущую) больше 10000
MESSAGE = Н
SOUND = Alert.wav
EMAIL = No
Ответить | Ответить с цитатой | Цитировать
# Николай2 05.12.2014 16:58
Спасибо!!!
Теперь буду знать, что к объему надо Volume обращаться:)
Всё прекрасно работает и на тиках в том числе
Ответить | Ответить с цитатой | Цитировать
# Мишин Александр 25.12.2014 10:08
копия моего сообщения с форума Квик

Задача следующая
В Квике Брокер транслирует спот рубль-доллар и срочный рынок рубль-доллар
на каждый день существует коридор в котором должны находится значения этого свопа (зависит от текущий процентных ставок и так далее)
но в течение дня возможны экстремальные выходы из коридора особенно во время сильной волатильности
нужно написать самую простенькую программу которая просто выводила значения свопа на экран

Можно модернизировать ваш робот для выполнения этой задачи?
а я бы Вам скинул 2000 руб за помощь
Александр
Ответить | Ответить с цитатой | Цитировать
# admin 26.12.2014 13:10
Скинул. Будут вопросы - спрашивайте.
Ответить | Ответить с цитатой | Цитировать
# ДмитрийТ 12.02.2015 08:35
Имею минимальный опыт работы с QUIK. Попробовал установить Alerter на демо версию QUIK 6.16.1.15: скопировал lfs.dll в папку с программой, запустил QUIK, выбрал Таблицы-Lua-Дос тупные скрипты-Добавит ь. Тут первое недоразумение - программа не видит скрипты luac по шаблону *.lua. Изменил шаблон на *.luac и запустил таки alerter.luac. Но запуск закончился ошибкой: error loading module 'lfs' from file 'C:\temp\Alerte r\lfs.dll':syst em error 14001. Как мне это побороть?
Ответить | Ответить с цитатой | Цитировать
# admin 12.02.2015 10:13
Добрый день.

Программа не видит скрипты luac по шаблону *.lua. - Это нормальное поведение терминала quik. Так и должно быть

По поводу error 14001. Скорее всего у вас в системе отсутствует стандартный модуль MSVC++ 2005 vcredist_x86. luaforwindows.googlecode.com/files/vcredist_x86.exe
Ответить | Ответить с цитатой | Цитировать
# ДмитрийТ 12.02.2015 11:16
> отсутствует стандартный модуль MSVC++ 2005 vcredist_x86. luaforwindows.googlecode.com/.../vcredist_x86.exe

О, спасибо, это помогло! Буду пробовать.
Ответить | Ответить с цитатой | Цитировать
# Farinag 17.02.2015 20:32
Добрый день! Пытаюсь освоить программу оповещений и вот что выдает:

Сборка 12.01.2015 20:04:12 www.bot4sale.ru
Рабочее место QUIK 6.16.1.15
02/17/15 Tuesday Калининградское время (зима) +0300
18:09:30 Подключено к ММВБ (78.41.199.21:15100)
18:09:30 Ошибка получения данных с графика с идентификатором 30_ekz_cl
18:09:30 Ошибка вычисления выражения {Minutka,0,Clos e} > {30_ekz_cl}

Звук не проигрывает оповещения не выдает


В скрипте вот что
; Пример задания секции.
[Ниже зеленой] // Заголовок секции (в квадратных скобках)
CONDITION = {Minutka,0,Clos e} > {30_ekz_cl} // Условие срабатывания по графику с идентификатором Minutka
DESCRIPTION = Цена превысила мувинг 30 периода // Текст сообщения на экране
MESSAGE = Y // Выводить сообщение на экран или нет
SOUND = grumb.wav // Звуковой файл. Не проигрывать если пустой. Форматы звуковых файлов mp3, wav, midi
; RUN = %windir%\system 32\notepad.exe // Запуск программы. Можно использовать переменные окружения DOS, как в .BAT файлах
EMAIL = N // Отправлять или нет почту

График минутный есть с идентификатором и есть мувинг с периодом 30 идентифицирован
Ответить | Ответить с цитатой | Цитировать
# admin 17.02.2015 20:33
Farinag


Если робот Вам говорит, что он не может получить данные с графика 30_ekz_cl, не стоит в этом сомневаться.Он действительно не может.

Если график с таким именем "вроде как" существует, проверьте внимательно его идентификатор. Возможно, вы ошиблись в какой-то букве, давая этому графику имя. Проверьте, не смешаны ли там русские и английские буквы и т.п.

Чтобы дать имя графику или индикатору, нужно

  • Нажать на диаграмме правую кнопку мыши
  • Выбрать "Параме тры графика"
  • Выбрать нужный вам график из списка
  • Откроется окошко настройки графика
  • Переключиться на вкладку "Дополн ительно"
  • В левом нижнем углу будет поле "Иденти фикатор"
  • Даете идентификатор графику
  • Нажимаете кнопку Сохрани ть

Ответить | Ответить с цитатой | Цитировать
# Farinag 17.02.2015 20:33
Спасибо огромное!
Все заработало (несмотря на то что пользуюсь квиком седьмой год, вот к чему приводит самоуверенность).
Помогло ваше подробное описание скриншота (то что я как бы знаю наизусть и проделывал тысячи раз (но тыкая на сам индюк) присваивал имя индюку обычно.
Оказывается я присвоил имя индикатору для чтения его на диаграмме во вкладке "Общие", А НУЖНО БЫЛО ВО ВКЛАДКЕ "Дополнительно" "Идентификатор" (как на прайсе).

В общем заработало все и музыка заиграла
Спасибо за терпение
Ответить | Ответить с цитатой | Цитировать
# mike14 26.02.2015 12:38
Добрый день. Можно ли оповещать о таких событиях:
1. соединение разорвано; 2. соед-ие установлено; 3. Есть соединение и нет поступления записей n секунд и другие подобные неприятности.
Может подскажите, что нужно использовать, чтобы в этих случаях отправлялись СМС-ки.
Ответить | Ответить с цитатой | Цитировать
# admin 03.03.2015 01:12
mike14, здравствуйте.

К моему удивлению, и это можно.. Я никак не рассчитывал скрипт на такое использование и поэтому подобного рода синтаксис в в файле настроек (был) не описан. Если для событий 1 и 2 Вы укажете такие условия

для получения сообщения в момент подключения к брокеру
CONDITION = isConnected() == 1

для сообщения об отключении от брокера
CONDITION = isConnected() == 0

То они будут работать.

Касаемо отправки смс. Можно. Для этого потребуется:

1. Приобрести полную версию, которая умеет отправлять емайл

2. Зарегистрироват ься на каком-нибудь гейте, преобразующем email в sms. Поищите гуглом и подберите тот, что вам понравится

3. Настроить отправку почты на этот гейт в соответствии с его правилами.

Робот будет отправлять электронные сообщения гейту, а тот будет преобразовывать их в смски на ваш телефон

Второй вариант - при наличии GSM модема. При срабатывании условия запускайте внешнюю программу, работающую с этим GSM модемом.
Ответить | Ответить с цитатой | Цитировать
# sekret_x 01.04.2015 20:42
Хочу сказать спасибо, за это чудесное дополнение для Quik. При грамотном подходе к настройкам экономит массу времени.
Михаил доходчиво отвечает на все вопросы по установке и настройке, оперативно дорабатывает скрипт.

Я не мог настроить отправку почты с Gmail, вместе разобрались, оказывается гугл блокирует доступ к Gmai от сторонних программ.... Для того чтоб всё заработало, пришлось в настройках аккаунта Google, разрешить этот доступ. Может кому пригодится!
Ответить | Ответить с цитатой | Цитировать
# sekret_x 03.04.2015 19:52
Здравствуйте Михаил! Не могу сообразить как прописать условие для алерта при формировании нового фрактала???
Ответить | Ответить с цитатой | Цитировать
# admin 03.04.2015 20:33
здравствуйте.

Чем не устраивает пример, который идет в поставке?

[Верхний фрактал] // Max свечей (4-3) < max свечи (2) > min свечей (1-0)
CONDITION = max({LKOH,3-4,H igh}) < {LKOH,2,High} and {LKOH,2,High} > max({LKOH,0-1,High})
DESCRIPTION = Сформирован верхний фрактал
MESSAGE = да
Ответить | Ответить с цитатой | Цитировать
# sekret_x 03.04.2015 21:41
Ещё раз просмотрел, но в поставке такого примера нет.... Спасибо, теперь понятно
Ответить | Ответить с цитатой | Цитировать
# admin 03.04.2015 21:48
Цитирую sekret_x:
Ещё раз просмотрел, но в поставке такого примера нет.... Спасибо, теперь понятно


Странно. Сейчас сам скачал, посмотрел. И вот они, фракталы, в самом конце файла alert.ini, лежат как миленькие. Закомментирован ы, ждут своего часа ))
Ответить | Ответить с цитатой | Цитировать
# vlasov33 11.04.2015 12:24
При распаковке файла Alerter.zip, требует пароль? :-|
Ответить | Ответить с цитатой | Цитировать
# admin 14.04.2015 10:36
Под паролем только файлы архива, которые необходимы в полной версии.

Файлы архива, необходимые для демо-версии, незапаролены.
Ответить | Ответить с цитатой | Цитировать
# alexsunr 22.04.2015 18:16
Добрый день.
На каких условиях можно получить полную версию ?
Ответить | Ответить с цитатой | Цитировать
# admin 22.04.2015 22:10
Для этого достаточно сделать посильный вклад на общее дело :lol:

Например,так: www.bot4sale.ru/.../51-nuzhen-amisharp.html
Ответить | Ответить с цитатой | Цитировать
# koster1 22.04.2015 21:55
Добрый вечер! А звуковой сигнал можно настроить на индикаторе RSI, чтобы выполнилось условие при пересечении сигнальной линии определенных значений например ниже 30 упало и появляется звуковой сигнал ?
Ответить | Ответить с цитатой | Цитировать
# admin 22.04.2015 22:12
Здравствуйте.

Конечно можно.

Дайте графику индикатора RSI какой-то идентификатор. Например _rsi_

CONDITION = {_rsi_} < 30
SOUND = Alert.wav


или любой другой звуковой файл.

Собственно, и все.
Ответить | Ответить с цитатой | Цитировать
# Antony 03.07.2015 15:17
Здравствуйте,
Торгую фьючем на РТС.
Мне нужно чтобы оповещение срабатывало когда цена достигала уровня верхнего болинджера +30 пунктов и нижнего уровня болинджера -30 пунктов.
Для этого назначил идентификатор цены на фьюч РТС как Price_RTS и на линии болинджера присвоил RTS_BB.
Далее я написал след. скрипт:
CONDITION = {Price_RTS-30,0 ,Close} >= {RTS_BB,0,Close,1}
DESCRIPTION = Цена достигла +30 пунктов уровня Боллинджера
MESSAGE = Y
SOUND = ringin.wav

CONDITION = {Price_RTS+30,0 ,Close} >= {RTS_BB-30,0,Close,2}
DESCRIPTION = Цена достигла -30 пунктов уровня Боллинджера
MESSAGE = Y
SOUND = ringin.wav

При запуске данного скрипта выдается ошибка:
Alerter: Ошибка вычисления выражения {Price_RTS+30,0 ,Close} >= {RTS_BB,0,Close ,2}
Ответить | Ответить с цитатой | Цитировать
# admin 03.07.2015 15:26
Внутри фигурных скобок производить математические действия нельзя - это адресация к требуемой свече. После того как значение с графика взято уже можно применять математику.

Должно быть что-то типа следующего:
CONDITION = {Price_RTS} < {RTS_BB,0 ,Close,2} - 30
Ответить | Ответить с цитатой | Цитировать
# Antony 03.07.2015 15:50
Разобрался, сделал по другому:
CONDITION = {Price_RTS,0,Cl ose} - {RTS_BB,0,Close ,1} >= 30
CONDITION = {RTS_BB,0,Close ,2} - {Price_RTS,0,Cl ose} >= 30
Но странно, когда я указываю эти два условия, у меня почему то исполняется лишь одно - последнее, т.е. работает только в случае если цена пересекает нижнюю границу Боллинджера -30пунктов. Но когда закомментируешь последнее выражение, начинает срабатывать верхняя строчка, т.е. на пересечении верхней линии Боллинджера +30пунктов.
т.е. срабатывает одно из двух условий. Как сделать так чтобы срабатывали оба условия - как на вверх, так и вниз?
Ответить | Ответить с цитатой | Цитировать
# admin 03.07.2015 15:57
почему то исполняется лишь одно - последнее

Я так понимаю, что оба условия Вы указали в одной секции?

В каждой секции может быть только одно условие.

Создайте 2 разные секции и каждой из них пропишите свое условие.

В полной версии можно условия объединить:
CONDITION = {Price_RTS,0,Cl ose} - {RTS_BB,0,Close ,1} >= 30 or {RTS_BB,0,Close ,2} - {Price_RTS,0,Cl ose} >= 30
Ответить | Ответить с цитатой | Цитировать
# Antony 03.07.2015 16:32
Чем отличается платная от бесплатной версии?
Ответить | Ответить с цитатой | Цитировать
# admin 03.07.2015 17:33
Цитирую Antony:
Чем отличается платная от бесплатной версии?


Прочите эту статью внимательно. Там все есть:

  • В полной версии позволяет использовать для генерации события более 2х графиков (индикаторов)
  • В полной версии историю срабатывания условий можно хранить на графике
  • Отсылкой почты на указанный адрес (в полной версии)
  • В полной версии теперь сохраняется положение окна скрипта между запусками
Ответить | Ответить с цитатой | Цитировать
# Antony 03.07.2015 17:43
Я читал, но не совсем понял:
В полной версии позволяет использовать для генерации события более 2х графиков (индикаторов)

Что это значит, можете привести пример?
Ответить | Ответить с цитатой | Цитировать
# Antony 03.07.2015 17:44
Как сделать, чтобы алерты отправлялись в виде SMS?
Ответить | Ответить с цитатой | Цитировать
# admin 03.07.2015 17:48
Прочитать внимательно статью и все комментарии к ней.
Ответить | Ответить с цитатой | Цитировать
# admin 03.07.2015 17:47
Содержимое в фигурных скобках - это обращение к графику.

В демоверсии в одном условии таких обращений может быть лишь 2.
В полной версии их количество неограничено.
Ответить | Ответить с цитатой | Цитировать
# Antony 03.07.2015 18:09
Цитирую admin:
Содержимое в фигурных скобках - это обращение к графику.

В демоверсии в одном условии таких обращений может быть лишь 2.


Можете привести пример, этих двух и более обращений?
Ответить | Ответить с цитатой | Цитировать
# admin 03.07.2015 18:49
8 (или 9) сообщений назад я вам такой пример уже привел
Ответить | Ответить с цитатой | Цитировать
# Antony 03.07.2015 20:43
Михаил, в первую очередь хочу поблагодарить вас за программу - хорошая, полезная и универсальная!
Сколько будет стоить полная версия?
Ответить | Ответить с цитатой | Цитировать
# admin 03.07.2015 20:52
Приятно что она вам понравилась.

Полная версия стоит столько, сколько вы считаете справедливым за нее заплатить. Подробности почтой

Все-таки вы поленились прочитать предыдущие комментарии...
Ответить | Ответить с цитатой | Цитировать
# Andrew 13.08.2015 18:43
Выводит такую ошибку:
?:0: attempt to call field 'sinsert' (a nil value)

Что это значит ?
Ответить | Ответить с цитатой | Цитировать
# admin 13.08.2015 18:52
Это означает, что у вас слишком старая версия терминала quik. Обновите ее и все сразу станет хорошо.
Ответить | Ответить с цитатой | Цитировать
# Andrew 13.08.2015 19:36
Обновил, заработало :)

Может быть Вы сможете подсказать, как сделать такое вроде бы простенькое условие:

1)Хотелось бы, чтобы срабатывал звуковой сигнал, при имезнении рыночной цены на какой то заданный процент изменения с момента запуска скрипта в некий выбранный промежуток времени ?
Ответить | Ответить с цитатой | Цитировать
# admin 13.08.2015 20:12
Andrew

Алертер работает с графиками. поэтому написать именно то условие, которое вы написали, в текущей реалиации не представляется возможным.

Имеет смысл как-то переформулирова ть условие.. Например, изменение цены за последние 5 свечей графика более чем x рублей (или x процентов)

Или изменение с начала торгового дня более чем x процентов.

Или как-то еще - чтобы можно было читать данные OHLC с графиков
Ответить | Ответить с цитатой | Цитировать
# Andrew 13.08.2015 20:32
А изменение за последнии 5 свечей будут считаться относительно какой свечи ? Которая была перед этими 5-ю свечами ?

Если да, то это можно будет зациклить ?
Ответить | Ответить с цитатой | Цитировать
# Andrew 13.08.2015 20:48
Хотя нет, это будет все равно не то, что нужно.
Ответить | Ответить с цитатой | Цитировать
# nikolaru 30.09.2015 20:54
Приветствую...
Подскажите пожалуйста - что нужно прописать (какой код) для оповещения, когда в "индикаторе NRTR" будет (появление треугольников) в любую сторону, либо вверх, либо в низ. Заранее спасибо за ответ...
Ответить | Ответить с цитатой | Цитировать
# admin 01.10.2015 11:08
Здравствуйте.

Если речь идет об индикаторе NRTR, взятого с этого сайта (www.bot4sale.ru/.../indikator-nrtr-2.html), то условие возникновения красного треугольника вниз может выглядеть так:

[NRTR sell]
CONDITION = {nrtr,0,Close,3 } ~= 0
DESCRIPTION = Сигнал NRTR на продажу на текущей свече

В индикаторе 4 линии. 2 линии уровней (их номера 0 и 2) и 2 линии треугольников с номерами 1 и 3. Линии (и их номера) можно посмотреть в настройках индикатора. Соответственно номер линии красных треугольников - 3, о чем мы и пишем в нашем условии.

Если у вас версия алертера 1.12 и выше, тогда условие продажи может выглядеть так:
CONDITION = {NRTR,0,Exist,3 } == 1

Условия на покупку - аналогично, но линия индикатора 1
Ответить | Ответить с цитатой | Цитировать
# Viktor_s0s 14.10.2015 12:56
Добрый день!
Пока ничего не понимаю, но хочу :roll:
Даже на одну строчку скрипта выскакивает
?:0: attempt to index field `?` ( a nil value)
хоть что это и в чем причина?
Спасибо
Ответить | Ответить с цитатой | Цитировать
# admin 14.10.2015 15:47
Давайте я тоже задам вам вопрос. О какой "даже одной строчке скрипта" вы говорите?

Чтобы я смог сказать вам что-то вразумительное, нужно больше информации. Например, прислать мне файл настроек с условиями.
Ответить | Ответить с цитатой | Цитировать
# Viktor_s0s 14.10.2015 23:43
Прошу прощения :sigh:
дело новое, неизведанное...
хочу сделать чтобы при пересечении двух ема звучала "музыка". Беру строку с Вашего примера, с файла ini;
condition = {gazp_price} > {gazp_ma}
и вместо {gazp_price} вставляю {gazp_ma2}.
Соответсвенно присваиваю для первой ема - {gazp_ma1}
для второй - {gazp_ma2}
Это все присваиваю в "дополнительно-идентификатор"
Т.е. получилась одна строка...
condition = {gazp_ma2} > {gazp_ma1}
запускаю скрипт и выскакивает
?:0: attempt to index field `?` ( a nil value)
Не знаю где можно было бы поподробнее почитать правила задания условий. А так, с одной строчкой, без знаний, много не поэкспериментир уешь. Вроде понятно, но что-то не "играет" :sad:
ОписАл как смог.
Спасибо
Ответить | Ответить с цитатой | Цитировать
# admin 15.10.2015 01:30
Виктор, я, догадываюсь о причинах..

skype mikemsk. Звоните, разберёмся в ситуации.
Ответить | Ответить с цитатой | Цитировать
# admin 19.10.2015 19:22
Ошибка исправлена. Прошу прощения за неудобства.
Ответить | Ответить с цитатой | Цитировать
# нескафик 19.10.2015 22:25
болинджер в моем случае.опишите пожалуйста.
Ответить | Ответить с цитатой | Цитировать
# Viktor_s0s 29.10.2015 15:10
Добрый день, Николай
А masd можно как-то "зашифровать" в этом скрипте?
три периода. а идентификатор один...
Спасибо.
Ответить | Ответить с цитатой | Цитировать
# admin 30.10.2015 21:54
Добрый день

Да, конечно можно. Макд - это индикатор, состоящий из нескольких линий. Вы можете получать значение любой линии, указав её номер среди параметров, задаваемых внутри фигурных скобок. Формат задания параметров подробно описан в ini файле.
Ответить | Ответить с цитатой | Цитировать
# Rob 13.11.2015 19:38
Михаил, подскажие пожалуйста, если надо произвести арифметические действия с двумя значениями которые я возвратил с графика, как их можно оформить? Есть две цкны Газпрома цена1 и цена2, как мне прописать формулу в поле DESCRIPTION чтобы кроме возвращенных с графика цен в конце строки также указывалось цифровое значение спреда между двумя этими ценами?

CONDITION = {ЦенаГазпрома1} > {Цена Газпрома2}
DESCRIPTION = Цена1 составляет {ЦенаГазпрома1} , Цена2 составляет { Цена Газпрома2} текущий спред ({ЦенаГазпрома1 } - {Цена Газпрома2})???
Ответить | Ответить с цитатой | Цитировать
# admin 13.11.2015 20:31
Rob

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


Update: 01.01.2016

Уже можно.
Ответить | Ответить с цитатой | Цитировать
# Rob 13.11.2015 21:16
Ок, а почему вы не хотите добавить возможность вычисления какой либо функции (формулы) в отдельной строке до строки Description, а в строке Description можно будет просто указать в нужном месте данную функцию для вывода ее результата. (Это чтобы избавить поле Description от большого часла аргументов и не было сложной математики в самой строке Description)
Ответить | Ответить с цитатой | Цитировать
# admin 13.11.2015 22:35
Можно.

Однако дело вот в чем.

На текущий момент синтаксис настроечного файла и так весьма сложен для среднестатистич еского пользователя. Добавление такого рода возможностей сделает сложность настройки чрезмерной.

Тут можно пойти путем доработок под конкретного пользователя или путем добавления возможностей в полной версии. Если вы заинтересованы - велкам в скайп mikemsk. В общедоступной версии я считаю такие усложнения излишними.

Update: 01.01.2016

Уже можно.
Ответить | Ответить с цитатой | Цитировать
# admin 13.01.2016 10:20
В версии 1.15 в экранных, почтовых и информационном сообщениях уже можно использовать вычисляемые выражения
Ответить | Ответить с цитатой | Цитировать
# sekret_x 13.01.2016 20:23
Супер! Самая полезная доработка alertera.... Вот бы ещё добавить пересчёт вычислений поля Description (производимых там рассчётов) смомента срабатывания и до отключения, а в таблице истории срабатываний добавить цену срабатывания.

Если можно конечно....
Ответить | Ответить с цитатой | Цитировать
# admin 13.01.2016 20:39
Цитирую sekret_x:
пересчёт вычислений поля Description (производимых там рассчётов) смомента срабатывания и до отключения


Я думал об этом. С моей точки зрения информация, рассчитанная в момент срабатывания условия значительно важнее последующей. Именно в момент срабатывания условия рассчитываются разные уровни типа стоп-лосса, тейк-профита и аналогичные им.


Цитирую sekret_x:
в таблице истории срабатываний добавить цену срабатывания.


К сожалению, невозможно. Срабатывание происходит по условию, которое может быть совокупностью различных событий.

В условии может быть использована цена какого-то инструмента, цены нескольких инструментов или вообще не использоваться какие-либо цены
Ответить | Ответить с цитатой | Цитировать
# sekret_x 13.01.2016 21:12
Цитирую admin:
[quote name="sekret_x"]пересчёт вычислений поля Description (производимых там рассчётов) смомента срабатывания и до отключения

Я думал об этом. С моей точки зрения информация, рассчитанная в момент срабатывания условия значительно важнее последующей. Именно в момент срабатывания условия рассчитываются разные уровни типа стоп-лосса, тейк-профита и аналогичные им.


Вот именно поэтому я и написал только про поле Description, а остальные Message и Email оставить только первоначальные значения... Так 2 зайца убьётся.
Ответить | Ответить с цитатой | Цитировать
# sekret_x 29.12.2015 15:37
Добрый день.

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

Для начала посмотрите внимательно в условие. В нем имееется много условий or и and. Эти условия имеют неодинаковый приоритет и вероятно, высчитывается совершенно не то, что вы хотели бы.

Изменить приоритет можно при помощи скобок.

Далее Вам следует включить трассировку и вывести в лог рассчитываемые значения. Вы сможете проверить, что подставляется в выражения и как они рассчитываются, отладив тем самым ваши условия.

Если уж совсем ничего не получается - звоните мне голосом в скайп, помогу.
Ответить | Ответить с цитатой | Цитировать
# digit123@yandex.ru 10.02.2016 20:01
Михаил приветствую,
есть мощная идея апгрейда как раз то о чем просит секрет_х
если отделить основные понятия дискретности сигнала и его продолжающегося состояния (нужен момент срабатывания сигнала или индикация продолжающегося сигнала на продолжающихся индикаторах), то о чем просит секрет_х можно попробовать сделать и вполне реально и это будет фантастически удобно. Могу расписать детали в сообщении по почте.
Ответить | Ответить с цитатой | Цитировать
# admin 10.02.2016 20:04
Зачем почтой? Здесь пишите....

Только без заумностей, попроще. Можно с примерчиками.
Ответить | Ответить с цитатой | Цитировать
# digit123@yandex.ru 11.02.2016 02:36
Алертер использую для 2 целей:

1.Сообщить и схватить СИГНАЛ - это момент генерации трейда с генерируемой автоматически рассчитываемой целью и стопом. Это конкретны момент, конкретная точка, выстреливающая дискретно. В программе к основному условию индикатора алгоритма добавляются конкретные точки в том что на 1 свече линия была выше а на 2 свече ниже, так называемый перелом в конкретной точке.

2.Это ИНДИКАЦИЯ сигнала - работает он еще или нет, в силе еще сохраняются основные условия или нет. В программе есть условие-алгорит м самого индикатора, но не фиксируется точка перелома- старта индикатора. Из-за этого индикатор активен и показывается до того момента пока действительны его основные условия и пока он сам не закончится сменой на встречный. ИНДИКАТОР работает до момента его самостоятельног о окончания до смены на встречный. Либо индикатор переворачиваетс я на встречный не доходя до таргета , либо превышает таргет и потом меняется на встречный. В этом основное отличие СИГНАЛА от ИНДИКАТОРА

Для совокупного отражения работы алгоритма во всех его проявлениях один и тот же алгоритм задействован 4 раза. Первая пара это СИГНАЛ вверх и СИГНАЛ вниз, а также вторая пара ИНДИКАТОР вверх и ИНДИКАТОР вниз.

Сейчас сам СИГНАЛ хоть вверх хоть вниз при срабатывании генерит расчетные величины таргета и стопа, создает сообщение, звук и емейл в момент срабатывания, и в окне Алертера V1.15 в поле Описание больше вообще не появляется. Даже перезагрузки Алертера не вызывают его новую генерацию и нанесение на график, то есть сигнал прошел, отметился везде и все.

Индикатор же с момента генерации появляется в окне Алертера V1.15 в поле Описание и номинально там демонстрирует факт того, что основные условия алгоритма пока существуют и действительны. Но важный момент и проблема в том, что так как алгоритм тот же, то при внеочередных перезагрузках алертера все расчетные цифры по таргету и стопу расчитываются произвольно на момент перезапуска алертера, что является нежелательным. Тем не менее ИДИКАТОР используется исключительно как наглядный пример того что основные условия алгоритма еще действуют, а реальные важные цифры таргета и стопа берутся для работы только из прежнего СИГНАЛА.
Ответить | Ответить с цитатой | Цитировать
# admin 11.02.2016 10:40
1. Конкретные точки в количестве 2 штук нужны конкретно вам.Другим они нужны в количестве 3 штуки или не нужны вообще. Некоторые условия вообще рассчитываются без использования графиков

2. Индикация сигнала имеется - в главной таблице скрипта в поле "состояние" показывается текущий результат вычисления условия. На график наносить этот сигнал невозможно. Во-первых, невозможно посчитать сигнал на истории В ПРИНЦИПЕ. Пример: наличие соединения с брокером. Во вторых, расчетом сигналов на истории занимаются специализирован ные программы типа амиброкера и повторять их функционал на луа лишено всякого смысла.

3. Пара сигнал вверх и сигнал вниз - опять-таки - это исключительно ваша потребность. Кто-то использует алертер для получения сигнала о том, что 10 скользыящих средних выстроились в каком-то порядке. Какие тут сигналы вверх-вниз? Или просто условие достижения времени, по которому пользователь просто хочет услышать звуковой сигнал - тоже никаких вверх-вниз нет, как и стопов с тпаргетами или еще чего-то.
Ответить | Ответить с цитатой | Цитировать
# digit123@yandex.ru 11.02.2016 03:14
Исходя из вышеуказанного, хотелось бы спросить:

1. Есть ли возможность объединить две эти функции алертера - СИГНАЛ и ИНДИКАТОР (действия условия), сигнал для расчета цифр, а индикатор для индикации действительност и и пока еще существования данного условия, приведшего к генерации сигнала.

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

2.Этот пункт совсем не сложный. С момента точки генерации сигнала НЕОБХОДИМО и полезно все поле Description фиксировать в таблице истории срабатывания. Одной даты и времени в этой таблице крайне мало. Но как удобно было бы заглянуть в таблицу и посмотреть все детали каждого сигнала с временем и датой генерации сигнала, а также с цифрами указанными в поле Description - цифрой входа, цифрой таргета, цифрой стопа (разумеется если эти цифры были запрограммирова ны пользователем в поле Description)

В идеале после окончания самого сигнала, когда он закончился, то цифру максимального исполнения сигнала (и в абсолюте и в процентах) (то есть насколько за время действия сигнала цена не добила или превысила таргет), так вот эту самую величину в идеале было бы также дописать в таблицу истории срабатывания в конце той строки где прежде до этого в момент генерации были указаны расчетные величины начала сигнала, таргета и стопа. А после них таким образом цифра на сколько исполнен таргет или на сколько до него не добила цена в момент работы сигнала и до его отмены.
Ответить | Ответить с цитатой | Цитировать
# admin 11.02.2016 10:48
должны сохраняться в каких то то переменных ячейках.

Невозможно в принципе - ничто не мешает вам изменить инифайл и просто выкинуть из него какую-то секцию. куда девать все эти сохранения? Алертер о них уже ничего не знает

сколько процентов осталось до стопа

см. выше. стопы - это нужно вам. другим стопы не нужныа нужно что-то совсем иное

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

Тем более невозможно выводить какие-то расстояния от текущих значений (например, спреда) до погоды на фарерах


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

Поэтому. Если необходим робот, который работает по жесткому алгоритму и выводит какую-то специфичную информацию - обращайтесь, сделаем вам робота. Алертер задумывался как универсальное средство и таким и будет оставаться.
Ответить | Ответить с цитатой | Цитировать
# digit123@yandex.ru 11.02.2016 21:16
Михаил ок, я детально расписал как работает алертер и что он может показывать считать и сохранять.

просьба одна тогда, сформулирована в пункте 2. Думаю это более чем полезно и справедливо. Если уж вы сделали таблицу историй срабатывания, и ставите туда дату и время, то сделайте доброе дело, добавьте плс туда же и слепок всего поля Description. Причем опционально в настройках должна быть какая то команда добавлять в окно истории срабатывания или нет. Кому надо будут включать и смотреть потом историю с деталями, кому не надо вообще не будут включать. Думаю это совсем не сложно. Буквально это означает следующее. При открытии окна истории срабатывания я буду видеть те цифры, что были указаны в условии срабатывания и поле Description именно этого сигнала в это время и этот день. Это же удобно. Если я считаю стопы и таргеты в поле Description то буду их видеть, а кому не надо это тот вообще не будет включать эту опцию в настройках.
Ответить | Ответить с цитатой | Цитировать
# admin 11.02.2016 21:22
История срабатываний на текущий момент не хранится между сессиями.

То есть. Пока скрипт запущен, он собирает историю. Как только вы выключили скрипт или закрыли квик, эта история пропадает.

Я думал, нужно ли хранить эту историю на диске, но по размыщлению пришел к тому, что это просто никому не потребуется. Смотреть сегодня те события, которые произошли неделю назад. Зачем? Все равно любой робототрейдер (не говоря уже о ручном трейдере) заглядывает в терминал как минимум раз в день.

Зачем видеть прошлогодние алерты? Объясните.
Ответить | Ответить с цитатой | Цитировать
# digit123@yandex.ru 11.02.2016 21:31
для собственного контроля, так как это удобно и под рукой всегда и можно посмотреть проверить что было исполнено и насколько.

чтобы не хранить огромную простыню этих сигналов - можно сделать в установках лимит сколько строк хранить, штук 20 было бы более чем достаточно.
Ответить | Ответить с цитатой | Цитировать
# digit123@yandex.ru 11.02.2016 21:32
и не интрадей а на постоянной основе
Ответить | Ответить с цитатой | Цитировать
# admin 11.02.2016 21:35
И что делать с файлом, содержащим эту историю, когда вы удалили секцию? Или кардинально изменили в неё условие?

Вы будете смотреть в содержимое этого файла - и видеть полный бред.
Ответить | Ответить с цитатой | Цитировать
# digit123@yandex.ru 11.02.2016 21:47
что касается любого изменения условия так это и будет отражено в истории какое условие и когда. тем более что старые сигналы вымываться будут более новыми сигналами. а вот что делать когда вся секция убивается - не знаю. да то же самое что и сейчас делается. как-то проверяется и убивается. хотя если совсем это сложно тогда не надо мучать скрипт так )
Ответить | Ответить с цитатой | Цитировать
# bugFinder 11.02.2016 19:03
Привет!

Нашел баг! Если выводить данные с помощью MESSAGE или EMAIL и указать символ "%", то он выводится дважды (выглядит как два символа идущих друг за другом вместо одного. вот так --> "%%").

Пример (условный):
[Test]
CONDITION = {INDICATOR} == 50
MESSAGE = #{INDICATOR}# %

При срабатывании сообщение будет выглядеть:
50 %%
А должно быть:
50 %
Ответить | Ответить с цитатой | Цитировать
# admin 11.02.2016 20:13
Ну слава богу! Не бывает программ без ошибок, теперь я спокоен.
Исправил, забирайте )
Ответить | Ответить с цитатой | Цитировать
# bugFinder 11.02.2016 23:19
Проверил-работа ет. Спасибо.
Ещё один баг.

Арифметическая операция "%" (остаток от деления) не работает.

Пример (условный):
[Test]
CONDITION = {INDICATOR} % 2 == 0
MESSAGE = Чётное число!

В данном примере ни разу не сработало условие, даже когда точно знал что историческое значение индикатора чётное.
А вот обратная вещь (при нечетном числе) срабатывает всегда, даже когда значение индикатора на самом деле четное:

CONDITION = {INDICATOR} % 2 ~= 0
Ответить | Ответить с цитатой | Цитировать
# admin 12.02.2016 13:04
А вот тут я вам возражу. Это не баг, а особенность всех компьютерных программ, возникающая при работе с числами с плавающей запятой. Луа (на котором написан Alerter) - язык, использующий именно такую математику, а не целочисленную.

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

Поэтому
  • 10 % 2 == 0 -- true, погрешность не накопилась.
  • 130.95 * 200 % 2 == 0 -- false, погрешность накопилась.

Если у вас есть интерпретатор lua, вы можете в этом убедиться сами.

Выход прост:

abs({xxx} % 2) < 1
Ответить | Ответить с цитатой | Цитировать
# bugFinder 12.02.2016 13:49
Понятно. Спасибо.
Такой вариант подходит.
Ответить | Ответить с цитатой | Цитировать
# digit123@yandex.ru 12.02.2016 03:40
отдельная тема на которой вы сможете заработать - это сделать отдельно от алертера отдельный алерт по пэтернам японских свечей на lua для квика. Думаю спрос может быть хороший на такой продукт. Для метастока масса вокруг скрипта, на луа не встретил ни одного. в идеале при обнаружении пэтерна алерт должен менять фон с текущей свечи и должен окрашивать в зеленый или красный цвет.
Ответить | Ответить с цитатой | Цитировать
# sekret_x 12.02.2016 09:35
Раз пошла такая пьянка, то и я приложусь к работе )))) Попробую без полемики и сложных описаний, а просто примером, убедить Михаила не вредничать ))) , а сделать то что мы просим, хоть так.
Понимаю, вредность связана с тем что он бросил курить, сам помню что это такое - курил 15 лет, уже не курю 8. Итак, много писать не буду, как вижу в файле ini :


[Рост в LKOH за 3 свечи]
CONDITION = {Лукойл} - {Лукойл,2,Open} > 2
DESCRIPTION = Рост в Лукойле 3 последние свечи равен #{Лукойл} - {Лукойл,2,Open}#
COLUMN = Весёлые розовые поросята(назван ие столбца), Увеличение числа поросят на #вычисляемое и обновляемое поле#
MESSAGE = Рост в Лукойле больше 2 рублей за 3 последние свечи
SOUND = Alert.wav
EMAIL = Рост в Лукойле 3 последние свечи = #{Лукойл} - {Лукойл,2,Open}#

Теперь подробней, при срабатывании условия алерта и до конца true, начинает рассчитываться поле COLUMN (по сути можно было бы сделать и не одно такое поле COLUMN 1 COLUMN 2, по их числу добавляется количество столбцов в результирующей таблице ). При помощи этого поля можно наглядно увидить динамику изменений определённых параметров, оценить силу сигнала.

Ну наверно всё, надеюсь "Весёлые розовые поросята" будут весомым аргументом, и спасибо за эту доработку скажут не один десяток конечных пользователей alertera
Ответить | Ответить с цитатой | Цитировать
# digit123@yandex.ru 12.02.2016 11:36
не понятно. вы хотите считать число срабатываний данного условия для оценки силы этого условия?
Ответить | Ответить с цитатой | Цитировать
# sekret_x 12.02.2016 12:10
Давайте дождёмся резолюции Михаила. Я думаю, что расписал достаточно понятно.
Имеется ввиду что при срабатывании основного условия в таблице будут считаться какие угодно другие условия (в том числе и основное) и выводится в отдельный столбец.
Ответить | Ответить с цитатой | Цитировать
# admin 12.02.2016 12:15
Ну раз наметился такой флешмоб, то придется что-то предпринять по этому вопросу.

Думаю, можно ли это сделать красивенько и правильно.
Ответить | Ответить с цитатой | Цитировать
# sekret_x 12.02.2016 12:16
:lol: :lol: :lol: yes, мы сделали это!!!!!
Ответить | Ответить с цитатой | Цитировать
# bugFinder 12.02.2016 13:44
sekret_x,

как пользователь Alerter'а хочу высказаться ПРОТИВ предложенной идеи добавлять "#вычисляемое и обновляемое поле#" (сообщение выше про весёлых розовых поросят).

Обоснование:
1. Суть уведомления в том, чтобы после него сразу совершать какое-то действие (покупать/прода вать). Если не уверен что сразу после уведомления нужно совершать какое-то действие значит измени условия на более "жесткие".
А если боишься пропустить что-то важное создай одно уведомление с названием "слабый сигнал", и второе "сильный"
2. Добавление дополнительного кода уменьшит скорость работы всех функций скрипта

Не вижу целесообразности.
Спасибо.
Ответить | Ответить с цитатой | Цитировать
# sekret_x 12.02.2016 14:06
:lol: Что ж Вы так вскипели, наверно потому что не знаете "особенность всех компьютерных программ, возникающую при работе с числами с плавающей запятой...."

Я и не писал что абсолютно все будут согласны с данным предложением, так как и не все поймут как его использовать. Сразу чувствуется Вы в "жёстком" алгоритме. И, как видите, желающих подобной доработки тут как минимум двое, в отличии от Вас.

Досконально описать жёсткий сигнал почти не возможно, а принять решение на основании параметров мозг сможет.

И по поводу второго пункта, процитирую одного умного человека, я думаю он свои слова узнает :lol: :lol: :lol:
" Алертер съедает доли процента среднего современного процессора. Это сущие мелочи."
Ответить | Ответить с цитатой | Цитировать
# Алексей Кузин 19.02.2016 18:56
Михаил, добрый день!

Программа просто абалденная, использую ее на алерт объемов в свече. Спасибо Вам за нее))
Но хотелось бы задать вопрос, пытаюсь сделать срабатывание на разницу цены открытия и закрытие одного и то го же бара не более, например 50 пунктов, задаю след. условия в двух разных секциях.
Два условия, т.к. цена открытие может быть как больше так и меньше цены закрытия и наоборот.
Но алерт почему то срабатывает через раз.

CONDITION = {SiPrice,1,CLOS E} - {SiPrice,1,OPEN } < 50
CONDITION = {SiPrice,1,OPEN } - {SiPrice,1,CLOS E} < 50

Подскажите пож-та, где мой косяк?
Спасибо!
Ответить | Ответить с цитатой | Цитировать
# admin 19.02.2016 19:11
Трудно сказать. Условия вроде правильные. Думаю, что вы просто чего-то не замечаете )


А условие можно написать в одну строчку

CONDITION = abs({SiPrice,1, OPEN } - {SiPrice,1,CLOS E}) < 50
Ответить | Ответить с цитатой | Цитировать
# avkzn 19.02.2016 19:36
Спасибо Михаил, сейчас попробую )
Ответить | Ответить с цитатой | Цитировать
# avkzn 19.02.2016 19:52
Михаил, еще параллельно вопрос, имеем таблицу всех(обезличенн ых) сделок. В ней поле кол-во, где указано кол-во лотов(контракто в). Возможно ли сделать оповещение по превышению определенного кол-ва этого параметра.
Как я понимаю, в рамках этого алерта это сделать невозможно, т.к. в виде графика эта информация не выводится и идентификатор на него не повесишь.
В графиках индикаторах квик есть параметр - "кол-во в последней сделке", но эти значения не совпадают с данными кол-во из таблицы всех сделок квика, они разняца.
Возможно ли вообще сделать такой алерт в рамках другой программы?

Спасибо!
Ответить | Ответить с цитатой | Цитировать
# admin 19.02.2016 19:59
Можно сделать так. Открыть тиковый график нужного инструмента и на нем смотреть объемы.

Здесь есть небольшая проблемка. Алертер смотрит в рынок с определённой периодичностью. Если между просмотрами вывалится большущее количество тиков, возможна ситуация, что часть этих тиков не будет обработана.

Частично снять проблему можно, если написать условие типа следующего:

дудеть, если максимальный объем в последних 25 сделках больше 1000


В таком случае вы будете получать практически все алерты
Ответить | Ответить с цитатой | Цитировать
# avkzn 19.02.2016 20:12
Цитирую admin:
Можно сделать так. Открыть тиковый график нужного инструмента и на нем смотреть объемы.

Здесь есть небольшая проблемка. Алертер смотрит в рынок с определённой периодичностью. Если между просмотрами вывалится большущее количество тиков, возможна ситуация, что часть этих тиков не будет обработана.


Так и есть, как Вы описали, пробовал ставить тиковый график , но после большущего количества тиков алерт срабатывал на последнее значение этого большущего количества, если оно подходило по условию.

Цитирую admin:


Частично снять проблему можно, если написать условие типа следующего:

дудеть, если максимальный объем в последних 25 сделках больше 1000


В таком случае вы будете получать практически все алерты


Хмм...а интересное предложение, будем пробовать ))

Спасибо за идею )
Ответить | Ответить с цитатой | Цитировать
# admin 19.02.2016 19:53
Я понял суть проблемы

Допустим,на предпоследней свече условие выполнилось. Музычка продудела, секция перешла в состояние true

Далее появляется новая свеча и тестируется новая предпоследняя свеча. Если и на ней выполняется условие, то ничего не происходит. Секция как была в состоянии true, так и осталась. Сигнала нет и не должно быть.

Вот если в этой новой предпоследней свече условие не выполнится, секция перейдет в состояние false и секция будет снова готова играть музычку при следующем выполнении условия
Ответить | Ответить с цитатой | Цитировать
# avkzn 19.02.2016 19:58
Цитирую admin:
Я понял суть проблемы

Допустим,на предпоследней свече условие выполнилось. Музычка продудела, секция перешла в состояние true

Далее появляется новая свеча и тестируется НОВАЯ предпоследняя свеча. Если и на ней выполняется условие, то ничего не происходит. Секция как была в состоянии true, так и осталась. Сигнала нет и не должно быть.

Вот если в этой новой предпоследней свече условие не выполнится, секция перейдет в состояние false и секция будет снова готова играть музычку при следующем выполнении условия


Все верно Вы написали Михаил, когда условие выполнилось на свече и продудела музычка, то в таблице алерта строка осталась подсвечена color, т.е. как теперь понятно из Вашего комментария осталось в состоянии true.
А теперь вопрос, как бы сбросить это состояние перед след. анализом? ))

Спасибо!
Ответить | Ответить с цитатой | Цитировать
# admin 19.02.2016 20:03
Цитирую avkzn:
как бы сбросить это состояние перед след. анализом? ))


Что-то у меня не хватает фантазии. Может, кто другой сможет подсказать?
Ответить | Ответить с цитатой | Цитировать
# sekret_x 19.02.2016 20:39
Цитирую admin:
Цитирую avkzn:
как бы сбросить это состояние перед след. анализом? ))


Что-то у меня не хватает фантазии. Может, кто другой сможет подсказать?


Мне кажется и эту задачу можно решить при помощи обновляемого поля, дудеть конечно не будет, но текущее состояние алерта будет видно.... По сути в этом и есть смысл, определить текущее состояние алерта
Ответить | Ответить с цитатой | Цитировать
# avkzn 19.02.2016 20:27
Цитирую admin:
Трудно сказать. Условия вроде правильные. Думаю, что вы просто чего-то не замечаете )


А условие можно написать в одну строчку

CONDITION = abs({SiPrice,1,OPEN } - {SiPrice,1,CLOSE}) < 50


Спасибо, работает условие с abs.
Ответить | Ответить с цитатой | Цитировать
# Denis K. 22.02.2016 12:24
А не могли бы вы добавить в скриптовый язык переменные? а то во многих полях используются одни и те же числа, и их везде приходится править руками. а так можно было бы задать имя/значение переменной и править только в одном месте:

[Si: Цена меньше заданной]
CONSTANT PRICE = 76500
CONDITION = {Si5m,0} < PRICE and {Si5m,1,Close} > PRICE
DESCRIPTION = Цена Si превысила установленную границу $PRICE
MESSAGE = Цена Si превысила установленную границу $PRICE
SOUND = Alert.wav
Ответить | Ответить с цитатой | Цитировать
# admin 22.02.2016 14:32
Хорошо. Записал, подумаю.
Ответить | Ответить с цитатой | Цитировать
# admin 25.04.2016 10:29
Подумал.

На самом деле внутри условия condition можно написать целую программу на языке Lua. Она может состоять из большого количества функций и иметь весь функционал, предоставляемый языком программировани я. Переменные тоже можно использовать.

Единственное ограничение - не надо из этих функций рушить материнский скрипт и вообще весь терминал ))
Ответить | Ответить с цитатой | Цитировать
# bugFinder 24.02.2016 03:47
Цитирую Denis K.:
А не могли бы вы добавить в скриптовый язык переменные? а то во многих полях используются одни и те же числа, и их везде приходится править руками. а так можно было бы задать имя/значение переменной и править только в одном месте:

[Si: Цена меньше заданной]
CONSTANT PRICE = 76500
CONDITION = {Si5m,0} < PRICE and {Si5m,1,Close} > PRICE
DESCRIPTION = Цена Si превысила установленную границу $PRICE
MESSAGE = Цена Si превысила установленную границу $PRICE
SOUND = Alert.wav

Хочу поделиться своим способом решения данного вопроса. Это не замена переменным в скрипте, но в целом лично мне очень помогло их заменить, т.к. у меня много одинаковых переменных в скрипте, которые не хотелось править каждый раз руками.

Идею подал Михаил, автор этого скрипта, за что ему отдельное спасибо.

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

Пошаговая инструкция как это сделать:

1.Скопировать код горизонтальной линии (который ниже), вставить в блокнот и сохранить как файл с расширением .lua
2.Скопировать полученный lua-скрипт в папку LuaIndicators в Quik
3.Подключить этот lua-скрипт в интерфейсе Quik
4.Добавить на график индикатор "Alerter Lines", который добавляет этот lua-скрипт
5.После его добавления на графике появятся две горизонтальные прямые на уровне 1.0000 и 2.0000. В свойствах добавленного индикатора изменить эти значения на нужные.
6.Там же в свойствах присвоить идентификатор этому индикатору, например Lines
7.Теперь в скрипт алертера можно их вписывать как {Lines} и {Lines,0,CLOSE, 1} (первая и вторая линия)

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

Код горизонтальной линии:

debug = nil

Settings =
{ Name = "Alerter Lines",
Start = 1,
Finish = 2,
line =
{ { Name = "Start",
Color = 0x010000,
Type = TYPE_LINE,
Width = 1
},
{ Name = "Finish",
Color = 0x4fbf5a,
Type = TYPE_LINE,
Width = 1
},
}
}

function Init()
return #Settings.line
end

function OnCalculate()
return Settings.Start, Settings.Finish
end
Ответить | Ответить с цитатой | Цитировать
# ariloum 25.02.2016 00:05
неплохой вариант, спасибо что поделились.

жаль только линии на графике нельзя таскать мышкой - не помешало бы в квике наличие идентификатора для линий.

да и наклонные линии были бы кстати.
Ответить | Ответить с цитатой | Цитировать
# admin 01.03.2016 20:50
Цитирую ariloum:
неплохой вариант, спасибо что поделились.

жаль только линии на графике нельзя таскать мышкой - не помешало бы в квике наличие идентификатора для линий.

да и наклонные линии были бы кстати.


Получите: www.bot4sale.ru/.../indikator-trendovoj-linii.html
Ответить | Ответить с цитатой | Цитировать
# Andrey11 09.03.2016 14:27
Подскажите. Не отправляет уведомления на e-mail: выскакивает ошибка Alerter Mailer Код: 800401F3 и далее окно Не найден объект CDO. Отправка почты невозможна.
Ответить | Ответить с цитатой | Цитировать
# admin 09.03.2016 14:58
Здравствуйте.

Это означает, что у вас в операционной системе отсутствует библиотека cdosys.dll

Кто ее удалил и зачем - мне неведомо...
Ответить | Ответить с цитатой | Цитировать
# Andrey11 13.03.2016 11:34
Спасибо за ответ. Поставил на удаленный сервер, оттуда все отправляет !
Ответить | Ответить с цитатой | Цитировать
# DigitService 15.03.2016 20:36
Михаил, приветствую, интересует есть ли технически возможность в программе добавить возможность сравнивать рассчитанные при каждом срабатывании условия значения. Мне представляется, что это можно было бы сделать с применением глобальных переменных, но может Вы увидите другую техническую возможность.
.
Например. При соблюдении условия A>B я рассчитываю Ценусрабатывани я1, Таргет1 и Стоплосс1.
.
Эти данные рассчитываются в поле Description, а также рассылаются полями Email и Message. При наступлении следующего срабатывания также будут рассчитаны Ценасрабатывани я2, Таргет2 и Стоплосс2, так вот хотелось бы иметь возможность сравнить и посчитать разницу между этими значениями или между собой но из разных условий срабатывания. Вычесть/сложить ценасрабатывани я1 и цена срабатывания2, вычесть/сложить таргет1 и таргет2, вычесть сложить ценасрабатывани я1 и стоплосс2.
.
Можно ли сделать несколько таких глобальных переменных, чтобы при срабатывании условия после расчета необходимых значений, данные значения записывались/со хранялись бы в этих глобальных переменных ячейках и накапливались бы исключительно до следующего срабатывания, пока новое условие срабатывания не создаст новые значения и не обновит глобальные переменные.
Ответить | Ответить с цитатой | Цитировать
# bugFinder 16.03.2016 13:16
Здравствуйте! Нашел ещё один баг. Версия Quik 7.0.4.10

Если включить скрипт Alert.lua в окне включения скриптов в Quik и не выключать, то при каждом выключении/вклю чении Quik скрипт должен автоматически запускаться. Это не происходит когда истекла 24-часовая аутентификация. Т.е. я включаю Quik, загружается интерфейс Quik, отрисовываются графики с предыдущими значениями (до того момента когда Quik был выключен), вижу что окно Alerter отсутствует, появляется стандартное окно ввода временного смс-пароля Quik. Ввожу пароль, графики обновляются, а окно Alerter так и не появляется. (В настройках Quik у меня установлен запрос только текущих данных по текущим открытым таблицам). Приходится запускать Alert.lua вручную. Баг воспроизвёлся примерно 11 раз за последние 14 истекших 24-часовых аутентификаций

С другими подключенными скриптами такого бага нет, т.е. "отваливается" только Alerter

Ситуация похожа на то, что описал пользователь Николай Камынин с форума forum.quik.ru/forum10/topic475/ а именно:

Цитирую DigitService:
Могу предположить, что при запуске в автомате Ваши скрипты обращаются к еще не полученным данным.
В результате получаете nil и аварийное завершение.
когда пускаете кнопкой все данные уже подгружены и такого не происходит..


Также в этом форуме другие пользователи отмечали в качестве возможной причины использование SetTableNotific ationCallback в скрипте. Я не знаю имеет ли это отношение к этой проблеме.

Насколько я понимаю LUA, на котором написан Alerter, довольно гибкий язык, и поэтому в нем можно делать проверки запрошенных данных и скорее всего "усыплять" скрипт пока эти данные не будут получены (если причина связана с этим). Можно ли доработать Alerter таким образом, чтобы в моменты истекшей 24-часовой аутентификации он не "вылетал"?
Ответить | Ответить с цитатой | Цитировать
# admin 16.03.2016 13:24
Здравствуйте.


Проблема неготовности данных очевидна и алертером отслеживается. Если бы дело было в некорректной обработке таких данных, Вы бы видели в окне доступных Lua скриптов диагностику о возникшей ошибке. Как понимаю, у вас этой диагностики нет.

Касаемо SetTableNotific ationRequest. Эта функция конечно же используется в Алертере. У меня нет информации о ее особеностях. Если есть пруф (не фантазии, а проверенная информация) - пожалуйста дайте ее.
Ответить | Ответить с цитатой | Цитировать
# Костя 16.03.2016 16:50
Мне реально помогает, только сегодня пришло 2 уведомления - звонит телефон, в компе орет сирена, я аж растерялся. А так бы пропустил сигнал. Спасибо. (У меня полная версия)
Ответить | Ответить с цитатой | Цитировать
# Руслан_Акс 14.05.2018 08:23
Константин, а можно поподробнее, как Вы добились звонения телефона?
Или это отправка почты на шлюз?
Ответить | Ответить с цитатой | Цитировать
# bugFinder 16.03.2016 17:47
Диагностику о возникшей ошибке в окне Lua скриптов я видеть не могу, потому что:

1. Данное окно отображает диагностическую информацию только с момента своего открытия
2. Проблема возникает сразу после включения Quik. А окно Lua скриптов, сразу после включения Quik выключено

Исходя из этих двух пунктов мне кажется невозможным увидеть диагностику этой ошибки в окне Lua скриптов.

Хочу дополнить баг-репорт дополнительной информацией. Ниже пошаговое включение Quik "с" и "без" 24-часовой аутентификацией.

Включение Quik "без" 24-часовой аутентификации:

1. Запускаю info.exe
2. Отрисовывается пустое главное окно Quik
3. В окне Quik отрисовываются пустые окна графиков, таблиц и окно алертера (т.н. "остовы")
4. В окнах графиков, таблиц и окна алертера отрисовываются соответствующие типы устаревших данных с диска
5. Появляется окно ввода логина/пароля
6. Срабатывает первое уведомление от алертера
7. Ввожу логин/пароль и нажимаю "OK"
8. В окнах графиков и таблиц перерисовываютс я соответствующие типы данных с учетом скачанных (последних)

Включение Quik "с" 24-часовой аутентификацией:

1. Запускаю info.exe
2. Отрисовывается пустое главное окно Quik
3. В окне Quik отрисовываются пустые окна графиков и таблиц
4. В окнах графиков и таблиц отрисовываются соответствующие типы устаревших данных с диска
5. Появляется окно ввода логина/пароля
6. Ввожу логин/пароль и нажимаю "OK"
7. Появляется окно ввода пароля 24-часовой аутентификации
8. Ввожу пароль и нажимаю "OK"
9. В окнах графиков и таблиц перерисовываютс я соответствующие типы данных с учетом скачанных (последних)

Возможно последовательно сть где-то нарушена, потому что пишу по памяти. Если надо подтвердить, готов перепроверить последовательно сть использовав видео запись.

Как видно из сравнения окно алертера появляется на третьем шаге когда идёт запуск "без" 24-часовой аутентификации, а "с" 24-часовой аутентификацией на третьем шаге его нет. Т.е. баг, как мне кажется, больше связан с 24-часовой аутентификацией , а не с некорректной обработкой данных.
Ответить | Ответить с цитатой | Цитировать
# admin 16.03.2016 17:49
А что такое 24-часовая аутентификация?
Ответить | Ответить с цитатой | Цитировать
# bugFinder 16.03.2016 17:59
Цитирую admin:
А что такое 24-часовая аутентификация?

Это маленькое окошко похожее на окно ввода логина/пароля, но только содержащее поле для ввода пароля. Оно появляется если я подключаюсь к своему брокеру и прошло 24 часа с момента последней такой аутентификации. Когда оно появляется, значит мне брокер выслал смс с временным паролем, которое я и должен ввести в это окошко. Разве не у всех двухфакторная аутентификация стоит по умолчанию? :o
Ответить | Ответить с цитатой | Цитировать
# admin 16.03.2016 18:08
Нет, конечно не у всех. У меня ее нет и я совсем не хочу ее иметь.

Если без этой двухфакторной авторизации все нормально, а с ней нет - причина очевидна.

Из луа скрипта что-либо узнать про тип авторизации невозможно. Вероятно, как-то проблему двойной авторизации обойти можно, но у меня нет возможности поэкпериментиро вать
Ответить | Ответить с цитатой | Цитировать
# bugFinder 16.03.2016 18:21
Цитирую admin:
Из луа скрипта что-либо узнать про тип авторизации невозможно. Вероятно, как-то проблему двойной авторизации обойти можно, но у меня нет возможности поэкпериментировать

В настройках алертера есть параметр "TIMEOUT", который определяет частоту обновления скрипта. Можно добавить рядом параметр, например, DELAYEDSTART, который позволит в секундах задавать задержку между инициализацией скрипта (когда Quik его инициализирует) и фактическим стартом работы (когда скрипт начнёт работать), установленную по умолчанию в 0. Так, я думаю, я и те, кто использует подобную систему аутентификации смогут просто задать это значение, например, в 30 и тем самым успеть обойти эту проблему. Но эта задержка не должна остановить весь Quik. Можно так сделать?
Ответить | Ответить с цитатой | Цитировать
# admin 16.03.2016 18:25
Можно. Но проблему это не решит, потому что неизвестно, какую задержку надо ставить. Подозреваю, что она явно зависит от времени, которое пользователь тратит на ввод пароля при двухфакторной инициализации. А ставить задержку в 10 минут - зверство.
Ответить | Ответить с цитатой | Цитировать
# bugFinder 16.03.2016 18:52
Цитирую admin:
Можно. Но проблему это не решит, потому что неизвестно, какую задержку надо ставить. Подозреваю, что она явно зависит от времени, которое пользователь тратит на ввод пароля при двухфакторной инициализации. А ставить задержку в 10 минут - зверство.

Пользователь сам будет устанавливать это значение, отличным от нуля (по умолчанию), если ему это надо. Это не решение проблемы в целом, но я действительно запускаю скрипт алертера каждые 24 часа по новой, серьёзно уже набил в этом деле руку, хорошо прокачал бицепсы и подтянул нижние трицепсы, и уже готов откалибровать под себя переменную этой задержки.
У этой функции есть и другие предназначения. Простой пример: если делать алерт на обрыв подключения к серверу, то оно всегда срабатывает при включении Quik, потому что алертер запускается раньше, чем устанавливается соединение с сервером брокера. И эта задержка помогла бы и эту проблему решить. Конечно, может быть это не у всех, но у меня так.
Ответить | Ответить с цитатой | Цитировать
# admin 16.03.2016 18:57
Имеет смысл. Записал
Ответить | Ответить с цитатой | Цитировать
# DigitService 17.03.2016 18:57
Цитирую admin:
Имеет смысл. Записал



Михаил, иногда Алертер после запуска Квика не включен и окно Алертера отсутствует на том месте где оно было расположено. После включения вручную через меню окно Алертера почему то может открыться на любой вкладке Квика, причем поля Дескрипшн в окне Алертера могут быть красного цвета. Это сохраняется вплоть до тех пор, пока не выключу-включу Алертер снова, либо как альтернатива пока не зайду-выйду в файл настроек Алертер.ини . После этого окно Алертера выглядит нормально и располагаю его на должное место где оно и было. С чем может это быть связано и связано ли это с той причиной, о которой написал Багфайндер? Может ли Алертер запускаться раньше чем получил новые данные утром из за чего и нарушается какой то процесс в программе? Никаких аутентификаций 24 часовых у меня нет.
Ответить | Ответить с цитатой | Цитировать
# bugFinder 17.03.2016 22:18
Цитирую DigitService:
Михаил, иногда Алертер после запуска Квика не включен и окно Алертера отсутствует

Тоже самое, что и у меня.

То предложение, которое я описал выше с задержкой запуска алертера мне кажется должно исправить этот баг. Идея немножко изменилась. Вместо установки задержки в секундах, завершать задержку запуска алертера в тот момент когда установилось соединение с сервером.

Причина проста: алертер (у меня) вылетает только в промежутке времени между включением Quik и установлением соединения. Вылетает он потому что делает что-то не то. В этом промежутке времени он не нужен. Поэтому пускай ничего не делает.

Пошагово:

1. В alert.ini добавить переменную, например, DELAYEDSTART=0
2. Если пользователь меняет "0" на "1",то:
3. При запуске алертер работает в "холостую", проверяя установлено ли соединение с сервером, например, каждые пол-секунды или секунду
4. Если соединение установлено, начинает работать как обычно
5. Если после этого соединение прервётся или будет отключено, "холостой режим" включать повторно конечно не надо.

DigitService,
попробуй сделать следующую штуку, которую я сейчас тестирую. Включи Quik и проверь, что окно алертера на месте и всё с ним нормально. Выключи Quik. Установи файлу "scripts.dat", который находится в папке Quik, аттрибут "только для чтения" (правой кнопкой мышки по файлу>свойства> галочка "только для чтения"). В этом файле хранятся пути на все скрипты, которые мы добавили в Quik и для каждого указано значение включать ли их при включении Quik (т.е. автозапуск). Когда скрипт вылетает, то Quik меняет параметр автозапуска на "выключено". Аттрибут "только для чтения" не даст это сделать. Поэтому когда алертер при очередном включении Quik не запустится на старте, то можно будет просто выключить Quik и включить обратно (2 клика вместо 4, чтобы включить скрипт в окне запуска скриптов).
Ответить | Ответить с цитатой | Цитировать
# bugFinder 17.03.2016 02:38
Цитирую bugFinder:
Пользователь сам будет устанавливать это значение, отличным от нуля (по умолчанию), если ему это надо.
Пока сниму это предложение, возможно я нашел причину, но надо ещё потестировать
Ответить | Ответить с цитатой | Цитировать
# ariloum 16.03.2016 22:30
А можно вывести в настройки время подсветки алерта при срабатывании? А то когда алерт срабатывает идешь посмотреть какой именно, а его уже нет
Ответить | Ответить с цитатой | Цитировать
# admin 17.03.2016 05:42
Есть более простой путь: задать разным условиям разные звуковые файлы для воспроизведения . Можно даже записать их с микрофона.
Ответить | Ответить с цитатой | Цитировать
# sekret_x 21.03.2016 22:14
Цитирую admin:
Есть более простой путь: задать разным условиям разные звуковые файлы для воспроизведения. Можно даже записать их с микрофона.


Ну или воспользоваться стандартными сообщениями QUIK, в которых в истории остаётся в том числе, название alerta, а так же время его срабатывания..
Ответить | Ответить с цитатой | Цитировать
# DigitService 18.03.2016 11:14
Михаил, для информации после загрузки обновления Квик 18.03.16 Алертер почему то вообще перестал работать .. вроде бы включен и все активно.. но нет сообщений, нет мейлов, не ставит лейблы на графике
Ответить | Ответить с цитатой | Цитировать
# koztik 21.03.2016 16:27
Все работает. Даже с ручным запуском этот скрипт-подарок!
Михаил, скажите, пожалуйста, возможно-ли получить номер фрактала в индикаторе fractals и номера линий в индикаторе price channel (думаю верхняя=2, нижняя=0)? для вставки в алертер. Мой мозг уже сломался на поиске этой инфы, скажите, если Вам не трудно. спс!
Ответить | Ответить с цитатой | Цитировать
# admin 21.03.2016 16:31
Добрый день. Все элементарно.

Открываете параметры Настройку) индикатора и смотрите линии. Первая линия имеет номер 0, вторая 1, третья- 2 и т.д.
Ответить | Ответить с цитатой | Цитировать
# koztik 21.03.2016 16:51
Я прочитал в комментах про номера в настройке, но там "upper" и "lower", номеров нет... (контекстное меню редактировать- price channel - параметры, может в каких-то других настройках)?
Ответить | Ответить с цитатой | Цитировать
# admin 21.03.2016 17:08
Для встроенных индикаторов разработчики QUIK такую информацию в явном виде не предоставляют.

Мне помнится, что индикатор Fractals, идущий в составе quik, имеет 2 линии. Верхние фракталы идут по полю high, нижние фракталы по полю low.

Также имейте ввиду, что фракталы отрисовываются "задним числом"
Ответить | Ответить с цитатой | Цитировать
# koztik 21.03.2016 17:10
Спасибо, Михаил!
Ответить | Ответить с цитатой | Цитировать
# koztik 13.04.2016 17:35
Михаил, скажите, пожалуйста, как определить очередность секций, например поменять №1 "ГП больше 100 руб" на №2 "окончание дневной сессии пятницы" на картинке в описании скрипта. Проблема в том, что скрипт выставляет очередность по непонятному алгоритму и когда приходит одновременно несколько сигналов - играет только звук последнего оповещения...
Ответить | Ответить с цитатой | Цитировать
# admin 13.04.2016 18:51
День добрый!

Скрипт на экране сортирует секции по алфавиту
Ответить | Ответить с цитатой | Цитировать
# koztik 18.04.2016 18:18
Спасибо! :-)
Ответить | Ответить с цитатой | Цитировать
# DigitService 18.04.2016 15:58
Михаил, при попытке загрузить новую версию 1.17 выдает ошибку:

?:0: attempt to index upvalue '?' (a nil value)

что можно сделать?
Ответить | Ответить с цитатой | Цитировать
# admin 18.04.2016 16:05
Самое лучшее, что можно сделать - это прислать мне ini-файл с теми настройками, на которых возникает ошибка.
Ответить | Ответить с цитатой | Цитировать
# DigitService 18.04.2016 16:38
версия квик 7.0.4.10 может это как то влияет?
Ответить | Ответить с цитатой | Цитировать
# DigitService 18.04.2016 16:55
дело в том что он это пишет с базовым ини файлом и полной версией алертера прямо после разархивации и установки
Ответить | Ответить с цитатой | Цитировать
# admin 18.04.2016 17:07
У меня установлена версия 7 1 0 381

На ней ничего подобного я получить не смог.

Если у вас есть скайп, тимвьювер или что-то подобное, было бы неплохо посмотреть на ситуацию живьём
Ответить | Ответить с цитатой | Цитировать
# DigitService 18.04.2016 17:10
в системных сообщениях ругается квик что нужен терминал не ниже 7.1.0.0.
Ответить | Ответить с цитатой | Цитировать
# admin 18.04.2016 17:15
Это не Квик ругается, а Алертер вас просит обновить терминал. в 7.0 есть неприятные козявки, мешающие жить.
Ответить | Ответить с цитатой | Цитировать
# Alx 25.04.2016 10:15
Может все таки 7.1 а не 7.0 ?
Но у меня например из квика не обновляется выше 7.0.4.10 и соответственно не получается приобщиться..
Ответить | Ответить с цитатой | Цитировать
# admin 25.04.2016 10:34
Ну что же... Тогда есть 2 пути.

  • подождать, когда брокер проснется и обновит версию
  • Взять актуальную версию с сайта Arqa и установить её
Ответить | Ответить с цитатой | Цитировать
# DigitService 18.04.2016 17:37
Михаил, еще вопрос.. delete all labels включена опция.. но удаляет только последние метки и то с самых коротких графиков 1мин 5 мин 15 мин.. на дейли викли вообще не удаляет лейблы.. можно ли что нибудь сделать?
Ответить | Ответить с цитатой | Цитировать
# admin 18.04.2016 17:41
Алертер убирается только за собой. Чужие хвосты он не чистит. Это же алертер, а не уборщица )
Ответить | Ответить с цитатой | Цитировать
# DigitService 18.04.2016 17:51
поясню. на недельном графике так как включался выключался алертер - выставлено много лейблов на одном месте целым хвостом.. это все лейблы алертера, только если на минутном графике он съезжает и ставит лейбл на пустое новое место, то на дейли и викли он ставит хвосты лейблов в одной точке. и вот они как раз после алертера и не удаляются почему то
Ответить | Ответить с цитатой | Цитировать
# admin 18.04.2016 17:56
У алeртера есть настройка Delete_All_Labels

Если эта настройка включена, то при остановке скрипта он убирает все метки, которые были поставлены В ТЕКУЩЕМ СЕАНСЕ работы скрипта.

Что было раньше - ему неизвестно. Кем и когда были поставлены метки до старта текущего сеанса работы скрипта - ему неизвестно. Как и то, нужны ли эти метки пользователю или нет.

Ничто не мешает вам нажать правую кнопку мышки на графике и удалить вообще все метки
Ответить | Ответить с цитатой | Цитировать
# DigitService 18.04.2016 17:59
да ок спасибо
Ответить | Ответить с цитатой | Цитировать
# Optimus 21.04.2016 11:34
Честно говоря не понятно, как пользоваться Вашим Алертером. Редактировал файл ini :

CONDITION = {_rsi_} < 30
SOUND = Alert.wav

Ни какой реакции от quika нет.
Ответить | Ответить с цитатой | Цитировать
# admin 21.04.2016 17:33
Реакцию от квика ждать незачем - её и не будет.

В таблице Алертера реакция будет в любом случае - там появится секция с вашим условием и ее статус.

Статус может быть Да, Нет или Ошибка. Ошибка появляется, если вы что-то неправильно настроили.
Ответить | Ответить с цитатой | Цитировать
# Optimus 25.04.2016 13:03
В этом то и дело, нет ни оповещения, ни ошибки.
Ответить | Ответить с цитатой | Цитировать
# admin 25.04.2016 13:08
Смотрите лог-файл и сообщения терминала quik.

Возможно, у вас слишком старая версия терминала, возможно, вы допустили ошибку в настройках параметров.

В сообщениях терминала или лог-файле вы найдете ответ на свой вопрос.
Ответить | Ответить с цитатой | Цитировать
# Optimus 25.04.2016 14:32
Теперь так вообще ошибка:
module 'bot4sale' not found:
no field package.preload['bot4sale']
no file '.\bot4sale.lua'
no file 'C:\QUIK_KA\lua\bot4sale.lua'
no file 'C:\QUIK_KA\lua\bot4sale\init.lua'
no file 'C:\QUIK_KA\bot4sale.lua'
no file 'C:\QUIK_KA\bot4sale\init.lua'
no file 'C:\Alerter\bot4sale.dll'
no file 'C:\QUIK_KA\bot 4sale.dll'
no file '.\bot4sale.dll'
no file 'C:\QUIK_KA\bot 4sale.dll'
Ответить | Ответить с цитатой | Цитировать
# admin 25.04.2016 14:42
Вы невнимательно устанавливали скрипт - забыли про библиотеку bot4sale.dll из поставки.
Ответить | Ответить с цитатой | Цитировать
# Optimus 25.04.2016 14:46
Ага уже понял. Спасибо! :)

Но после устанвоки DLL происходит какая то мистика :)
Скрипт требует Квик версии 7.1.0.0 или ваше. Но у меня стоит последняя версия 7.0.4.10 и больше обновления на сервере - нет. :)
Ответить | Ответить с цитатой | Цитировать
# Админ 25.04.2016 15:34
Ну что же поделать, если в версии 7.0 разработчики слегка покуражились?
Требуйте от брокера более свежие версии или просто возьмите последнюю с сайта арки.

И да прибудет с вами Сила! :lol:
Ответить | Ответить с цитатой | Цитировать
# Alx 25.04.2016 19:56
На сайте Арки лежит какой то Quik_Joniur
arqatech.com/ru/support/files/quik-workstation/
Это оно?
Просто чтото стремно оттуда устанавливать, а что если полетят какие-нибудь текущие брокерские настройки? не хочется лишнего гемора потом.
А может есть ссылочка на предыдущую версию Алертера? :-)
Ответить | Ответить с цитатой | Цитировать
# Alx 29.04.2016 12:29
Набрался Силы и сделал установку 7.2 с сайта Арки, докладываю. Ничего сложного :)
Заинсталил всё в отдельный каталог, предварительно сохранив в старом квике файл настроек. Подтянул его в новой версии, переписал два файла ключей + настроил соединение. Ну там тему на стандартную поменять + пару личных предпочтений в настройках и всё заработало как и былО!

Алертер настроил на свой индикатор, всё работает, надо только внимательно ознакомиться с примерами в ini файле.

Михаилу респект.
Поддержал немного топ-менеджеров Леман бразерс, жду пароль :)
Ответить | Ответить с цитатой | Цитировать
# admin 29.04.2016 12:36
Топ-менеджеры улыбаются. :roll:

А пароль вам выслан.
Ответить | Ответить с цитатой | Цитировать
# Optimus1 29.04.2016 16:24
Подскажите пожалуйста ценник на этот замечательный Alerter - решил приобрести :)

И подскажите пожалуйста можно ли приобрести его в двух версиях старой, которая идет на версии Квика 7.0.4.10 и какой нибудь более новой версии, на тот случай еслик Брокер все таки решит обновить Квик ?
Ответить | Ответить с цитатой | Цитировать
# admin 29.04.2016 16:31
Замечательный Алертер не может стоить дешево ! )

Если серьёзно - я не ставлю ценник - руководствуйтес ь собственным пониманием справедливости.

Касаемо версий. Я не храню архив версий. Та, что на сайте и есть единственная и неповторимая.
Ответить | Ответить с цитатой | Цитировать
# Optimus1 29.04.2016 16:56
К сожалению единственная и не повторимая версия у меня не идет из за версии Квика. Но у меня есть Zip архив с алертером от августа 2015, вот он в демо версии идет.
Ответить | Ответить с цитатой | Цитировать
# admin 29.04.2016 17:06
Поставьте последнюю версию с сайта арка. Все будет хорошо.
Ответить | Ответить с цитатой | Цитировать
# Optimus1 29.04.2016 17:08
Это было бы проще всего, но у меня Quik модернизированн ый от брокера, скачанный с сайта у меня не пойдет.
Ответить | Ответить с цитатой | Цитировать
# admin 29.04.2016 17:15
Модернизированн ый? О как... Лучше бы вместо умного лица версии меняли почаще.

Раз так - немножко подождите и брокер обновит версию у себя.
Ответить | Ответить с цитатой | Цитировать
# dselihov 30.04.2016 09:46
Могу отправить (С разрешения админа) архив от февраля месяца. На 7.0.** идет. Пароль на полную версию, также у Михаила.
Ответить | Ответить с цитатой | Цитировать
# admin 30.04.2016 09:52
Конечно поделитесь, если есть возможность
Ответить | Ответить с цитатой | Цитировать
# Optimus1 30.04.2016 12:07
Если не сложно, то пришлите пожалуйста. А на какой счет благодарность перечислять ? :)
Ответить | Ответить с цитатой | Цитировать
# dselihov 30.04.2016 15:02
Напиши почту
Ответить | Ответить с цитатой | Цитировать
# Optimus1 30.04.2016 20:32
Ответить | Ответить с цитатой | Цитировать
# ivanych 27.05.2016 21:46
подскажите пож...где смотреть идентификатор,ч тобы записать его в квике и где писать условие??что-то не догоняю как он работает
Ответить | Ответить с цитатой | Цитировать
# admin 28.05.2016 10:07
Здравствуйте.

Идентификатор указывается в свойствах графика. Выше в комментариях есть картинка по этому поводу.

условия задаются в конфигурационно м файле. смотрите в нем готовые примеры
Ответить | Ответить с цитатой | Цитировать
# Devil 29.05.2016 02:15
Здравствуйте.
Можно ли сделать алёрт на появление в стакане заявок лимитки >= определённой величины?
Ответить | Ответить с цитатой | Цитировать
# admin 29.05.2016 10:05
Добрый день.

Текущая версия алертера берет информацию с графиков. Поэтому анализировать стакан он не умеет.

Обработку стакана у меня уже просили, она лежит в списке TODO. Правда, лежит у же давно....
Ответить | Ответить с цитатой | Цитировать
# maxlifter 30.06.2016 16:28
Добрый день,как можно настроить звуковое оповещение по изменению параметров(теку щие средства или прибыль\убытки) в таблице клиентский портфель ?
Ответить | Ответить с цитатой | Цитировать
# admin 30.06.2016 18:44
Можно. Было бы желание.

Придется чуточку почитать документацию на луа и все получится. Например:

[Текущий остаток по денежным средствам]
; Параметры для функции getMoneyEx берем из таблицы лимитов по денежным средствам
; Порядок входных параметров: Фирма,КодКлиента,Группа,Валюта,ВидЛимита
; Столбец, значение которого нужно получить, кодируется так:
; openbal Входящий остаток по деньгам
; openlimit Входящий лимит по деньгам
; currentbal Текущий остаток по деньгам
; currentlimit Текущий лимит по деньгам
; locked Заблокированное количество
; locked_value_co ef Стоимость активов в заявках на покупку немаржинальных бумаг
; locked_margin_v alue Стоимость активов в заявках на покупку маржинальных бумаг
; leverage Плечо
CONDITION = getMoneyEx("NC0 011100000","qte st078","EQTV"," SUR",0).current bal > 100000
DESCRIPTION = Денег больше чем 100 000
MESSAGE = Денег больше чем 100 000




Аналогично можно настроить уведомления на прибыль
[Текущая прибыль]
CONDITION = tonumber(getPor tfolioInfoEx("N C0011100000","q test078",0).pro fit_loss) > 1000
DESCRIPTION = Прибыль больше 1000
MESSAGE = Прибыль больше 1000

и так далее для любых параметров, которые вы видите в таблицах терминала.

Таки образом можно получать любые доступные параметры из терминала,но необходимо немного попрограммирова ть.
Ответить | Ответить с цитатой | Цитировать
# maxlifter 01.07.2016 11:35
ещё 2 вопроса- что писать вместо 0 если вид лимита т2 (у меня единая денежная позиция), и как сделать уведомление на убыток
Ответить | Ответить с цитатой | Цитировать
# admin 01.07.2016 11:41
  • попробуйте цифру 2.
  • убыток есть отрицательная прибыль
Ответить | Ответить с цитатой | Цитировать
# MaksimZM 05.07.2016 14:17
добрый день! Перевел пожертвование на карту за алерт и индикатор тренд лайн.

Отправитель - Zabelin Maksim
Ответить | Ответить с цитатой | Цитировать
# admin 05.07.2016 15:11
Максим, пароли отправлены вам на почту, с которой была проведена регистрация
Ответить | Ответить с цитатой | Цитировать
# MaksimZM 05.07.2016 21:06
Не работает уведомление по почте, сам алерт работает
код:
TO =
FROM =
SUBJECT = Сообщение Alerter
SMTP = smtp.mail.ru
USERNAME = vtrdr
PASSWORD =хххххххххххх
PORT = 25
SMTPAUTHENTICAT E = 1
SMTPUSESSL = 1 SMTPCONNECTIONT IMEOUT = 30 SMTPSENDUSING = 2

[chanell]
CONDITION = {5mb,1,close} > {5mtb}
MESSAGE = пробит
SOUND = Alert.wav
EMAIL = пробит
Ответить | Ответить с цитатой | Цитировать
# admin 05.07.2016 21:13
Максим.

Утилита отправки почты ошибок не содержит. При невозможности отправить почту она выдает на экран сообщение с кодом. Гугл по этому коду расскажет о проблеме.
Ответить | Ответить с цитатой | Цитировать
# MaksimZM 05.07.2016 21:17
Кода ошибки не появляется но и почта не приходит
Ответить | Ответить с цитатой | Цитировать
# admin 05.07.2016 21:25
Проверьте, правильно ли установлен алертер, есть ли файл alert_mail.exe в папке со скриптом

При отправке почты в системном лотке должен кратковоеменно появиться значок отправки почты. Если сообщений несколько, таких значков может быть тоже несколько.

Проверьте, что у вас установлен нормальный антивирус, а не генно-модифицир ованное гуано.

Проверьте папку спам

Включите трассировку лога и посмотрите, запускается ли майлер.

Или просто ищите момент, где вы были невнимательны.
Ответить | Ответить с цитатой | Цитировать
# MaksimZM 05.07.2016 21:35
Спасибо за ответ, косяк на моей стороне. Была установлена фильтрация.
Извините.
Ответить | Ответить с цитатой | Цитировать
# Man 21.07.2016 15:10
Всем привет!
Подскажите пожалуйста что делаю не правильно. Заполняю поля:

TO = // Адрес получателя
FROM = // Адрес отправителя. Если пропущен, используется значение параметра TO
SUBJECT = Сообщение Alerter // Заголовок письма
SMTP = smtp.mail.ru // Имя SMTP сервера
USERNAME = alex-777-aleks // Имя пользователя
PASSWORD = ******** // Пароль для SMTP (напишите здесь свой пароль)
PORT = 25 // SMTP порт (обычно 25) 465
SMTPAUTHENTICATE = 1 // SMTP аутентификация
SMTPUSESSL = 0 // Используется ли SSL (0 или 1)
SMTPCONNECTIONTIMEOUT = 30 // Таймаут для соединения
SMTPSENDUSING = 2

Майл агент запускается и чрез несколько секунд пишет:

Ошибка. Код: 8002009
Сервер отклонил один или несколько адресов получателей. Отклик сервера: 550 SMTP is availabel only with SSL or TSL connection enabeled.

В чём может быть причина? Заранее спасибо!
Ответить | Ответить с цитатой | Цитировать
# admin 21.07.2016 15:15
Здравствуйте.

Ответ в полученной вами диагностике.

SMTP is availabel only with SSL or TSL connection enabeled

SMTP сервер mail.ru доступен только по SSL или TSL соединению.

Решение

SMTPUSESSL = 1 // Используется ли SSL (0 или 1)
Ответить | Ответить с цитатой | Цитировать
# Bars 26.07.2016 18:33
Коллеги, здравствуйте. Подскажите, пожалуйста, как прописать CONDITION для уведомлений о сделках?
Ответить | Ответить с цитатой | Цитировать
# admin 26.07.2016 19:08
Добрый день.

На текущий момент это не предусмотрено.

В принципе сделать можно, но тут я обращаюсь ко всем заинтересованным.

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

если добавлять возможность отслеживания сделок, может потребоваться не только факт совершения самой сделки, но и получение какого-то набора параметров.

как бы вы видели такую возможность?
Ответить | Ответить с цитатой | Цитировать
# Bars 26.07.2016 19:56
здравствуйте. спасибо за ответ.

У Вас написан отличный журнал сделок. может быть можно построить график всех сделок не по инструменту, а по всему счету и, сравнивая с предыдущим значением отправлять сигнал.
Либо читать таблицу сделок и при появлении новой сделки
отправлять уведомление.
trade_account=get_value(get_item("TRADES", trade_i),"ACCOUNT")

Либо же косвенными методами, например отслеживать изменение "Суммы денежных остатков".
Ответить | Ответить с цитатой | Цитировать
# admin 26.07.2016 20:05
Вопрос был в другом.

Как может выглядеть условие CONDITION, если иметь ввиду, что интересует не только сам факт появлении сделки,но и значения ее полей?

как могло бы выглядеть условие такого рода:
Произошла сделка по Сбербанку и количество купленных лотов больше 10?

как бы вы видели оформление такого условия?
Ответить | Ответить с цитатой | Цитировать
# Fassil 16.08.2016 21:30
Объясните сначала. вообще как его установить.. Квиком пользовался только стандартно.. Скрипты не писал...
Ответить | Ответить с цитатой | Цитировать
# admin 16.08.2016 21:49
Процедура установки описана в статье.

Правила задания условий находятся в файле настроек alert.ini. Там же приведено множество примеров.

Внимательного прочтения первого и второго достаточно для запуска скрипта.
Ответить | Ответить с цитатой | Цитировать
# Fassil 16.08.2016 22:00
Когда распаковываю. То вылезает ошибка и просит ввести код. Раскрываются только несколько файлов. Их нужно скопировать в папку с квиком? И правила условий где нужно писать , в каком файле. Или мне знания программировани я нужны.
Ответить | Ответить с цитатой | Цитировать
# admin 16.08.2016 22:19
Я хочу обратить ваше внимание на необходимость внимательного прочтения статьи и содержимого файла alerter.ini

в п. 1 раздела ИСПОЛЬЗОВАНИЕ этой статьи написано:

Цитата:
Архив содержит демонстрационную и полную версии. Файлы, необходимые для полной версии, закрыты паролем и в демоверсии не требуются.
В том же пункте написано, куда нужно файлы поместить.

в предыдущем сообщении я вам написал про правила условий:

Цитата:
Правила задания условий находятся в файле настроек alert.ini. Там же приведено множество примеров.
Надеюсь, что больше у вас вопросов не возникнет.
Ответить | Ответить с цитатой | Цитировать
# Fassil 16.08.2016 23:21
Да.. Огромное спасибо. Разобрался... А что там такого в полной версии? И что устанавливает файл Exe , который закрыт?
Ответить | Ответить с цитатой | Цитировать
# admin 16.08.2016 23:48
Цитирую Fassil:
Да.. Огромное спасибо. Разобрался... А что там такого в полной версии?


читайте статью

Цитата:
И что устанавливает файл Exe , который закрыт?
отправляет почту
Ответить | Ответить с цитатой | Цитировать
# Lua 23.08.2016 00:05
Ошибка:
CONDITION = {RTSVOL,0,Volum e} > 10000
Пишет что выражение должно иметь логический вид.
Где может быть ошибка?
Ответить | Ответить с цитатой | Цитировать
# admin 23.08.2016 07:58
Очевидно, не получилось считать данные с графика и результат выражения неопределен. Включите трассировку и посмотрите в логе, на что заменяются обращения к графику.
Ответить | Ответить с цитатой | Цитировать
# Сергей Данилович 11.09.2016 18:49
Цитирую admin:
Добрый день.

Текущая версия алертера берет информацию с графиков. Поэтому анализировать стакан он не умеет.

Обработку стакана у меня уже просили, она лежит в списке TODO. Правда, лежит у же давно....

Михаил, а где находится этот список TODO?
Ответить | Ответить с цитатой | Цитировать
# admin 11.09.2016 19:28
Если это действительно интересно, то он лежит в виде комментариев в файле, отвечающем за сборку скрипта.

Касаемо стаканов - я пока не вижу какого-то великого смысла в добавлении этой фичи. Сможете привести две-три внятные задачи, которые нельзя решить существующим функционалом, но можно с использованием стаканов котировок?
Ответить | Ответить с цитатой | Цитировать
# Сергей Данилович 11.09.2016 21:14
С уважением, осмелюсь предположить, что какая-то часть заявок для защиты/пробоя уровня, может быть заметна в стакане по увеличенной плотности больших объёмов.
Ответить | Ответить с цитатой | Цитировать
# admin 11.09.2016 21:35
Это рассуждения об абстрактном.

Приводите реальные примеры задач. Сможете убедить - добавлю.
Ответить | Ответить с цитатой | Цитировать
# Сергей Данилович 11.09.2016 21:36
Наверное стоит сначала самому проверить поэкспериментир овать на торгах в реальном времени.
Возможно простой Volume не хуже справится.
Ответить | Ответить с цитатой | Цитировать
# DigitService 12.09.2016 22:39
Михаил, приветствую, интересуюсь как продвигаются дела со сканером, интересует такой же алгоритм как и алертер, только работающий онлайн с биржевой информацией с оповещениями на наборе-списке инструментов числом 30 или 50. Например на срабатывание уровня рси, или выше скользящей средней и т.д.
Ответить | Ответить с цитатой | Цитировать
# admin 12.09.2016 22:47
Добрый вечер!

В конце статьи в разделе СМ. ТАКЖЕ есть ссылка на Market Scaner
Ответить | Ответить с цитатой | Цитировать
# Wolt 28.09.2016 14:38
Возможно ли с помощью данного скрипта создать оповещение о превышение размера тела текущей свечи более 40 пунктов, на минутном графике.
Ответить | Ответить с цитатой | Цитировать
# Wolt 28.09.2016 14:55
Не нашел слова пункт в файле alert.ini
Приведите пример с инструментом SRZ6
Ответить | Ответить с цитатой | Цитировать
# admin 28.09.2016 15:27
К сожалению, у меня не всегда есть возможность и желание исполнять указания.


Возможно, кто-то из гостей сайта захочет вам помочь.
Ответить | Ответить с цитатой | Цитировать
# Wolt 28.09.2016 15:40
Указания???...
У вас комплексы, или таким способом уходите от ответа?!...
Так как не нашел в ini файле даже упоминание о пунктах, попросил простой пример у автора. Такой же пример как с другими условиями, приведенными в ini файле - ни больше, ни меньше.
А в ответ такие выпады :o
Или может просто втюхать не вышло, и он не способен выдавать оповещения на таких условиях :lol:
Ответить | Ответить с цитатой | Цитировать
# admin 28.09.2016 16:18
Думаю, вы все вам необходимое сможете найти на других сайтах.
Ответить | Ответить с цитатой | Цитировать
# DigitService 29.09.2016 02:19
Вольт..старик.. ну уже прям даже некрасиво как то.. не говоря уже о том что в инструкции.. там прям для даунов разжевано все..
Ответить | Ответить с цитатой | Цитировать
# Wolt 29.09.2016 07:50
Еще один "адекват" :lol:
У вас тут секта что ли, гавкаете на людей в унисон. :sad:
Для даунов может и распространяетс я версия где в инструкции присутствуют упоминания о пунктах...
Ответить | Ответить с цитатой | Цитировать
# Мирон 29.09.2016 09:23
Wolt, в этом оповещателе максимум что можно сделать в том направлении которое тебя интересует это задать сигнал на максимальный объем текущей свечи. Это конечно даже не рядом, но больше ничего не сделаешь.
Ответить | Ответить с цитатой | Цитировать
# sekret_x 29.09.2016 11:40
Борзый амиго. На ответ, и извини Михаила , что он в инструкции не предугадал что парни твоего уровня развития будут её читать.
Учи матчасть, опен минус клозе > 40... и это только в случае шорта(если ты конечно знаешь что это).... а чтоб и лонг работал, надо будет добавить некую математическую функцию из инструкции(это уже сам, если сумеешь)

и ни в коем случае не покупай у Михаила алертер, он наверно потом повесится от твоих вопросов))))
Ответить | Ответить с цитатой | Цитировать
# Wolt 29.09.2016 13:24
Вы там, тявкающая троица, случаем не одно лицо :lol:
Уж не верится что столько неадекватов вдруг полезло целовать в засос своего кумира Мишу. Притом что инициатором такого дискуса был ты, Миша! Как тебя перекорежило то :lol:

И на будущее тебе, Миша, уровень развития человека определяется не знаниями программировани я. А вот цивилизованност ью общения отделить такое быдло как ты от адекватного человека вполне возможно!
Ответить | Ответить с цитатой | Цитировать
# admin 29.09.2016 13:48
Пользователь Wolt посыпан дустом. .
Ответить | Ответить с цитатой | Цитировать
# sekret_x 29.09.2016 13:59
Михаил, зачем?? я бы ещё его с удовольствием потроллил!! :lol: :lol: :lol:
Ответить | Ответить с цитатой | Цитировать
# sekret_x 29.09.2016 13:52
Клоун, ты бы сначала поздоровался , прежде чем кого то о чём то спрашивать!)))) может тогда бы к тебе отнеслись по другому.
О программировани и в файле ини даже не идёт речь.
Бесят таки диванные Васьки, но ничего, жизнь когда то научит как надо общаться с людьми.

Сними с себя напряжение, Wolt, и люди возможно к тебе потянутся
Ответить | Ответить с цитатой | Цитировать
# Rubicon 05.10.2016 00:03
Подскажите кто нибудь пожалуйста в чем может быть проблема: в полной версии не выводится сообщение на экран?
В терминале все настроено, да и сообщения стандартного оповещателя в quike выводится.
Простой пример:
[Разрыв связи с брокером]
CONDITION = isConnected() == 0
DESCRIPTION = Связь с брокером потеряна
MESSAGE = Связь с брокером потеряна
SOUND = Broker.wav
Звук проигрывает, текст информационной строки таблицы выводится, экранное сообщение не появляется.
Ответить | Ответить с цитатой | Цитировать
# admin 05.10.2016 06:13
Здравствуйте

Возможно, что экранное сообщение не появляется в силу настроек оповещений в терминале. Разрешите в настройках показывать сообщения на экране.
Ответить | Ответить с цитатой | Цитировать
# Rubicon 05.10.2016 08:34
Добрый день. Включены следующие настройки:
1. "Общие настройки" > "Сообщения" > "Оповещения" включено "Показать уведомления" и галочкой указано "Показать окно с исполненным оповещением".
2. "Общие настройки" > "Сообщения" > "Сообщения трейдера" включено "Показать уведомления".
Какие настройки еще могут не пропускать экранное сообщение?
Ответить | Ответить с цитатой | Цитировать
# admin 05.10.2016 09:19
Давайте отделим мух от котлет.

создайте файл test.lua, содержащего такую строчку:

message("this is a simple test")

и запустите этот файл как скрипт в терминале quik.

если окошко не выскочило - звоните брокеру и добивайтесь с ним правильных настроек.

если окошко выскочило, тогда будем разбираться дальше.
Ответить | Ответить с цитатой | Цитировать
# Rubicon 05.10.2016 10:50
Создал файл test.lua с заданной строкой. Только он не запускается как скрипт, не говоря уже об окошке. :sad:
Ответить | Ответить с цитатой | Цитировать
# admin 05.10.2016 11:09
Должен запускаться.
Ответить | Ответить с цитатой | Цитировать
# Rubicon 05.10.2016 11:15
Может что не так делаю? Подскажите.
Сохранил в Notepad++ строку: message("this is a simple test") в файл test.lua
Ответить | Ответить с цитатой | Цитировать
# admin 05.10.2016 09:56
Убедительная просьба!

Всвязи с большим количеством комментариев к этой статье была создана ветка на форуме bot4sale.ru/.../295-alerter.html#1183 для продолжения обсуждения Алертера.

Пожалуйста, пишите новые сообщения и вопросы на форуме. Все новые комментарии, написанные здесь, будут удалены автоматически.

Спасибо за понимание
Ответить | Ответить с цитатой | Цитировать
Добавить комментарий