Как тогда считать комиссию, например, по инструментам срочного рынка?
Пока думаю алгоритм такой:
1) Запрашиваем параметры инструмента: iss.moex.com/iss/securities/EuM6
2) Находим там к какой группе контрактов он относится (GROUPTYPE = Валюта)
3) По группе определяем базовую ставку: www.moex.com/s93#komiss1
4) И по формуле вычисляем комиссию.
Если используете QUIK, то вот скрипт, рассчитывающий комиссию:
function main()
local class = "SPBFUT"
local secList = getClassSecurities(class)
local function ErlstSec(ft)
if #ft > 3 and string.match(secList, ft) then
return ft
end
local e = "z"
for v in string.gmatch(secList, ft.."%u%d") do
local f = string.reverse(v)
e = (e<f) and e or f
end
return string.reverse(e)
end
local function Rnd(x,n)
return math.floor(x*10^n+0.5)/10^n
end
local function MsgWin(nm,cms)
if IsWindowClosed(t_id) == false then -- Открыто.
height = height + 15 -- +Высота строки. 15
end
if IsWindowClosed(t_id) == nil then -- Не существует.
t_id = AllocTable()
AddColumn(t_id, 1, "", true, QTABLE_STRING_TYPE, 14)
AddColumn(t_id, 2, "", true, QTABLE_DOUBLE_TYPE, 7)
CreateWindow(t_id)
height = 58 -- Высота окна с одной строкой. 58
end
SetWindowCaption(t_id, "Комиссия")
SetWindowPos(t_id, 400, 300, 146, height) -- X, Y, ширина, высота окна. 146
row = InsertRow(t_id, -1)
SetCell(t_id, row, 1, nm)
SetCell(t_id, row, 2, cms)
end
-- Базовая ставка комиссии групп. https://www.moex.com/s93
local bscRate = {
cur = 0.00462, -- Валютный
idx = 0.0066, -- Индексный
cmdt = 0.0132, -- Товарный
prc = 0.0165, -- Процентный
stk = 0.0198 -- Фондовый
}
-- Группа фьючерса.
local fts = {
GZ = "stk",
LK = "stk",
RN = "stk",
SR = "stk",
VB = "stk",
GK = "stk",
MM = "idx",
NA = "idx",
RM = "idx",
GD = "cmdt",
SF = "idx",
BR = "cmdt",
NG = "cmdt",
Si = "cur",
CR = "cur",
Eu = "cur",
ED = "cur",
IMOEXF = "idx",
CNYRUBF = "cur",
USDRUBF = "cur"
}
for f, b in pairs(fts) do
local sec = ErlstSec(f)
if sec ~= "z" then
--PrintVar(sec)
local futPrice = getParamEx(class, sec, "PREVSETTLEPRICE").param_value -- Расчетная цена предыдущего клиринга. https://www.moex.com/s93#tranz
local stpCost = getParamEx(class, sec, "STEPPRICE").param_value
local secInfo = getSecurityInfo(class, sec)
--TableLog(secInfo)
local priseStep = secInfo.min_price_step
local name = secInfo.name
local coms = string.format("%.2f", futPrice*stpCost*bscRate[b]/(priseStep*100))
--local coms = string.format("%.2f", Rnd(futPrice*Rnd(stpCost/priseStep,5),2)*bscRate[b]/100)
MsgWin(name,coms)
end
end
end
Freedom Holding Corp. привлек $300 млн в рамках частного размещения своих акций
Freedom Holding Corp. (NASDAQ: FRHC), международный инвестиционный и технологический холдинг, провел успешное частное размещение обыкновенных акций, по итогам которого привлек $300 миллионов....
«Аэрофлот» — лидер российского рынка авиаперевозок, выигрывает за счет роста пассажирооборота, расширения маршрутных сетей, особенно в дружественные страны, и страхового урегулирования...
АЛРОСА на дне (18 руб за 1 акцию), но со дна продолжают стучать - есть ли шансы на иксы?
5 лет назад акции АЛРОСы стоили 150 рублей за 1 акцию и были сверхпопулярны — классный вечный сектор (все девушки любят бриллианты), большие дивиденды. Но тут бац и минус 80% и у нормального...
📈 Сбербанк (SBER): рекордная прибыль и P/E 3,7. Почему акции всё ещё дёшевы и где скрыт главный риск? Гигант зарабатывает полтриллиона за квартал, платит щедрые дивиденды и покоряет ИИ, но оценка оста...
Добывающая промышленность: Все ли так плохо? Биржа любит рисовать красивую декорацию: аналитики закладывают дивиденды и ожидания прибыли — и на выходе цена выглядит убедительно, будто за ней стоит жел...
Добывающая промышленность: Все ли так плохо? Биржа любит рисовать красивую декорацию: аналитики закладывают дивиденды и ожидания прибыли — и на выходе цена выглядит убедительно, будто за ней стоит жел...
«Газпром» заключил с Минобороны соглашение о создании мобильных огневых групп. Через 4,5 года войны.
А вот Украина уже начала отказываться от мобильных огневых групп. Дроны перехватчики эффективнее....
Нефть подешевела. Минфин готовит новый "налоговый маневр". Готовящееся решение об отмене дивидендных выплат «Полюсом» аж до 2030 года породило на рынке версии о том, что в скором времени буд...
Какие направления Яндекса росли во 2м квартале Через пару недель Яндекс выпустит отчет за 2 кв. Посмотрел, что росло/падало за это время. Запросы на Алису ИИ выросли в разы именно во втором квартале. ...
перестал покупать прошутто и хамон в маркетах, теперь под заказ привозят бастурму ..
Трафик в магазинах упал на 10%
в январе–июне 2026 года посещаемость продуктовых магазинов «у дома» сократилась ...
перестал покупать прошутто и хамон в маркетах, теперь под заказ привозят бастурму ..
Трафик в магазинах упал на 10%
в январе–июне 2026 года посещаемость продуктовых магазинов «у дома» сократилась ...
Как тогда считать комиссию, например, по инструментам срочного рынка?
Пока думаю алгоритм такой:
1) Запрашиваем параметры инструмента: iss.moex.com/iss/securities/EuM6
2) Находим там к какой группе контрактов он относится (GROUPTYPE = Валюта)
3) По группе определяем базовую ставку: www.moex.com/s93#komiss1
4) И по формуле вычисляем комиссию.
iss.moex.com/iss/engines/futures/markets/forts/securities/GZH6.json?iss.json=extended
iss.moex.com/iss/engines/futures/markets/forts/securities.json?iss.json=extended
навскидку — поля BUYSELLFEE и EXERCISEFEE, но перепроверьте
Если используете QUIK, то вот скрипт, рассчитывающий комиссию:
function main() local class = "SPBFUT" local secList = getClassSecurities(class) local function ErlstSec(ft) if #ft > 3 and string.match(secList, ft) then return ft end local e = "z" for v in string.gmatch(secList, ft.."%u%d") do local f = string.reverse(v) e = (e<f) and e or f end return string.reverse(e) end local function Rnd(x,n) return math.floor(x*10^n+0.5)/10^n end local function MsgWin(nm,cms) if IsWindowClosed(t_id) == false then -- Открыто. height = height + 15 -- +Высота строки. 15 end if IsWindowClosed(t_id) == nil then -- Не существует. t_id = AllocTable() AddColumn(t_id, 1, "", true, QTABLE_STRING_TYPE, 14) AddColumn(t_id, 2, "", true, QTABLE_DOUBLE_TYPE, 7) CreateWindow(t_id) height = 58 -- Высота окна с одной строкой. 58 end SetWindowCaption(t_id, "Комиссия") SetWindowPos(t_id, 400, 300, 146, height) -- X, Y, ширина, высота окна. 146 row = InsertRow(t_id, -1) SetCell(t_id, row, 1, nm) SetCell(t_id, row, 2, cms) end -- Базовая ставка комиссии групп. https://www.moex.com/s93 local bscRate = { cur = 0.00462, -- Валютный idx = 0.0066, -- Индексный cmdt = 0.0132, -- Товарный prc = 0.0165, -- Процентный stk = 0.0198 -- Фондовый } -- Группа фьючерса. local fts = { GZ = "stk", LK = "stk", RN = "stk", SR = "stk", VB = "stk", GK = "stk", MM = "idx", NA = "idx", RM = "idx", GD = "cmdt", SF = "idx", BR = "cmdt", NG = "cmdt", Si = "cur", CR = "cur", Eu = "cur", ED = "cur", IMOEXF = "idx", CNYRUBF = "cur", USDRUBF = "cur" } for f, b in pairs(fts) do local sec = ErlstSec(f) if sec ~= "z" then --PrintVar(sec) local futPrice = getParamEx(class, sec, "PREVSETTLEPRICE").param_value -- Расчетная цена предыдущего клиринга. https://www.moex.com/s93#tranz local stpCost = getParamEx(class, sec, "STEPPRICE").param_value local secInfo = getSecurityInfo(class, sec) --TableLog(secInfo) local priseStep = secInfo.min_price_step local name = secInfo.name local coms = string.format("%.2f", futPrice*stpCost*bscRate[b]/(priseStep*100)) --local coms = string.format("%.2f", Rnd(futPrice*Rnd(stpCost/priseStep,5),2)*bscRate[b]/100) MsgWin(name,coms) end end endи ещё: smart-lab.ru/blog/1153905.php