Поддержу вопрос. В Открытии статус фьючерсов и опционов - проблем нет - все работает, а в БКС например фьючи - работает, а опционы к вечеру статус = 0, хотя все торгуется.
Константин Рейм написал: function main() Status = getParamEx("SPBFUT", "SiZ0", "STATUS").param_value message("!!!"..Status) end
Добрый день.
Проверили скрипт, рабочий. Скорее всего параметр статуса сессии у Вас не заказан.
Зайдите в пункт меню Система/Настройки/Основные настройки/Программа/Получение данных/ и выберите пункт "Исходя из настроек открытых пользователем таблиц"
Этот маразм с этой долбаной "динамической типизацией" вообще вряд ли кто может объяснить. Я вот тоже вынужден использовать код вида: iT=tonumber(GetCell(T,p1,0).image); поскольку "нормальная" конструкция работать напрочь отказывается. А param_image вроде как всегда строка. И вообще, за динамическую типизацию руки-ноги бы повыдёргивал всем козлам, которые этот кретинизм придумали, ибо они АБСОЛЮТНО нихрена не понимают в программировании.
Владимир написал: Этот маразм с этой долбаной "динамической типизацией" вообще вряд ли кто может объяснить. Я вот тоже вынужден использовать код вида: iT=tonumber(GetCell(T,p1,0).image); поскольку "нормальная" конструкция работать напрочь отказывается. А param_image вроде как всегда строка. И вообще, за динамическую типизацию руки-ноги бы повыдёргивал всем козлам, которые этот кретинизм придумали, ибо они АБСОЛЮТНО нихрена не понимают в программировании.
Динамическая типизация тут вообще не при чем, и рядом не стоит. Просто нужно прочитать документацию на эту функцию. Рядовые программисты так и делают, а гениальные нет, отсюда проблемы и непонимание у последних.
s_mike@rambler.ru, Динамическая типизация тут ПРИ ЧЁМ! Чуть не в половине веток этого форума обсуждаются проблемы, так или иначе связанные с тем, что программист лишён возможности определять тип переменных, который зависит лишь от того, какая именно моча ударит в голову исполнительному механизму в данный момент. А "чтецам документации" я уж цитировал давнее: "Читайте сами, раз уж ничего оттуда внятно процитировать не можете". И ответьте на вопросы ветки, господин "понимающий": С КАКОГО БОДУНА "все работает, а опционы к вечеру статус = 0, хотя все торгуется"? С КАКОГО БОДУНА техподдержка рекомендует использовать param_image, а не param_value в получении статуса? С КАКОГО БОДУНА конструкция iT=tonumber(GetCell(T,p1,0).image); работает, а iT=tonumber(GetCell(T,p1,0).value); НЕ работает? С КАКОГО БОДУНА OnTrade и OnOrder дают по 2-3-4 прерывания на одно событие? В какой такой "документации" это написано, господа "рядовые программисты"? Вон, там написано, что в языке и goto есть, а на проверку там кастрированное убожество, которое абсолютно нихрена не умеет. Молчите? То-то же...
Владимир, Вы опять смешиваете язык и его синтаксис с поведением терминала. Даже не терминала, а особенностям потока данных, получаемого от ядра биржи. Статус, биржа отдает, либо брокера на серверной части "режет" его.
И да, точно также, у многих есть претензии к поведению исполнительного механизма (терминала), потоку данных и т.д. Сообщениям о нескольких вызовах колбеков на одно событие уже много лет.
Но язык здесь причем.
Что касается tonumber(GetCell(T,p1,0).value), то чтобы ответить надо понять из какого поля получаются данные. Если из колонки типа "строка", то и не будет работать, т.к. у него value нет.
Цитата
BOOLEAN SetCell(NUMBER t_id, NUMBER key, NUMBER code, STRING text, NUMBER value) Функция задает значение для ячейки в строке с ключом «key», кодом колонки «code» в таблице «t_id». Параметр «text» задает строковое представление значение параметра «value». Параметр «value» необязательный и по умолчанию равен «0». Для столбцов со строковыми типами данных параметр «value» не задается. Если параметр «value» не задан для ячеек всех остальных типов, то по столбцам, содержащим такие ячейки, не будет корректно работать сортировка, фильтрация и условное форматирование (см. Приложение 2). Функция возвращает «true» в случае успешного завершения, иначе – «false».
Nikolay, Да плевать, кто там что "отдаёт", а что "режет"! Данные должны быть корректные ВСЕГДА. И именно язык со своей долбаной динамической типизацией вносит сюда неопределённость.
А я уже "научен горьким опытом" - у меня давным-давно в таблицах стоит тип "строка" на всякий пожарный. Но даже это не всегда помогает! Что до прерываний - мне просто СТЫДНО писать на клиенте-интерпретаторе заглушку на многократное поступление прерываний, а ещё и вразнобой - тем более, что глюкам этим много лет. Но что делать - поставил: "одна заявка - один лот". На код смотреть тошно, но терплю...
Ну да, да - это я скопировал новый код, раньше было просто чтение поля, которое задавалось как число, и без всякого tonumber. Тоже не работало. А сортировка и так работает "спицифиццски" - ей по барабану, стоит там минус в начале или нет. Тоже маразм но я уже привык.