Избранное трейдера Eugene Bright
20 ноября. Промежуточные итоги недели.
Факты.
С понедельника Сбер акции продали 2000мр, фьючерсы продали 1900мр. ГП акции продали 700мр, фьючерсы продали 310мр.
Интерпретация.
В понедельник Сбер упал гэпом на 2%, это следствие геополитических новостей (Украина-США-ракеты дальнего действия). Снижения по направленным объемам не было. Доллар и юань выросли.
Крупняки и Избушки ждали, Толпа паниковала.
Основное снижение в Сбере было во вторник с 15-00, закрыли гэп от 06 ноября. Это была не паника, а планомерное и ожидаемое мною снижение на деньгах (точнее — на их нехватке).
Прогноз. Сбер — 234-, снятие стопов. На Ri аналогично. Доллар и юань — снижение до раннее озвученных уровней. Важно — сегодня аукцион ОФЗ, он определит позицию Минфина по деньгам (а то уже в Федеральный бюджет полез, средств Казначейства ему мало :) ).
Строго ИМХО.
Подробности — Телеграм, t.me/sberanaliz
В статье я расписываю как пользоваться Excel таблицей с подтягиванием информации из API Московской биржи.
Таблицу удобно использовать для автономного подсчёта всех данных по инвестиционному счёту. Её можно кастомизировать как душе угодно.
Все ссылки работают через API Московской Биржи.
Чтобы понять, что такое API проведу аналогию с рестораном. База данных московской биржи- это кухня ресторана, мы и в ресторане и в финансовом мире- клиенты. Как, что, кем готовится на кухне или в базе данных биржи нас не волнует, нам важен конечный продукт. В ресторане официант принимает от нас информацию о том, что мы хотим, передаёт на кухню, там забирает заказ и приносит нам готовый заказ. API делает тоже самое, мы ему говорим что хотим, он делает все манипуляции с базой данных мосбиржи и приносит нам готовую информацию.
Чтобы начать пользоваться таблицей Excel необходимо лишь научиться работать с API, что мы сейчас и сделаем.
Информационно-статистический сервер Московской Биржи (ИСС или ISS) – это сервис, предоставляющий разнообразную биржевую информацию в режиме реального времени, а также итоги торгов и статистические данные.
Основные возможности ИСС:
Данные о ходе торгов в режиме online и итоги торгов доступны только по подписке, естественно платной.
На сайте мосбиржи есть специальный раздел “Программный интерфейс к ИСС“, на котором выложено Руководство разработчика (v.1.4), Описание метаданных и Описание методов.
С этих документов и надо начинать изучать ИИС. Кстати говоря Правила использования биржевой информации Московской Биржи четко определены и наглядно представлены в презентации.
Сегодня:
Узнаем общее количество заявок
Функции getNumberOf и getItem
Как пройтись циклом по всем заявкам
Вывод активных заявок
Снять скриптом заявку
Снимаем все активные заявки скриптом
Снимаем только заявки, выставленные конкретным скриптом
В прошлый раз мы научились выставлять скриптом заявки в терминале, теперь можем поработать с ними.
Выставим скриптом 5 заявок на покупку и продажу от лучших цен BIDи OFFERстакана заявок с шагом в 0,01.
Напишем функцию, которая будет выдавать нам необходимые цены (лучшую цену спроса и предложения) со стакана:
И возвращать -1, если предложения или покупки в стакане не найдены (стакан закрыт, либо нет торгов).
Тогда основной алгоритм в main будет выглядеть:
Функция CreateDataSource
Получение количества свечек данных
Пауза для подгрузки данных
Получение по инструменту OPEN, HIGH, LOW, CLOSE, VOLUME
Обработка времени и даты
Закрытие источника данных
Примеры: получение данных последних 10 свечей, выгрузка новой минутной свечки после её закрытия, текущее значение простой средней SMA10 по минуткам
Простой скрипт выгрузки котировок
Сегодня рассмотрим функцию, с помощью которой можно получать данные биржевых свечек. Это можно делать и с графиков (чуть позже рассмотрим), но в этом случае нужно, чтобы сам график как источник данных был открытым, что не очень удобно, особенно если скрипт использует несколько таймфреймов – необходимо аналогичным образом держать открытыми и соответствующее количество графиков.
Более практичным вариантом является получение данных через функцию CreateDataSource, запрос осуществляется следующим образом:
ds, err = CreateDataSource(код класса, тикер инструмента, интервал)
Код класса: для акций «TQBR», для срочного рынка «SPBFUT».
Продолжаем изучение 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.
Благодаря наводке @quant_trader (за что отдельное спасибо!), переписал свой первый скрипт из поста https://smart-lab.ru/blog/916765.php по выгрузке из терминала всех торгуемых бумаг. Теперь всё выполняется штатными средствами с помощью getClassSecurities.
Далее второй скрипт (из поста выше) выгружает из торгового терминала под закрытие дня (под закрытие основной, либо вечерней сессии — можно устанавливать, я делаю обе выгрузки) необходимые данные по всем бумагам списка.
Особенности запроса. Если ввести:
sec_list = getClassSecurities("TQBR")<br />message(sec_list)
то терминал выдаст строку, где через запятую будут все тикеры, при этом видим, что список не полон, обрывается на RTSB:
Как выяснилось, это связано только с ограничением самого терминала на вывод строки (не более 899 символов).
При этом если посмотреть длину строки, то будет видно, что символов больше:
sec_list = getClassSecurities("TQBR") message(tostring(string.len(sec_list)))
выдаст 1281
Разбив строку по запятым получим весь массив тикеров для дальнейшей работы: