Избранное трейдера Anest
Разобрался, как смотреть все сделки по продаже и покупке акций
4.8 Сделки рынка по инструментам
<alltrades>
<trade secid =”внутренний код :integer”>
<seccode>Код инструмента:string</seccode>
<tradeno>биржевой номер сделки :integer64</tradeno>
<time>время сделки :date</time>
<board> Идентификатор режима торгов :string </board>
<price>цена сделки :double</price>
<quantity>объем сделки :integer</quantity>
<buysell>покупка (B) / продажа (S):string</buysell>
<openinterest>… :integer</openinterest>
<period>Период торгов (O — открытие, N — торги, С — закрытие):string </period>
</trade>
<trade secid =”внутренний код”>...</trade>
</alltrades>
Так же можно визуализировать в виде графика
В данной статье – гайде будем учиться подключать специализированный для алготрейдинга фреймворк OsEngine к Квик. Для того, чтобы можно было торговать через Quik сотнями роботов, которые в OsEngine уже встроены.
В процессе изучения данной инструкции и экспериментов по подключению к Квик из OsEngine мы рекомендуем не использовать боевую версию программы от Вашего брокера, т.к. Вы можете неправильно что-то сделать, ошибиться и потерять много денег, т.к. роботы могут сделать что-то не так.
Мы рекомендуем использовать Демо версию от официального создателя Quik. Это оградит Вас от возможных ошибок при боевом подключении, на период пока Вы учитесь это делать.
Идём в поисковую систему:
-- Настройки SEC_CODE = "SBER" -- Код инструмента CLASS_CODE = "TQBR" -- Код класса инструмента SHORT_MA_PERIOD = 10 -- Период короткой скользящей средней LONG_MA_PERIOD = 50 -- Период длинной скользящей средней QTY = 1 -- Количество лотов -- Переменные short_ma = {} long_ma = {} prices = {} position = 0 -- Текущая позиция: 0 - нет позиции, 1 - лонг, -1 - шорт -- Функция для расчета скользящей средней function calculate_ma(prices, period) local sum = 0 for i = #prices-period+1, #prices do sum = sum + prices[i] end return sum / period end -- Функция для обработки новых тиков function OnAllTrade(alltrade) if alltrade.sec_code == SEC_CODE and alltrade.class_code == CLASS_CODE then table.insert(prices, alltrade.price) if #prices >= LONG_MA_PERIOD then table.
Я — профессиональный программист. Уже достаточно давно. Последние N лет разработчик БД. В основном пишу на sql процедуры и функции. Другие языки программирования начинаю забывать (так как нет практики по ним). В свое время писал на Visual FoxPro (да, это уже «мертвый» язык, он уже давно не поддерживается Microsoft). Но у нас до сих пор крутится задача, где клиентская частью написана на VFP.
Так вот. Встала тут задача написать небольшую консольную утилиту с доступом к БД. Сначала хотел написать на Питоне, но не хотелось на компьютере клиента качать и устанавливать его. И стал я присматриваться к другим языкам программирования. C# не хотелось, во первых чисто субъективно, во вторых, клиент в дальнейшем собирался переходить на Linux (хотя вроде есть core net под линукс). И тогда cтал я присматриваться к языку Go.
Прочитал по нему несколько статей. По описанию, он как никто подходил к поставленной задаче: крост-платформенный. Компилируется в один исполняемый файл, который не требует зависимостей.
Update: В комментариях посоветовали использовать умножение, а не деление. Вот так: MOEX:CNYRUB_TOM*FX_IDC:USDCNY.
Обновляемый сборник статей, касающийся различных подходов к алгоритмической торговле и программирования роботов на Os Engine. Всё в одном месте. Сборник сборников.
1. Системные требования. Текст. Видео.
2. Знакомство с Os Engine. Текст. Видео.
3. Зачем нужны спец-терминалы для алготрейдинга? Текст. Видео.
4. Сервер приёма крашей в OsEngine. Текст. Видео.
5. Поддержка OsEngine по направлению MOEX. Текст. Видео.
6. Почему Os Engine написан на С# (си шарп) Текст. Видео.
7. Профконнекторы для MOEX. Сертификаты.
1. Главное меню. Текст. Видео.
2. Os Data 2.0. Текст. Видео.
3. Скачиваем Ленту сделок и стаканы с помощью OsEngine. Текст. Видео.
4. Конвертер. Текст. Видео.
5. Tester Light. Текст. Видео.
6. Погрешности тестирования. Текст. Видео.
7. Тестер. Хранение данных и настройки бумаг. Текст. Видео.
8. Тестер. Склеенные фьючерсы. Настройка неторговых периодов.
Как связаться с сотрудниками КИТа и задать вопросы/уточнить информацию?
🟣clients@brokerkf.ru %F0%9F%9F%A3clients@brokerkf.ru/ — почта службы поддержки (можно задавать любые вопросы, возникающие в ходе работы через КИТ Финанс брокера)
🟣@KitFinanceBroker_bot — бот службы поддержки
🟣support@brokerkf.ru %F0%9F%9F%A3support@brokerkf.ru/ — почта технической службы поддержки (помогают разобраться в работе мобильного приложения КИТ Инвестиции, терминала QUIK и iQuik).
🟣8 800 101 00 55 — горячая линия
🟣Чат ТГ канала КИТа t.me/+CyjKvFLy0tJjNzAy — можно задавать любые вопросы. Если не будет возможности ответить на вопрос (н-р, требуется предоставить персональные данные или данные по счету), переадресуем на службу поддержки.
🟣Сообщество в ВК vk.com/brokerkf— вопросы в комментариях/личных сообщениях
🟣Канал в Дзене dzen.ru/id/64ba7fe78ac3084fd48acfd5 — вопросы в комментариях
🟣Блог в Смартлабе smart-lab.ru/my/BrokerKitFinance/ — вопросы в комментариях
Зачем нужен демо терминал
Где открыть учебный счет
Выставление заявки в торговом терминале через скрипт
Делаем функцию выставления заявки по требуемым условиям
Карман заявок и tri-файлы
Параметры для заявок с примерами по разным рынкам
Почему важно начинать работу с заявками на qlua с демо терминала?
В отличие от рассматриваемых ранее скриптов, в которых мы обращались к окнам терминала и обрабатывали данные с котировок, графиков, индикаторов и таблиц, делали расчеты, выводили сообщения или собственные таблицы, работа с заявками уже завязана на денежные средства. И т.к. у начинающих всегда есть риски ошибок в коде, различных опечаток, некорректном запуске выставлении заявки в цикле и пр., то начать работу с этой темой я настоятельно рекомендую именно в демо терминале. И речь здесь не только о комиссиях за сделку на которые можно попасть, но и вероятности купить не тот инструмент, не в том объеме, как следствие, например влететь на маржиналку и пр., и пр.
Достаточно, например, прописать в
Создание на Lua своего индикатора в графике Quik: Часть 2. Пример работы нестандартных индикаторов: спред между инструментами, прогноз Highи Lowследующего интервала; ценовых уровней по объемам
В первой части (https://smart-lab.ru/blog/930907.php) были изложены основы принципа создания своего индикатора и некоторые нюансы работы с кодом индикатора графика в Qiuk (подразумевается использование языка программирования Lua).
В данной статье немного продолжу тему нюансов кодирования индикатора и для иллюстрации приведу простой код индикатора спреда. В конце текста прикреплю видео с демонстрацией работы индикатора спреда и моих собственных индикаторов.
Небольшое лирическое отступление. Суть данных статей — показать, что делать подобные индикаторы вполне реально и не столь сложно, как может показаться на первый взгляд. Но, безусловно, требует определенных знаний в программировании. Создавать индикаторы из стандартного набора торговой системы Qiuk смысла нет – ведь они уже реализованы.
Сегодня рассмотрим:
Что такое таблица обезличенных сделок.
Настройка таблицы в терминале.
Что делать, если таблица открылась, но она пустая.
Вывод данных с таблицы по DDE.
Работа с таблицей обезличенных сделок через скрипт qlua с примерами.
Пишем советника, показывающего на графике крупных игроков.
Лента всех сделок (она же таблица обезличенных сделок, она же таблица всех сделок) — это тиковый массив сделок с одним или несколькими инструментами, в котором отражается информация по каждой сделке, в т.ч.: цена, объём и направление транзакции (покупка/продажа). Обычно для работы выбирается один инструмент, который отслеживается, реже 2 (например базовый актив и ближайший фьючерс на него). Встречал варианты, когда грузят сразу большой список, но в этом случае может сильно подвисать терминал.
Зачем нужна лента сделок: многие, пытаясь торговать внутри дня, проводят часы за медитативным наблюдением за биржевым стаканом. Однако стакан заявок это только намерение, далеко не все выставленные заявки перейдут в сделки. Более того иногда по некоторым акциям (2го и 3го эшелона) заявки в стакане могут активно «двигаться», создавая видимость, что в бумаге идет активная торговля, при этом, если открыть таблицу всех сделок, то будет видно, что реальных сделок практически нет.