Задание названия инструмента по маске

Страницы: 1
RSS
Задание названия инструмента по маске
 
Добрый день!
Возможно ли вводить в коде луа распознавание инструмента по маске. Например есть строка кода:
TICER = "RIM0";
чтобы не переписывать код при смене на новый инструмент пробовал варианты: "RI*" и "RI??",
но чего-то не фурычит. Может у кого есть какие идеи?  
 
Цитата
Дмитрий написал:
Добрый день!
Возможно ли вводить в коде луа распознавание инструмента по маске. Например есть строка кода:
TICER = "RIM0";
чтобы не переписывать код при смене на новый инструмент пробовал варианты: "RI*" и "RI??",
но чего-то не фурычит. Может у кого есть какие идеи?  
Один хороший человек спешл фор ю целую статью написал.
 
Предположу, что переписать надо так:
TICER = "RI[%w]"
 
Цитата
Дмитрий написал:
Предположу, что переписать надо так:
TICER = "RI[%w]"
Тогда уж "RI[%w]*". Но я тут подумал, что если вы рассчитываете в таком виде в квиковские функции передавать, то оно работать не будет (и это правильно). Возвращаясь к теме "чтобы не переписывать код", лучше в начале скрипта объявить название бумаги в виде переменной и потом его везде вставлять. Тогда замена инструмента сведется к замене этой одной переменной. Ну как-то так
Код
local classcode = "SPBFUT"
local seccode = "RIM0"

...

function do_something()
  local val = getParam(classcode, seccode, param) -- и так везде, где нужно сослаться на инструмент
end
 
Жалко, что на этом форуме нельзя ставить плюсиков) Ну да ладно. Возвращаясь к нашей теме. Не очень понятна фраза:
Цитата
если вы рассчитываете в таком виде в квиковские функции передавать
В смысле передавать вовне? Моя цель получить некие параметры по TICER = RIM0 из таблицы всех сделок, произвести над ними арифметические операции и результат вывести в таблицу созданную средствами луа.
 
Цитата
Дмитрий написал:
Не очень понятна фраза
Ну то есть если сделать вызов типа
Код
getParam("SPBFUT", "RI[%w]*", "bid")
, то квик воспримет код инструмента буквально, без подстановок, и будет искать его как есть. И не найдет, естественно.

Цитата
Дмитрий написал:
Моя цель получить некие параметры по TICER = RIM0 из таблицы всех сделок
Навскидку вырисовывается вариант с SearchItems, в колбеке будете получать строки ТВС одну за одной, применять свой шаблон к коду инструмента и, если он подошел, использовать эту строку. См. примеры в qlua.chm, приложение 4, там достаточно близко к тому, о чем я говорю.
 
Алгоритм таков:

1. Получаете список классов - getclasseslist
2. Для каждого класса (или для части классов) получаете список всех инструментов - getcclasssecurities
для каждого инструмента проверяете, подходит ли он под вашу маску. Если подходит - добавляете его в таблицу

на выходе получится таблица из всех инструментов, подходящих под вашу маску. Что с ними делать - вам виднее.
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 
Цитата
Anton написал:
Навскидку вырисовывается вариант ...
почему getParam(), я бы ожидал getParamEx()
 
Цитата
Дмитрий написал:
почему getParam(), я бы ожидал getParamEx()
Просто для примера, "на ее месте мог бы быть кто угодно".
Страницы: 1
Читают тему
Наверх