Как тогда считать комиссию, например, по инструментам срочного рынка?
Пока думаю алгоритм такой:
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
Битва за трон: готов ли Bitcoin сломать нисходящий сценарий и начать новую эпоху роста?
«Король криптовалют» предпринимает попытки уверенно закрепиться над локальным уровнем 80536. Цель этого манёвра — развить импульс к точке пересечения линии нисходящего тренда (на графике...
Продолжаем рассказывать о ключевых тенденциях на рынке ИТ и их влиянии на развитие бизнеса Софтлайн! На этот раз — обсудим нововведения на законодательном уровне, касающиеся перспективного...
📈 ПАО «МГКЛ» обратится на СПБ Биржу для размещения конвертируемых облигаций
🏛 В качестве площадки для размещения данного выпуска рассматривается СПБ Биржа. Компания уже успешно разместила на этой площадке два выпуска биржевых облигаций с переподпиской. Ранее Банк...
Мой Рюкзак #65: Ставка на энергетический и продовольственный кризис из-за перекрытия проливов
Если февраль радовал стоимостных инвесторов, то март пока радует только валютных спекулянтов и миноритариев Роснефти и Совкомфлота (в совкомфлоте идею подсветил в нефтяном срезе, но сам прошел...
LudoMan, А есть какая то структура которая занимается регулированием-надзором за рынком? В прошлый раз уронили в пол бумагу сейчас просто — зависло в одной цене как будто и нечего не происходит))
Саня 57 Зачем она в 88 лет в ГД? Какие законы она инициировала? какая от неё польза? Кто её выбрал? Общество разделено на две касты: каста №1- это которые присосались к бюджетному корыту и получают...
any_to_real, мне другое интересно — какой предел пропускной способности канализации, подачи воды по округам? Понятно, что по воде мы не узнаем информацию, но вот канализация не резиновая точно.
Увидим ли мы 30% рентабельность капитала в отчете Т-технологии?
В четверг Т-технологии опубликуют финансовые результаты за 2025 год. Что мы можем увидеть в отчете?
Авто-репост. Читать в блоге &...
В целом, конечно, позитивный отчёт. Новых резервов не было в 4м квартале. Вся прибыль ушла в финрезультат, что, в общем, подогревает надежды на дивы. Учитывая, что кэша больше, чем нераспределёнки, то...
17.03.2026
Киев направил 201 военного эксперта по противодействию беспилотным летательным аппаратам в страны Ближнего Востока.
Глава Украины уточнил, что отправленные на Ближний Восток солдаты ...
Как тогда считать комиссию, например, по инструментам срочного рынка?
Пока думаю алгоритм такой:
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