Утилита для QUIK "История
позиций" (LUA)
Презентация
Установка
Настройка
Ответы на частые вопросы
История изменений
Технические требования
Техническая поддержка PMN Trade
Эта утилита является ремейком заслуженно
популярной с 2009-го года
Истории позиций на QPILE.
Новая версия стала намного удобней и быстрее.
Идея.
Работая в терминале QUIK я отметил ряд неудобств связанных с
учётом сделок.
- Во-первых, учёт позиций представлен только в совокупном
численном виде. Если Вам приходится работать по нескольким
торговым системам на одном инструменте, то легко запутаться
в собственных сделках. К примеру одна торговая система
находится в позиции покупки 1 лота, вторая в позиции продажи
1 лота. Но в QUIK реальный объём равен 0 лотов.
- Во-вторых, QUIK совершенно "не помнит", какие сделки
совершались вчера. Таблица сделок ежедневно очищается,
поэтому на следующую сессию, нам не будут доступны: время
открытия, цена покупки, прибыль по позиции и другие очень
необходимые данные. Сохранение сделок и агрегирование
их в позиции вручную достаточно трудоёмкий процесс,
особенно, когда совершается множество сделок по разным
инструментам.
- В третьих, на фьючерсном рынке FORTS некоторые контракты
рассчитываются в долларах, а столбец "Вариационная маржа"
обновляется медленно. Поэтому, узнать свой результат в
родной "деревянной" валюте, можно не сразу.
- В четвёртых, в системе QUIK необходима среда учёта
сделок, куда можно было обратиться автоматическим торговым
системам (роботам). Данные размышления, привели меня к идее
создания программы, которая бы, самостоятельно вела историю
позиций. Изрядно намучавшись с ручным учётом своих сделок в
MS Excel, я наконец-то же решился разработать собственное
решение. Представление данных мне больше всего импонировало
в терминале MetaTrader 4, поэтому учёт сделок схож.
Описание возможностей. И так, рассмотрим
как работает портфель. Для примера откроем первую позицию по
фьючерсу на индекс РТС. После входа в рынок, появится
открытая позиция в портфеле "История позиций". Мы сможем
увидеть все необходимые данные по этой позиции.
"Комментарий" -
Комментарий для позиции;
"Дата откр." - Дата, когда была совершена
первая сделка позиции;
"Время откр." - Время, когда была совершена
первая сделка позиции;
"Код клиента" - Код клиента полезен для
работы нескольких клиентов;
"Код класса" - Код класса для бумаги;
"Код бумаги" - Код бумаги;
"Бумага" - Полное название бумаги;
"Операция" - Операция позиции: "Покупка" или
"Продажа";
"Кол-во" - Текущее количество в позиции;
"Объём" - Текущий объём в позиции;
"Цена откр." - Цена открытия позиции.
Изменяется с изменением количества в позиции;
"Дата закр." - Дата закрытия позиции. Для
открытых позиций текущая дата;
"Время закр." - Время закрытия позиции. Для
открытых позиций текущее время;
"Цена закр." - Цена закрытия позиции. Для
открытых позиций текущая встречная цена для закрытия
позиции;
"Комиссия" - Комиссия позиции. Включает в
себя комиссию брокера и комиссию торговой системы (биржи).
Для открытых позиций учитывается только комиссия для
открытия позиции, для закрытых выводится вся комиссия;
"НКД обл." - Накопленный купонный доход
облигации. Расчитывается НКД для позиции. Столбец необходим
только для работы с облигациями;
"Дней позиции" - Количество дней после
открытия позиции;
"P/L" - Прибыль в
валюте депо, т.е. в рублях. Выводит прибыль без учёта
комиссий и НКД облигаций по позиции, учитывая текущую цену
закрытия;
"P/L %" - Прибыль в
процентах от объёма без учёта комиссий и НКД облигаций;
"P/L чист." -
Прибыль в валюте депо, т.е. в рублях. Выводит прибыль
с учётом комиссий и НКД облигаций по позиции, учитывая
текущую цену закрытия;
"P/L общ." - Общая
прибыль в рублях. Средства представлены с учётом комиссий и
НКД облигаций и имеют накопительный вид. Отсчитываются от
начального значения средств, указанного в настройках.
Вычисления в столбцах идентичны для открытых и
закрытых позиций.
"Номер" - Номера сделок, участвующих в
создании позиций.
*В последующих версиях могут появится новые столбцы.
Теперь, когда мы разобрались с
предназначением столбцов, рассмотрим алгоритм
открытия и закрытия позиций. Возможны четыре
варианта.
1. Открытие и закрытие позиции. Например, совершаем
сделку продажи ранее купленного фьючерса РТС (т.е.
закрываем позицию). Наша позиция попадает в список
закрытых позиций со всеми необходимыми нам
столбцами.
2. Увеличение позиции. К открытой позиции добавляем
сделку того же направления. В этом случае цена
открытия усредняется, а также увеличивается комиссия
и другие значения открытой позиции. В примере ниже
был куплен 1 контракт, добавили ещё 1, получили 2.
3. Уменьшение позиции. Из открытой позиции закрываем часть объёма. Закрытая
часть попадает в закрытые позиции, оставшаяся остаётся в открытых позициях.
Большая часть комиссии остаётся в открытой позиции. В примере ниже было 2
контракта, продали 1 контракт, он ушёл в закрытые позиции навеки.
4. Разворот позиции. Часть объёма попадает в закрытые позиции, часть остаётся в
открытых позициях, изменив направление. В примере ниже был куплен 1 контракт,
продали 2 контракта. Получилась новая позиция продажи 1 контракта. Последняя
часть позиции покупки ушла в закрытые позиции.
Давайте рассмотрим пример раздельных
позиций. Эта возможность очень важна для тех, кто
торгует несколькими стратегиями по одному
инструменту. Например, мы торгуем двумя МТС: 2MA
(две скользящие средние) и скальпируем вручную.
Разграничение позиций я решил организовать при
помощи комментариев. И так, открываем позицию с
комментарием "2MA". Теперь совершаем скальперские
сделки (открываем и закрываем позиции) при этом не
указываем комментарий. Первая позиция с комментарием
"2MA" остаётся открытой, тогда как скальперские
позиции учитываются отдельно. Мы можем иметь сколько
угодно отдельно учитываемых позиций, при этом нам
будет известно в каком положении каждая из позиций.
При помощи скрипта "История позиций" мы
можем вести любую удобную статистику в MS Excel. Для
этого достаточно открыть файлы закрытых и открытых
позиций. Дальше возможности ограничены только MS
Excel. Мы можем создавать графики, упорядочивать
позиции, высчитывать прибыль группы позиций и т.д.
Скрипт сохраняет в файлы исторические
данные таблиц:
- Таблица сделок "Сделки.csv"
- Таблица заявок "Заявки.csv" (только исполненные)
- Таблица стоп-заявок "Стоп-заявки.csv" (только
исполненные)
- Таблица закрытых позиций "ЗакрытыеПозиции.csv"
(дублируются из таблицы скрипта)
- Таблица открытых позиций "ОткрытыеПозиции.csv"
(дублируются из таблицы скрипта)
Выгруженные файлы могут использоваться для
собственной статистики, но основной целью является
взаимодействие с роботами. Независимо от того,
написан ли робот на внутреннем языке LUA
или является внешней программой, мы можем всегда
"заглянуть" из программного кода, к примеру, к
открытой позиции, получив важную информацию о цене
открытия, прибыли и всех остальных важных данных.
Такой вариант не только ускоряет написание
автоматизированных систем, но и устраняет
необходимость ведения статистики внутри робота.
Последнее существенно ускоряет работу роботов,
особенно если их несколько.
Также, есть возможность редактировать
и добавлять пропущенные или неучтённые сделки и
расходы. Добавление пропущенной сделки может
потребоваться, если скрипт не собрал сделку в
предыдущие дни. Напомню, что систему QUIK с
загруженным скриптом необходимо загружать каждую
торговую сессию, или, хотя бы, в конце сессии для
сбора данных из таблицы сделок текущего дня. Но если
по каким-то причинам сделка была пропущена, её можно
записать вручную из брокерского отчёта. Добавление
неучтённых расходов, может быть необходимо для учёта
брокерских расходов или для ежегодного учёта НДФЛ.
Чтобы добавить расход необходимо открыть файл
Сделки.csv и записать необходимые псевдосделки.
Например, я записываю ежемесячный сбор за ведение
аналитического счёта в размере 100 рублей. Для этого
создаю первую сделку продажи с ценой открытия 100 и
вторую сделку покупки с ценой 0. В итоге получается
закрытая позиция с прибылью -100.
Примечания.
1. Расчёт комиссии брокера для фьючерсов может
рассчитываться в двух вариантах: в рублях за контракт
(Открытие, БКС, Финам, Кит Финанс) и на основе комиссии
биржи (Ай-Ти Инвест). Способ расчёта комиссии на FORTS
уточните у Вашего брокера.
2. При торговле на FORTS используется два кода класса:
- "SPBFUT" (основная сессия)
- "FUTVN" (вечерняя сессия)
Дабы избежать путаницы, в таблице позиций все сессии будут
отображаться с кодом класса "SPBFUT".
3. Все комиссии выводятся с учётом НДС.
4. Прибыль по инструментам номинированным в долларах
(например, фьючерс на индекс РТС) будет выводится с учётом
курса валют. При резких изменениях курса и длительном
удержании фьючерса, номинированного в долларах, возмозможны
незначительные неточности в учёте прибыли.
5. Следует учесть, что программа не может учитывать
все издержки. Кроме комиссий, есть ежемесячные сборы
брокера, транзакционные издержки, прибыли от "овернайт"
займов и т.д. Информация о них недоступна в системе QUIK,
поэтому узнать о них можно только из брокерских отчётов. Я
сделал программу максимально гибкой для того, чтобы можно
было записывать дополнительные издержки вручную.
Полная инструкция:
Установка скриптов LUA в QUIK
Видео (рекомендуется):
"История позиций" (LUA).
Презентация.
Установка.
1. Запускаем файл дистрибутива
История позиций.exe.
2. Указываем путь к QUIK (можно скопировать:
QUIK-Система-Сохранить настройки в файл…).
3. После установки откроется папка с установленной
программой.
Подготовка QUIK.
1. Для удобства, в папке с установленной программой имеется
созданная вкладка
История позиций.tab. Нажимаем на
названии любой вкладки QUIK-Загрузить
вкладку из файла -переходим в папку
[QUIK]\lua\История позиций-выбираем
файл
вкладки
История позиций.tab
и нажимаем "Открыть".
Загрузка скрипта в QUIK.
1. В QUIK
переходим: Сервисы-Lua
скрипты...-Добавить-переходим в папку
[QUIK]\lua\История позиций-выбираем
файл скрипта
История позиций.luaс
и нажимаем "Открыть".
2. В панели выбора скрипта "Доступные скрипты" выбираем
скрипт История
позиций
и нажимаем "Запустить". Если скрипт з агрузился
успешно, напротив слева появится зелёный треугольник слева и
загрузится таблица скрипта.
3. Панель выбора скрипта можно закрыть.
Видео с описанием настроек:
"История позиций" (LUA).
Презентация.
Вся информация о
пользовательских параметрах находится в окне настроек.
Можно ли
оплатить картой Сбербанк прямым переводом и уменьшить
комиссию?
Можно, и не только картой.
Свяжитесь и
оплатите удобным способом.
Можно ли
рассчитывать на техническую поддержку?
Да, я разработчик и решу вопрос с
вероятностью до 100%.
Будет ли
работать утилита на новых версиях QUIK
8.5 и выше?
Да, утилита тестируется на последних
версиях QUIK. Для получения старых
версий для QUIK 7,
свяжитесь
со мной. Однако, рекомендуется обновить
QUIK (Система-О программе-Проверить обновление
программы), т.к. старые версии
имеют меньше возможностей.
Чем отличается
История позиций LUA от старой версии
История
позиций QPILE?
История позиций LUA имеет ряд
преимуществ:
- значительно улучшено управление (основные действия проводятся нажатием
кнопок на самой таблице),
- упрощён порядок установки,
- ускорена работа,
- добавлена адаптация для светлой и тёмной темы QUIK.
Есть и недостатки:
- после перезагрузки QUIK, таблица выводится на текущей вкладке,
- отсутствует выгрузка через DDE и ODBC,
- отсутствуют Статистика торговых систем и Статистика по дням, -
отсутствует возможность отображения линии входа в позицию на
графике.
Будет ли
работать История позиций LUA с файлами старой версии на
QPILE?
Да, полная совместимость. Нужно
скопировать файлы истории из папки старой версии в новую.
Как перейти с
версии QPILE на версию LUA?
Клиентам, приобретавшим ранее версию
QPILE, скидка 50% от стоимости версии LUA. Для перехода
свяжитесь
со мной и
оплатите удобным способом. Потребуется эл. почта,
указанная при покупке прежней версии.
Почему при попытке скачивания или
установки выводятся предупреждения
Windows или антивирусной
программы?
Это логично, т.к. файл скачан из
сети Интернет. Если установщик блокируется, отключите
антивирусную программу, при необходимости, перезапустите
компьютер, скачайте архив заново и попытайтесь установить
заново. Если и это не помогло, см. ниже "Можно ли получить
архив скрипта без файла .exe".
Можно ли получить архив скрипта без
файла .exe?
Все дистрибутивы программ
PMN Trade упакованы в обычный
самораспаковывающийся архив RAR. Установите архиватор
RAR, нажмите пр.кн.мыши, пр.кн.мыши на файле
дистрибутива-Открыть в WinRAR. Затем нужно скопировать
содержимое в папку с QUIK. Папку с QUIK можно найти в
Система-Сохранить настройки в файл.
Почему в QUIK
8.5 и выше настройки открываются Блокнотом?
Для QUIK 8.5 и выше пока нет
необходимых библиотек. В Блокноте можно изменять и сохранять
настройки. Изменения вступят сразу. Следите за обновлениями
на этой странице.
Почему при
первом запуске программы цена открытия открытых позиций
равна текущей на момент запуска?
В терминале QUIK
нет данных о сделках за предыдущие сессии, поэтому
для акций используется средневзвешенная цена открытия
позиции из терминала, а для остальных инструментов текущая
последняя цена на момент запуска. После первого запуска,
можно изменить цену открытия в файле Сделки.csv.
Почему я
закрыл позицию обратной сделкой, а открытая позиция не
закрылась и добавилась новая?
Обратите внимание на комментарии
этих позиций, они должны быть одинаковыми. Также, причиной
может быть совершение сделок на разных счетах, это
действительно разные позиции.
Почему в
закрытых позициях получается несколько строчек при закрытии
одной позиции?
Если открытая позиция имеет
количество несколько лотов или контрактов, и закрывается
частями разными сделками, каждая сделка попадёт в список
закрытых позиций отдельной строкой.
Можно ли
запустить несколько копий скрипта?
Нужно сделать копию папки скрипта с
другим названием в папке lua и заменить название файла
скрипта. Затем запустить созданную копию.
Можно добавить
автоматический учёт дивидендов и дополнительных платежей?
Информация о дивидендах и
дополнительных платежах не приходит в QUIK, поэтому взять её
негде. Предусмотрен ручной ввод размера этих финансовых
показателей в файле Сделки.csv.
Почему не
выводится биржевая комиссия для позиций по акциям?
Биржевая комиссия для акций
учитывается в брокерской.
Почему в
историю заявок и стоп-заявок не записываются активные и
снятые заявки?
Нецелесообразно. Для истории
интересен результат исполненной заявки.
Почему в EXCEL
вместо чисел выводятся даты (напр.<01.янв>) или сокращённый
вид больших чисел (напр.<1.23E-09>)?
Для вывода чисел вместо дат, в EXCEL
Файл-Параметры-Дополнительно-Использовать системные
разделители: убр.галочку-Разделитель целой и дробной частью:
"." (точка)- закрыть документ excel без сохранения и открыть
снова. Для вывода (именно для
визуального отображения, сохранение будет корректным)
больших чисел до 11 знаков увеличить ширину столбца, более:
выбрать сокращённые ячейки, пр.кн.мыши-Формат
ячеек-Числовой-Указать число десятичных знаков 0, если число
целое.
20161103 – Выход первой версии.
20200415 – Обновление для работы с
QUIK 8 (x64).
20200502 – Добавление кнопок быстрого запуска.
20200504 –
Обновление для работы с QUIK
8.5.
20200711 – Обновление для работы с
QUIK 8.7
20201015 – Добавлен параметр «Тип цены
для расчёта прибыли». Цена для расчёта прибыли (цена
закрытия позиции) может приниматься в 3х вариантах. "1" -
РЫНОЧНАЯ.
Для покупок - ПРЕДЛОЖЕНИЕ, для продаж -
СПРОС. "2" - ПОСЛЕДНЯЯ ЦЕНА СДЕЛКИ (для опционов -
ТЕОРЕТИЧЕСКАЯ ЦЕНА). ВНИМАНИЕ! В режиме "2" прибыль будет
возможно завышена, т.к. за расчёт будут приниматься
последняя цена или теоретическая цена, которых может не быть
в стакане котировок. "3" - ЦЕНТР СПРЕДА. Цена будет
расчитываться по формуле: СПРОС + (ПРЕДЛОЖЕНИЕ - СПРОС) / 2.
Если какая либо из цен будет недоступна, например, при
отсутствие спроса, будет автоматически использоваться тип 2,
где нет в расчёте цены спроса. Если все типы расчёта цен
недоступны, берётся цена открытия.
20201110 – Добавлена возможность «Удаление позиции»,
позволяющая удалять выбранные позиции из учёта. Вернуть учёт
позиции можно, удалив её запись из файла «n>
20201115 – Добавлен параметр «Настройки
столбцов таблицы». Определяет порядок вывода и ширину
столбцов таблицы. Например, если поменять местами
"Комментарий(14),Дата откр(10)..." -> "Дата
откр(10),Комментарий(14)...", в первым столбцом будет
отображаться "Дата откр". Изменить ширину столбца можно
изменив его ширину в скобках. Есть возможность запретить
вывод столбца, указав ширину "0". Обратите внимание, на
первых столбцах расположены кнопки.
20201124 – Добавлен модуль «Статистика»,
позволяющий отображать множество параметров торговых систем,
агрегированных по фильтрам.
20201203 – Добавлен параметр
«Привязанная вкладка». Привязанная вкладка, на которой
выводится основная таблица скрипта. Например, "История
позиций". Если оставить поле пустым, то таблица будет
отображаться на текущей вкладке, где был запущен скрипт или
загрузился терминал.
20201205 – Добавлен
символ "апостроф" слева от номеров
сделок или заявок в файлах.
Это необходимо для запрета автозамены в
EXCEL 19-тизначных номеров.
20201213 – Добавлен параметр
«Идентификатор графика с метками». Для отображения линий цен
открытых позиций и меток цен открытия и закрытия закрытых
позиций предусмотрено два варианта. 1. Отображение на одном
графике, с возможностью быстрой смены. Укажите, такой же,
как здесь, идентификатор на любом графике: QUIK->пр.кн.мыши
на линии
графика->"Редактировать..."->"Дополнительно"->"Идентификатор"->ввести
название, н-р "ИП"->ОК. Далее, можно заменять инструмент на
графике, линии и метки будут выводится для актуального
инструмента. 2. Отображение одновременно на нескольких
графиках. Укажите здесь "?", а метки необходимых
инструментов, в виде кодов инструмента: QUIK->пр.кн.мыши на
линии
графика->"Редактировать..."->"Дополнительно"->"Идентификатор"->ввести
код инструмента, н-р " SBER "->ОК. Для отключения
возможности, оставьте поле пустым.
20201214 – Добавлен параметр «Выбранное количество дней».
Количество последних дней для вывода истории. Учитываются
дата и время закрытия позиции. 0 - не использовать и
выводить всю историю.
20201222 – Добавлен параметр «Разделение по комментариям».
"Да" - позиции с разными комментариями будут разделены.
"Нет" - будет отображаться единая позиция по каждому
инструменту. ВНИМАНИЕ! Отключение этой опции приведёт потере
роботами своих позиций с комментариями.
20201222 – Доработана работа с комментариями. В предыдущих
версиях комментарии, которые добавлялись автоматически
брокером («10812/», «10812//»), мешали разделению позиций.
Теперь считывается только содержимое
после символа «/». Например, «10812/» считается пустой
комментарий «», «10812//b1» будет «b1».
20210406 – Добавлена
поддержка
Санкт-Петербургской
бирж и.
Прибыль позиций пересчитывается в рубли по курсу
валюты инструмента на момент сделки.
20231123 – Улучшение. Скрипт Истории позиций теперь
корректно проводит экспирацию позиций с комментарием. Ранее,
сделки экспирации не попадали в учёт роботов. Из-за этого
возникала необходимость ручного редактирования файла
Сделки.csv.
Вы
можете
оставить пожелание по добавлению новой возможности.
• Операционная система
Windows XP x64 / Vista
x64
/ 7 / 2012 / 8 / 10
• Процессор не хуже Pentium 4 (2.0 ГГц)
• Оперативная память не менее 1 ГБ (рекомендуется 4 ГБ)
• 2 ГБ свободного места на жестком диске
• Минимальное разрешение экрана — 1024x600 пикселей
• Рабочее место QUIK версии от 8.5 и выше
• Доступ в сеть Интернет
* Системные требования
программы совпадают с требованиями Рабочего места QUIK:
http://arqatech.com/ru/products/quik/requirements/.
Многолетний опыт работы с клиентами
позволил мне находить самые удобные методы
взаимосвязи.
Видео в YouTube. Я стараюсь обеспечить максимально
понятное описание своих программных продуктов. Гораздо
понятней один раз увидеть, чем несколько раз прочитать.
Мой канал YouTube:
https://www.youtube.com/user/pmntrade.
Чтобы отслеживать новости можно подписаться:
https://www.youtube.com/channel/UCydba-rfY38J8QMJE34J_4Q?sub_confirmation=1.
Скачать видео с YouTube можно при помощи программы Download Master:
https://downloads-master.ru.
Электронная почта. Приоритетный вариант связи. При
покупке, именно Ваша электронная почта является
доказательством приобретения.
Моя электронная почта:
support@pmntrade.ru.
Я отвечаю на каждое письмо, однако, иногда письма блокируются спам
фильтрами, поэтому, если Вы не получили ответ в течении трёх
дней рекомендую попробовать другой способ связи. Если Вы
хотите переслать какую-либо программу *.exe и т.п., то
рекомендуется её упаковать и установить пароль с
шифрованием.
WhatsApp. Включает в себя чат, передачу файлов,
звонки, видеозвонки.
Скачать для ПК:
https://www.whatsapp.com/download или
https://whatsappe.ru/whatsapp-dlya-windows-10
Мой личный номер телефона для WhatsApp:
+7(904)445-77-75.
Skype. Включает в себя чат, передачу файлов, звонки,
видеозвонки, видео Рабочего стола.
Скачать для ПК:
https://www.skype.com/ru/get-skype
Мой личный Skype:
mihalich-bataysk.
Telegram. Включает в себя чат, передачу
файлов, звонки, видеозвонки, группу (где публикуются
новости по обновлениям, новым программам и
возможностям).
Скачать для ПК:
https://desktop.telegram.org
Мой Telegram аккаунт:
https://t.me/mikhail_ponamarenko.
Группа PMN TRADE:
https://t.me/pmn_trade.
Удалённый доступ. Если у Вас быстрый доступ в сеть
Интернет, рекомендую установить
AnyDesk
https://anydesk.com/ru/downloads/windows.
Благодаря такому доступу, я и Вы сможем одновременно наблюдать рабочий стол
и совершать на нём действия. Это идеальное решение для
удалённой поддержки, особенно в связке со звонком.
Что потребуется для быстрого решения проблем? -
Скриншоты. Я рекомендую высылать скриншоты с указанными
проблемами. В Windows есть программа «Ножницы» и много
альтернативных в Интернет: Яндекс Диск, Clip2net и пр.
Также, сделать скриншот всего экрана можно нажав
Ctrl+PrintScreen или PrtSc (кнопка в правом верхнем углу
клавиатуры), затем перейдите к окну переписки и нажмите
Ctrl+V, изображение экрана будет вставлено.
- Файлы. Возможно потребуются файлы из папки скрипта.
Спасибо за
интерес к моим разработкам!
С уважением,
Понамаренко Михаил Николаевич.
Ключевые слова: История
позиций, positions_history_lua, журнал сделок,
дневник трейдера, quik, квик, lua, qlua |