Избранное трейдера Classic
Пока не ушли далеко от темы получения данных из таблицы текущих торгов решил сделать в качестве примера еще и простой скринер акций. Это вполне доступно по тем материалам, которые мы уже прошли. Будем отслеживать динамику изменения цены относительно цены закрытия предыдущего дня.
Нам понадобятся:
1. Таблица для вывода данных (строить уже умеем).
2. Получение данных из таблицы текущих торгов через getParamEx (проходили там же).
3. Тикеры бумаг. Можно взять конкретный список бумаг и работать с ним, но приятнее и правильнее, чтобы скрипт мог автоматом выгружать все торгуемые тикеры из терминала и далее уже отслеживать их динамику. Попробуем это реализовать.
Через sec_list = getClassSecurities(«TQBR») можно получить строку с тикерами акций на Московской бирже, которые будут разделены запятыми. Чтобы пройтись по всем элементам и записать их в массив используем цикл:
for TIKER in string.gmatch(sec_list, "[^,]+") do tikers[#tikers + 1]=TIKER end
Отслеживать будем параметр LASTCHANGE – процент изменения цены от цены закрытия:
Сегодня дополним наш алгоритм советника следующими пунктами:
1. Пропуск «поздних» сигналов на старте.
2. Обработка советником обрыва связи.
3. Сохранение сигналов и логов в файл.
Еще один пункт, связанный со временем, который был выбран для апгрейда советника – это пропуск сигналов на старте, если запуск скрипта состоялся не в начале торговой сессии (например любой старт после 10:30). Это может быть полезным, если выбрана активная внутридневная стратегия и сигналы полученные на старте скрипта, например в середине дня, могут быть уже не актуальными (с низким потенциалом прибыли) и лучше дождаться новых. Т.е. необходимо разделить сигналы на те, которые сгенерировались на старте и остальные сигналы, которые будем далее брать в работу. Сигнал на старте может закрыться (по обратному/сигналу выхода) и если переоткроется снова, то его уже можно брать в работу как новый.
В нашем скрипте сигналы по каждому инструменту (массив signal) ранее могли принимать значение:
0 – вне позиции по инструменту
В прошлый раз был создан советник, который по минимальной торговой логике давал нам некие сигналы на лонг/шорт. Но было что улучшать и, может, далеко не все пункты кто-то захочет включить в алгоритм собственного советника, но в учебных целях мы поэтапно рассмотрим каждый, чтобы было понимание как это можно реализовать.
Сегодня дополним скрипт теми пунктами, которые были связанные с обработкой времени:
Прежде всего начала сделаем правильное отображение цифровых данных.
В прошлых примерах все данные в скрипте выводились в формате строки.
При внимательном рассмотрении можно было заметить, что число выравнивалось по левому (как текст), а не правому краю (как число) ячейки.

Типы всегда можно посмотреть по функции AddColumn в файле QLUA (говорили об этом ранее) по запросу «Функции для работы с таблицами Рабочего места QUIK»:
Тип данных в колонке:
QTABLE_INT_TYPE – целое число,
Продолжаем изучение 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».
инструмент: тикер.
параметр – один из параметров для соответствующей группы инструментом (об этом подробнее ниже).
Функция возвращает таблицу со следующими полями:
У меня случился форсмажор, затопил соседей. Решил на будущее купить страховку от таких случаев. Знаю, что уже поздно, но, как говорится, "лучше поздно, чем никогда!".
Существует множество всевозможных страховок и в данной статье попробую разобраться, какую из них выбрать, чтобы не беспокоиться о внезапном затоплении соседей.
История такая — сижу на работе, звонит тетка из управляющей компании и сообщает, что я топлю соседей. Я «лечу» домой и действительно, у меня потек полотенцесушитель. Сам дом — новостройка, живу второй год в нём, но уже не первая проблема с сантехникой, пару месяцев назад тек счётчик, его поменял без негативных последствия для квартиры снизу. В этот раз легко не отделался...
Во-общем, сантехники воду перекрыли, но я успел уже затопить соседку. Спустился к ней узнать, какой ущерб я нанёс и какие расходы по возмещению меня ожидают. После её фразы «я посоветуюсь со своим юристом» на вопрос о нужной сумме я понял, что вся история только начинается.