Алертер
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Впрямую такой возможности в алертере нет, я ее не добавлял.
Однако сделать желаемое вами можно. В qlua есть функция для получения значения параметра
Функция предназначена для получения значений всех параметров биржевой информации из Таблицы текущих торгов. С помощью этой функции можно получить любое из значений Таблицы текущих торгов для заданных кодов класса и бумаги.
Формат вызова:
TABLE getParamEx (STRING class_code, STRING sec_code, STRING param_name)
Функция возвращает таблицу Lua с параметрами:
Параметр Тип Описание
param_type STRING Тип данных параметра, используемый в Таблице текущих торгов. Возможные значения:
«1» - DOUBLE;
«2» - LONG;
«3» - CHAR;
«4» - перечислимый тип;
«5» - время;
«6» - дата
param_value STRING Значение параметра. Для param_type = 3 значение параметра равно «0», в остальных случаях – числовое представление. Для перечислимых типов значение равно порядковому значению перечисления
param_image STRING Строковое значение параметра, аналогичное его представлению в таблице. В строковом представлении учитываются разделители разрядов, разделители целой и дробной части. Для перечислимых типов выводятся соответствующие им строковые значения
result STRING Результат выполнения операции. Возможные значения:
«0» - ошибка;
«1» - параметр найден
таким образом, можно пытаться получить нужный вам параметр, используя эту встроенную функцию.
Тиа такого: tonumber(getParamEx("TQBR","LKOH","BID").param_value)
сразу скажу, что эта функция ведет себя по-разному при получении разных параметров. Экспериментируйте
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
" ;[Текущий остаток по денежным средствам]
; Параметры для функции getMoneyEx берем из таблицы лимитов по денежным средствам
; Порядок входных параметров: Фирма,КодКлиента,Группа,Валюта,ВидЛимита
...
;CONDITION = getMoneyEx("NC0011100000","qtest078","EQTV","SUR",0).currentbal > 100000 "
Но у меня в квике (фортс,финам) таблица лимитов по денежным средствам - пуста.
Есть похожие данные в таблице "Ограничения по клиентским счетам", пробую вводить данные из неё так:
CONDITION = getMoneyEx("SPBFUT","76хх4хG","FUT","SUR",0).currentbal > 100000
- выдаёт ошибку.
Что есть и где искать значение "Группа" и "ВидЛимита" - не понял. Прошу помощи.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
В любом случае такие фокусы проделываются только после чтения документации.
Алертер на такого рода использование не рассчитан и все эти ухищрения являются по сути "хакерством".
Поэтому помощь в этом вопросе ждать не стоит. Я показал пример, остальное сами....
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Стандартный индикатор об'ема и имеющийся на этом сайте устроены совершенно по разному.
Значения индикатора с этого сайта появляются с задержкой, которая обусловлена временем получения с сервера дополнительных данных.
Проверяйте значение индикатора на неравенство nil и только потом берите значение
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Почему то не работает, не то чтоб, совсем- запускается, висит в панели, ошибок не выдает, но и не помогает
Заданы условия по примеру:
Смысл -при объеме больше 4400 было сообщение, желательно звуковое.
[Большой объем в BRF8]
CONDITION = {BRF8VOL,0,Volume} > 4400
DESCRIPTION = Объём в последней свече Нефти больше 4400 (#{BRF8VOL,0,Volume}#)
MESSAGE = Объём в последней свече Нефти превысил 4400 на #{BRF8VOL,0,Volume} - 4400#
EMAIL = Объём в последней свече Нефти больше 4400 (#{BRF8VOL,0,Volume}#)
LABEL = BRF8,Attention.bmp
SOUND = Alert.wav
в идентификатор внесено BRF8VOL
при выполнении условий никакой реакции. даже поток обезличенных сделок идет.
Что не так делаю??
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
При загрузке в логе
Настройки загружены: {["Окончание дневной сессии пятницы"]={CONDITION="Weekday() == 6 and Time() >= 183000",SOUND="Alert.wav",MESSAGE="Завершение недели на ММВБ"},["Большой объем в BRF8"]={CONDITION="{BRF8VOL,0,Volume} > 4400",SOUND="Alert.wav",EMAIL="Объём в последней свече Нефти больше 4400 (#{BRF8VOL,0,Volume}#)",LABEL="BRF8,Attention.bmp",DESCRIPTION="Объём в последней свече Нефти больше 4400 (#{BRF8VOL,0,Volume}#)",MESSAGE="Объём в последней свече Нефти превысил 4400 на #{BRF8VOL,0,Volume} - 4400#"},["Разрыв связи с брокером"]={CONDITION="isConnected() == 0",COLOR="0xFFCC00",DESCRIPTION="Связь потеряна в #Time()#",MESSAGE="Связь с брокером потеряна"},[""]={TIMEOUT=2000,LOGFILE="Alerter.Log",DELETE_LABELS_AT_EXIT=true,SCREEN_TABLE_FORMAT="10,100,100",TRACE="N",MSEC="Yes"}}
я ничего критического не увидел, как сделать трассировку для подробной картины, к сожалению, я не знаю, школу прогуливал, учился плохо
Ранее, когда я неправильно вносил в идентификатор, выдавало ошибку,(Ошибка получения данных с графика с идентификатором BRF8VOL
19:49:12.970 [Большой объем в BRF8]: Выражение CONDITION должно иметь логический (boolean) тип: {BRF8VOL,0,Volume} > 4400). При внесении в идентификатор - BRF8VOL, ошибки прекратились, но и система не работает.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Давайте еще раз
Заданы условия:
[Большой объем в BRF8]
CONDITION = {BRF8VOL,0,Volume} > 400
DESCRIPTION = Объём в последней свече Нефти больше 400 (#{BRF8VOL,0,Volume}#)
MESSAGE = Объём в последней свече Нефти превысил 4400 на #{BRF8VOL,0,Volume} - 400#
SOUND = Alert.wav
в идентификатор введено следующее- см. приложение в файле
Что не так???
Вложения:
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Я скопировал из вашего предыдущего сообщения секцию, открыл график BRF8, дал ему идентификатор BRF8VOL - и алертер мне сыграл музыку. Я бы удивился, если бы это было не так.
Проверяйте правильность задания идентификатора (например, кириллица и латиница перепутаны) или что-то в этом роде.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
alert.ini:
; Общие параметры
LOGFILE = Alerter.Log // Имя лог-файла. Не будет создаваться если не указан.
TIMEOUT = 0.1 // Частота мониторинга рынка в секундах (1 сек по умолчанию). Минимально 0.1 секунды
TRACE = Yes // Включение подробного логирования. Полезно для отладки условий.
// После того как условия проверены, можно отключить подробное логирование
MSEC = Yes // Вывод времени в лог-файл с миллисекундами
;COLOR = #0066FF // Цвет по умолчанию для выделения истинного условия в экранной таблице.
// Варианты: RGB(R,G,
// Палитру можно посмотреть на www.bot4sale.ru/blog-menu/m4/m4-blog-list/439-lua-colors.html
// Если параметр не задан, выделение цветом по умолчанию отсутствует.
// В любой секции можно задать свой собственный цвет, переопределив цвет по умолчанию.
SCREEN_TABLE_FORMAT = 10,100,100 // Настройка ширины столбцов экранной таблицы. Эти параметры отвечают только
// за визуальное представление данных на экране.
; ================================== УСЛОВИЯ ===========================================
; [Большой объем в RTS]
; CONDITION = {RTSVOL,0,Volume} > 100
; DESCRIPTION = Объём в последней свече RTS больше 100 (#{RTSVOL,0,Volume}#)
; MESSAGE = Объём в последней свече RTS превысил 100 на #{RTSVOL,0,Volume} - 100#
; LABEL = RTSVOL,Attention.bmp
; SOUND = Alert.wav // Если не задан, используется значение цвета по умолчанию.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
; CONDITION = {RTSVOL,0,Volume} > 100
; DESCRIPTION = Объём в последней свече RTS больше 100 (#{RTSVOL,0,Volume}#)
; MESSAGE = Объём в последней свече RTS превысил 100 на #{RTSVOL,0,Volume} - 100#
; LABEL = RTSVOL,Attention.bmp
; SOUND = Alert.wav
А это разве не задание? Я все примеры заданий брал из файла? Просто не могу понять как он запускается.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
; ПРОЧТИТЕ ВНИМАТЕЛЬНО! ЭТО ИЗБАВИТ ВАС ОТ ВПУСТУЮ ПОТРАЧЕННОГО ВРЕМЕНИ.
; РАЗБЕРИТЕ ПРИМЕРЫ ЗАДАНИЯ УСЛОВИЙ И НАБОР ФУНКЦИЙ
; Все строки, начинающиеся с точки с запятой - есть комментарии и игнорируются
; Все, что находится после // и до конца строки - также комментарии и тоже игнорируютсяПожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Теперь файл alert.ini:
; Общие параметры
; LOGFILE = Alerter.Log
; TIMEOUT = 0.1
; MSEC = Yes
; TRACE = N
; COLOR = #0066FF
; SCREEN_TABLE_FORMAT = 10,100,100
; DELETE_LABELS_AT_EXIT = Yes
; [Большой объем в RTS]
; CONDITION = {RTSVOL,0,Volume} > 70
; DESCRIPTION = Объём в последней свече RTS больше 70 (#{RTSVOL,0,Volume}#)
; MESSAGE = Объём в последней свече RTS превысил 70 на #{RTSVOL,0,Volume} - 70#
; LABEL = RTSVOL,Attention.bmp
; SOUND = Alert.wav
Теперь правильно? Привязал идентификатор к цене RTSVOL. и опять ничего не работает.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- DigitService
- Не в сети
- Захожу иногда
-
- Сообщений: 37
- Спасибо получено: 0
Aleter: Связи с брокером нет в 235623
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
