Пожалуй, самая незаменимая в моей торговле разработка Утилита для QUIK «История позиций». Придумал в 2009-м, запрограммировал на QPILE, затем перевёл на QLUA. Программу писал для себя, не под заказ и по своим идеям. Продажи данной программы никогда не отличались большим количеством и стабильностью. Поэтому, считаю её самой недооценённой из десятков своих разработок. Попытаюсь донести полезность утилиты из реальных примеров использования.
Недавно выпустил обновление 20241024.
✅ Учёт комиссий для фондовой секции теперь разделён на биржевую и брокерскую.
✅ Учтена разница комиссий мейкерских и тейкерских заявок.
На скрине видно, как распределяются комиссии биржи и брокера. Сверил с отчётом брокера – всё сходится. Программа сразу рассчитывает и выводит информацию о комиссионных затратах. Напомню, в терминале QUIK информация о биржевой комиссии урезана, а брокерская и, вовсе, недоступна.
✅ Учёт информации о позиции без ограничений.

Представляю свою новую программу Утилита для QUIK «Супер таблица».
Утилита предназначена для создания различных таблиц в торговом терминале QUIK. Пользователь может самостоятельно получать различные значения таблиц QUIK, проводить расчёты и выводить результат в Супер таблицу (аналог MS EXCEL). В комплекте готовый пример «Спреды акций»:

Как можно использовать спреды фьючерс-акция?
✅ Зарабатываем процентную ставку (синтетическая облигация).
Находим наибольший годовой процент. Покупаем акции, продаём фьючерсы равного объёма. К экспирации разница нивелируется. Например, на момент написания «iСофтлайн» показывает хороший результат 26.11% годовых.




-- Настройки
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.