Избранное трейдера Classic
Продолжаем изучение qlua, cегодня:
Интегрируем таблицы в структуру скрипта qlua.
Удаляем таблицы через DestroyTable.
Останавливаем скрипт через IsWindowClosed.
Обработка события закрытия таблицы через коллбэк.
Работа с цветом SetColor, Highlight, SetSelectedRow.
Пишем простого советника.
В прошлый раз мы рассмотрели как с помощью qlua создать таблицу в торговом терминале и заполнить её информацией из таблицы текущих торгов. Но это была статичная табличка, чтобы её «оживить» нужно разместить операции с нашей таблицей внутри структуры скрипта в функции main.
Саму таблицу мы можем создать до цикла while и внести неизменяемые данные (в нашем случае тикер и наименование бумаги), а уже заполнить цифрами и обновлять внутри цикла. Пока будет работать скрипт таблица будет обновляться.
function OnInit() tikers = {"GAZP", "SBER", "VKCO"} progname = "mytable :" timeout = 5000 end function OnStop() do_it = false message(progname.." Финиш.") end function main() message(progname.
Добрый день, друзья!
После пятничного решения ЦБ РФ, который сразу же на 100 б. п. (до 8,5%) повысил ключевую ставку, только ленивый аналитик не бросил в сторону регулятора камень за то, что тот слишком быстро закручивает гайки в борьбе с инфляцией.
С одной стороны, недовольство соотечественников решением Центробанка является абсолютно понятным: ведь повышение ключевой ставки означает рост процентных расходов по кредитам для физических и юридических лиц.
В то же время, предлагаю разобраться: а мог ли Центробанк поступить иначе?
Сначала давайте ответим на следующий вопрос: хотим ли мы, чтобы российская казна финансировала за счёт золото-валютных резервов биржевых спекулянтов, зарабатывающих на схемах «кэрри трейд»?
Предпосылки для подобных спекулятивных схем складываются в том случае, когда процентная ставка регулятора становится ниже инфляции (финансисты в этом случае говорят об отрицательной реальной процентной ставке).
В этом случае Центробанк «бесплатно» кредитует спекулянтов в силу чего начинает раскручиваться «турецкий сценарий» с десятками процентов годовой инфляции и жесточайшей девальвацией национальной валюты.
В сложившейся ситуации покупка иностранных бумаг сопряженно с рисками, но деньги в валюте под подушкой «съедает» инфляция.
Наулучшим образом для себя, я считаю, вложения в облигации российских компаний номинированные в валюте (еврооблигации)
На российском рынке торгуются два фонда на еврооблигации:
YUAN — фонд от Ингосстраха, комиссия 0.4%
SBCN — фонд от Сбера, комиссия 0.7%
Фонд от Сбера инвестирует в облигации не ниже B-, фонд от Ингосстраха инвестирует в облигации не ниже BB.
Фонды «молодые» доходность их:
SBCN 25.84% за полгода
YUAN 13.63% за 2 месяца
Сегодня рассмотрим:
1. Получение биржевых данных через функцию getParamEx
2. Выгрузка списка параметров функции getParamEx через DDE из торгового терминала
3. Создание пользовательских таблиц в торговом терминале
Одна из особенностей работы через квик это то, что можно получать достаточно большой объем биржевой информации по интересуемым инструментам. Большинство других платформ для алгоритмической торговли и терминалов в РФ будут выдавать только цену открытия, максимум/минимум дня, последнюю цену, цену закрытия, объемы по инструментам и максимум еще 3-5 каких-то дополнительных пунктов. В распоряжении тех, кто использует qlua огромная матрица параметров таблицы текущих торгов.
Получить их можно через функцию getParamEx:
getParamEx(код класса актива, инструмент, параметр), где:
код класса: например в случае акций это «TQBR», а в случае срочного рынка «SPBFUT».
инструмент: тикер.
параметр – один из параметров для соответствующей группы инструментом (об этом подробнее ниже).
Функция возвращает таблицу со следующими полями:
У меня случился форсмажор, затопил соседей. Решил на будущее купить страховку от таких случаев. Знаю, что уже поздно, но, как говорится, "лучше поздно, чем никогда!".
Существует множество всевозможных страховок и в данной статье попробую разобраться, какую из них выбрать, чтобы не беспокоиться о внезапном затоплении соседей.
История такая — сижу на работе, звонит тетка из управляющей компании и сообщает, что я топлю соседей. Я «лечу» домой и действительно, у меня потек полотенцесушитель. Сам дом — новостройка, живу второй год в нём, но уже не первая проблема с сантехникой, пару месяцев назад тек счётчик, его поменял без негативных последствия для квартиры снизу. В этот раз легко не отделался...
Во-общем, сантехники воду перекрыли, но я успел уже затопить соседку. Спустился к ней узнать, какой ущерб я нанёс и какие расходы по возмещению меня ожидают. После её фразы «я посоветуюсь со своим юристом» на вопрос о нужной сумме я понял, что вся история только начинается.
Продолжаем погружаться в основы языка. Сегодня рассмотрим:
Циклы for … do… end
while do … end
repeat … until
sleep
Как пройти весь массив циклом
Как пройти таблицу по ключам и значением
break
goto
Локальные и глобальные переменные
Функции
Получение даты и времени
Получение данных через getInfoParam
Цикл for … end
for index = start, end, step do -- start – начало отсчета, -- end – конец отсчета, step - шаг -- тело цикла end
Пример:
for i = 1, 10 do -- пройтись от 1 до 10 c шагом 1 (по умолчанию)<br /> message("i="..i) -- вывод i<br /> end
Можно задать шаг:
for i = 1, 10, 2 do -- пройтись с 1 до 10 с шагом 2 message("i="..i) end
Цикл while do...end
while (условие) do -- тело цикла end
Выполняет тело цикла, пока соблюдается условие. Если условие на старте не соблюдается, то цикл не запустится.
Пример:
a = 1 while a < 9 do a = a + 1 message(tostring(a)) end
Цикл repeat … until
Я очень надеюсь, что в этом году этот список пополнится новыми героями. Многие из этих компаний я незаслуженно оставил за пределами своего портфеля. Но что же, все еще впереди:)
Кстати, этот список компаний точно не полный, пишите в комментарии, какие вы знаете еще компании, которые платят дивиденды не менее 10 лет, включая 2023 год.
Хотите читать действительно полезные статьи по финансовой тематике? Ставьте лайк и подписывайтесь!
Я так же стараюсь писать статьи для как можно большего количества людей, потому создал свой канал на дзен.
Все написанное в статье не является инвестиционной / индивидуальной инвестиционной рекомендацией или призывом покупать / продавать какие-либо ценные бумаги. Покупка ценных бумаг связана с риском частичной и полной утраты вложенных средств. Все инвестиционные решения вы принимаете самостоятельно.
Весь материал, который здесь и далее будет рассматриваться по qlua, работает на 10й версии квика. Вполне допускаю, что со временем какие-то функции разработчики перепишут и в новых версиях что-то нужно будет сверять c мануалами, уточнять хелпом и на форумах, но предполагаю, что а) эти изменения будут вводиться очень не быстро и б) синтаксис и основа при этом останутся без существенных изменений.
Сегодня рассмотрим:
message
Выводит сообщение в торговом терминале в формате окна (в прошлой статье говорил, что удобнее отключить, чтобы не отвлекаться постоянно) и в таблице системных сообщений.
Особенности message: функция после вывода делает перенос строки, поэтому если необходимо вывести несколько значений в одной строке нужно делать их слияние (об этом ниже).
Для корректного отображения русских букв необходимо выбирать котировку файла Windows-1251 (об этом также в прошлый раз мы уже говорили). Иногда по этой причине некоторые разработчики пишут только на английском весь вывод текста в терминал, чтобы не заморачиваться с кодировкой, в т.ч. при размещении на github и совместной работе с кодом.