Расчет стоимости фьючерсов

Страницы: 1
RSS
Расчет стоимости фьючерсов, Как определить программно стоимость позиции или лота "сложных" фьючерсов на индексы и биржевые товары (Ri, BR и др.)
 
Как определить программно стоимость позиции или лота "сложных" фьючерсов на индексы и биржевые товары (Ri, BR и др.)
Есть ли стандартная функция или надо считать по сложному?
 
Добрый день.

Вы имеет ввиду стоимость позиций в таблице позиций по клиентским счетам?
Если да, то это стандартная функция для данной таблицы.

функции - getItem, getNumber, SearchItems,  таблица - futures_client_holding, параметр - positionvalue
 
Цитата
Egor Zaytsev написал:
Добрый день.

Вы имеет ввиду стоимость позиций в таблице позиций по клиентским счетам?
Если да, то это стандартная функция для данной таблицы.

функции - getItem, getNumber, SearchItems,  таблица - futures_client_holding, параметр - positionvalue
Ок, спасибо, полезно, хотя и не совсем то что хотелось бы. Размер позиции в лотах может изменяться в результате работы нескольких роботов и ручной торговли. Я же хочу на лету рассчитывать финансовые результаты работы отдельных роботов, в частности торговый результат на данный момент. .
Для этого хочу знать стоимость именно фьючерсного контракта в том числе в момент совершения покупки и до него... Ну например - сколько стоит 1 фьюч на нефть в рублях (не ГО, а именно цена в рублях) в разные моменты времени, которая потом будет конвертирована в вариационную маржу).  
 
Цитата
Иван Ру написал:
Цитата
Egor Zaytsev   написал:
Добрый день.

Вы имеет ввиду стоимость позиций в таблице позиций по клиентским счетам?
Если да, то это стандартная функция для данной таблицы.

функции - getItem, getNumber, SearchItems,  таблица - futures_client_holding, параметр - positionvalue

Для этого хочу знать стоимость именно фьючерсного контракта в том числе в момент совершения покупки и до него... Ну например - сколько стоит 1 фьюч на нефть в рублях (не ГО, а именно цена в рублях) в разные моменты времени, которая потом будет конвертирована в вариационную маржу).
Не совсем понимаем.
Стоимость по которой сыграет заявка?
Или Вас интересует цена последней сделки.
 
Цитата
Egor Zaytsev написал:
Цитата
Иван Ру   написал:
Цитата
Egor Zaytsev   написал:
Добрый день.

Вы имеет ввиду стоимость позиций в таблице позиций по клиентским счетам?
Если да, то это стандартная функция для данной таблицы.

функции - getItem, getNumber, SearchItems,  таблица - futures_client_holding, параметр - positionvalue
Для этого хочу знать стоимость именно фьючерсного контракта в том числе в момент совершения покупки и до него... Ну например - сколько стоит 1 фьюч на нефть в рублях (не ГО, а именно цена в рублях) в разные моменты времени, которая потом будет конвертирована в вариационную маржу).
Не совсем понимаем.
Стоимость по которой сыграет заявка?
Или Вас интересует цена последней сделки.
Нет, с ценой последней сделки все понятно, их я активно использую, если Вы о котировках.
Уточняю, мне нужен рублевый эквивалент стоимости одного фьючерса (1 лота), -- тот который в конечном счете используется для расчета вариационной маржи по позиции. Хочу правильно рассчитывать этот показатель (рублевая цена) на момент заключения сделки (вход в позицию) и на любой другой момент вплоть до выхода из сделки (закрытие позиции). Акцентирую внимание - все это хочу знать в расчете на лот, а не в расчете на позицию. Зная рублевую цену позиции и количество лотов можно конечно рассчитать упоминаемый мной рублевый эквивалент стоимости одного фьючерсного контракта, скажем на золото или брент, но мне кажется помимо такого кривого расчета, должен быть и "прямой" позволяющий узнать сразу цену лота.  
 
