Есть ли возможность автоматически распознать тип инструмента: акция (российская компания), фьючерс, валюта или американские бумаги?, Это нужно знать, чтобы определить с какого счета отправлять заявку
Здравствуйте, брокеры предлагают все больше инструментов для торговли. Приходится как-то адаптироваться. Если раньше не вызывало особых проблем отличить акцию от фьючерса (у фьючерса ГО или buydepo > 0), то теперь, когда есть валюта и американские рынки, стало сложнее. Кто-нибудь сталкивался с задачей распознать тип бумаги, зная ее код и код класса? Это нужно знать, чтобы определить с какого счета отправлять заявку.
#1: Есть метод: getClassInfo для получения данных по SecurityCode и ClassCode #2: ClassCode для разных категорий инструментов и так разный, спутать нельзя, к тому же есть код и для валюты (Currency Code). Если ваш вопрос про то, как отличить фьючерс от акции - просто, ко классу инструмента (ClassCode) #3: Для каждого рынка отдельный счет: для срочного, ММВБ, РТС итд. Поэтому в принципе невозможно купить фьючерс используя "по-ошибке" счет для ММВБ.
Думал на эту тему, но надеялся, что есть способ автоматически распознать. Сейчас как-то переосмыслил и пришел к мнению, что зашить все коды классов не такая уж плохая идея. Спасибо!
В таблице текущих торгов для каждого инструмента транслируется параметр "Тип инструмента" (sectype), его значение можно получить функцией getParamEx(classcode, seccode, "sectype')
Перед тем как задать вопрос, убедитесь, что решение Вашей задачи не описано в официальном мануале - 'Использование Lua в Рабочем месте QUIK.pdf' https://arqatech.com/upload/Public/quik_lua.zip
Nikolay Pavlov написал: В таблице текущих торгов для каждого инструмента транслируется параметр "Тип инструмента" (sectype), его значение можно получить функцией getParamEx(classcode, seccode, "sectype')
Пробовал его вытащить (на джуниор квике), но param_value = 0 и param_image = "" у всех инструментов. Где-то находил, что SECTYPE - это строка, но отладчик говорит, что там таблица.
Владимир Петров написал: Пробовал его вытащить (на джуниор квике), но param_value = 0 и param_image = "" у всех инструментов.
Такой результат getParamEx() или getParamEx2() может возвращать, когда параметр не заказан терминалом с сервера, на каком рынке (по какому классу) пытаетесь получить значение SECTYPE? Какая версия терминала?
Цитата
Владимир Петров написал: Где-то находил, что SECTYPE - это строка, но отладчик говорит, что там таблица.
getParamEx() и getParamEx2() возвращает таблицу Lua.
Перед тем как задать вопрос, убедитесь, что решение Вашей задачи не описано в официальном мануале - 'Использование Lua в Рабочем месте QUIK.pdf' https://arqatech.com/upload/Public/quik_lua.zip
Здравствуйте. Действительно, обновил квик до версии 7.1.0.381 и SECTYPE появился. Вчера пробовал запускать на версии 6.17.1.17 - там не работает. Везде использовал Quik Junior. Причем param_value = 0 везде, а param_image содержит строку с типом секции (Ценные бумаги, Фьючерсы, Опционы, и пустая строка) Спасибо за подсказку! Не знаете, с какой версии данный параметр появился?
Владимир Петров написал: Здравствуйте. Действительно, обновил квик до версии 7.1.0.381 и SECTYPE появился. Вчера пробовал запускать на версии 6.17.1.17 - там не работает. Везде использовал Quik Junior. Причем param_value = 0 везде, а param_image содержит строку с типом секции (Ценные бумаги, Фьючерсы, Опционы, и пустая строка) Спасибо за подсказку! Не знаете, с какой версии данный параметр появился?
Добрый день.
Владимир, проверьте в версии 6.17 данный параметр заказан? Он присутствует в самой таблице?
Фильтры не установлены, вызывал в меню Связь - Перезаказать данные заново, в таблице параметр тип инструмента не появился (через луа тоже пусто) - это все в 6.17 версии. http://prntscr.com/a5902b
param_value=0 и должно быть, как я вижу по скриншоту, Вы работаете на рынке акций ММВБ, на данном рынке параметр SECTYPE является строковым значением, т.е. param_type=3, а для параметров данного типа param_value всегда будет равен 0 (см. справку по QLua).
Перед тем как задать вопрос, убедитесь, что решение Вашей задачи не описано в официальном мануале - 'Использование Lua в Рабочем месте QUIK.pdf' https://arqatech.com/upload/Public/quik_lua.zip
Владимир Петров написал: Фильтры не установлены, вызывал в меню Связь - Перезаказать данные заново, в таблице параметр тип инструмента не появился (через луа тоже пусто) - это все в 6.17 версии. http://prntscr.com/a5902b
Судя по скрншотам предполагаем, что в версии 6.17 у Вас отключена настройка: меню Система/Настройки/Основные настройки/Программа/Получение данных/ пункт "Исходя из настроек открытых пользователем таблиц"
Да, выбран пункт "С учетом настроек, выбранных пользователем вручную через пункт Связь/Списки". Повторял процедуру перезаказа данных после установки настройки "Исходя из настроек открытых пользователем таблиц". Николай выше написал, что настройка "Тип инструмента" только в 7-й версии появилась. Еще глубоко не копал по валюте и Америке (не знаю, чему равен параметр тип инструмента у них), поскольку не все брокеры перешли на 7-ю версию.