Возможно требуется что то в роде этого:
http://stock-list.ru/futures2.html

По РТС = Цена в пунктах * 0,02 * курс доллара.

0,02 - стоимость шага цены на РТС, на бренд должно быть в спецификации где то указано.
Курс доллара - берется на вечернюю сесиию. (как то раз для тестов пробовал переводить по данной формуле РТС в рубли, на бирже где то была выкладка курсов для перевода, ну и квик сигнализирует постоянно о них но где таблично эти значения взять - не знаю).  
 
Цитата
Иван Ру написал:
Уточняю, мне нужен рублевый эквивалент стоимости одного фьючерса (1 лота),
Для одного лота по РТС:
РТС(руб) = 10 * 0,02 * курс доллара(вечерний)
где:
10 - шаг цены в пунктах

Для бренд - шаг в спецификации смотреть)
 
Цитата
Андрей написал:
Возможно требуется что то в роде этого:
 http://stock-list.ru/futures2.html

По РТС = Цена в пунктах * 0,02 * курс доллара.

0,02 - стоимость шага цены на РТС, на бренд должно быть в спецификации где то указано.
Курс доллара - берется на вечернюю сесиию. (как то раз для тестов пробовал переводить по данной формуле РТС в рубли, на бирже где то была выкладка курсов для перевода, ну и квик сигнализирует постоянно о них но где таблично эти значения взять - не знаю).
Это частное решение. Плюс не совсем понятно на какой момент времени брать курс доллара. С расчетами завтра или сегодня? По среднему между бид/аск на момент времени (например, вход) или по цене последней сделки? А если у нас фьючерс на курс евро-доллар? На золото? Получается индивидуальный расчет для каждого инструмента исчисляемого не в рублях. Очень сложно. Кажется должно быть более простое штатное решение.  
 
Создайте функцию. опишите все, входные параметры снизте по минимуму и готово
 
Цитата
Андрей написал:
Создайте функцию. опишите все, входные параметры снизте по минимуму и готов
Я ищу штатное или готовое решение. Речь об этом.
 
Цитата
Иван Ру написал:
Цитата
Андрей   написал:
Создайте функцию. опишите все, входные параметры снизте по минимуму и готов
Я ищу штатное или готовое решение. Речь об этом.
Добрый день.

Иван, штатного решения (готовой функции), к сожалению, нет.
 
Может, я что-то не так понял, но у меня используется код такого типа:
Код
local NaN = 0 / 0

local function getPointsToRublesMultiplier(classCode, secCode)
    if InfoSecurities.isFuturesClass(classCode) then
        local stepPrice = getParamEx(classCode, secCode, "STEPPRICE")
        local secPriceStep = getParamEx(classCode, secCode, "SEC_PRICE_STEP")
        if type(stepPrice) ~= "table" or type(secPriceStep) ~= "table" then
            return NaN
        end
        stepPrice = stepPrice.param_value
        secPriceStep = secPriceStep.param_value
        if stepPrice == nil or secPriceStep == nil then
            return NaN
        end
        local stepPriceInRub = tonumber(stepPrice)
        local priceStepInPts = tonumber(secPriceStep)
        if stepPriceInRub > 0 and priceStepInPts > 0 then
            return stepPriceInRub / priceStepInPts
        else
            return NaN
        end
    else
        return 1
    end
end
 
Спасибо, это то что мне нужно! Другим рекомендую не забыть включить отображение соотв. полей (стоимость шага цены) в таблице фьючерсов.

Правда на метод InfoSecurities.isFuturesClass у меня квик что-то ругается : attempt to index global 'InfoSecurities' (a nil value)
 
Цитата
Иван Ру написал:

Правда на метод InfoSecurities.isFuturesClass у меня квик что-то ругается : attempt to index global 'InfoSecurities' (a nil value)
Это моя собственная разработка для отделения фьючерсов от всего остального. Можно написать просто classCode == "SPBFUT".
Страницы: 1
Читают тему
Наверх