Подскажите, пожалуйста, какой параметр указать при выставлении заявки, чтобы сделка использовала кредитное плечо. Лучше имя параметра на английском, русские у меня в этой процедуре не проходят, мне так помнится.
Nikolay написал: В Lua массивы начинают свою нумерацию от 1. Если будет дырка, то оператор # не вернет корректно значение.
Победить - создать метатаблицу, с переопределенным метаметодом __len
Фигня, какая-то, по-моему, это, но спасибо, так лучше... :)
Код
a={}
setmetatable(a,{__index={len=function(len) local incr=0 for _ in pairs(len) do incr=incr+1 end return incr end}})
a[0]={sellprice=1, bayprice=1}
a[1]={sellprice=1, bayprice=1}
a[2]={sellprice=1, bayprice=1}
message(""..#a.." "..a:len());
local S = "orders" ; local t = SearchItems (S, 0 , getNumberOf (S) - 1 , function (flag) if bit.band (flag, 3 )~ = 1 then return false end return true end , "flags" ) -- #t -число активных заявок
Спасибо. 1. А меняет ли что-то именно такая процедура в сравнении с простым перебором в цикле?
2. Для проверки активной заявки у Вас используется кроме бита активной заявки еще и бит "заявка снята", это же, не обязательно?
3. А вообще в моем случае вопрос можно решить очень просто. Ответ можно найти, просто внимательно изучив вопрос... :) Большое спасибо ВСЕМ за участие и советы...
Вот такой возврат только правильнее будет if index_table==nil then return 0 else return #index_table end
function getNumActiveOrders(from,to) local index_table = SearchItems("orders", from or 0, to or getNumberOf("orders")-1, function(t) return bit.band(t.flags, 1)==1 end) if index_table==nil then return 0 else return #index_table end end
Это при летной погоде. Надеяться на такие времена всегда - плохая затея. Мой наблюдаемый рекорд от отправки транзакции до появления ордера - 10 минут.
10 минут - это жестко.
Ну вот и я хочу использовать число активных заявок как индикатор наличия таких косяков...
Не знаю, лучше ли это, чем просто в цикле перебрать заявки. Но как вариант можно такую функцию сварганить.
function getNumActiveOrders(from,to) local index_table = SearchItems("orders", from or 0, to or getNumberOf("orders")-1, function(t) return bit.band(t.flags, 1)==1 end) return #index_table end
По проданному-купленному опциону кол со страйками 74500 и 75000 максимальный убыток составляет 30000, плюс 18216 по по купленному опциону со страйком 69000. Итого 48216.
ГО в 4 млн. ну никак не получится...
Сравниваю с реальными цифрами ГО из терминала, но продемонстрировать сейчас будет сложно. Думаю приведенной картинки должно быть достаточно (если, конечно, в действующей версии dll это также функционирует...)
Особенно показательно если посмотреть на следующую картинку, риск на несколько порядков больше (купленный опцион отсутствует), а ГО показывает такое же.
Добрый день. Раньше пользовался option.ru - года 2 назад перестал считать ГО. Потом пользовался http://options.moex-school.com тоже теперь нету его Есть еще старая dll - ка для квика 7.0 StratVolat.dll но она никогда правильно мне не показывала ГО для сложной позиции, и сейчас на нее не полагаюсь...
Может кто-то подскажет, есть сервис сейчас доступный чтобы посчитать корректно и беслатно?..
Roman Azarov написал: just, добрый день! Уточните, пожалуйста, почему Вы считаете, что один из параметров в таблице рассчитывается неправильно? Пришлите, пожалуйста, пример из терминала и свой расчет.
Беру свои слова обратно. Я вижу разную цену опциона put-call и почему-то решил, что и распад должен быть разный...
Добрый день, в доске опционов показывает Theta Put и Theta Call (как минимум одну из них явно, правда, считает неправильно...) можно ли получить их запросом как волатильность? getParamEx(Class_Opt, sec, "volatility").param_value
Не подскажет ли кто-то ссылочку на скрипт рабочий для сборки хеджа из 2-х инструментов с заданными параметрами, чтобы хотя бы по одному инструменту активно заявки лимитированные выставлял?... (лимитированные - не по рыночной цене имею ввиду...)
Я могу сам написать, но с учетом отладки полдня точно уйдет (если не полтора...) еще и делать много завтра придется, когда торги откроются...
Anton написал: Табличка в приложении 1 говорит таки о TOM.
Да внимательно читать все-таки надо...
Не подскажет ли кто-то ссылочку на скрипт рабочий для сборки хеджа из 2-х инструментов с заданными параметрами, чтобы хотя бы по одному инструменту активно заявки лимитированные выставлял?... (лимитированные - не по рыночной цене имею ввиду...)
Anton написал: Поправлюсь по поводу Si. Биржа таки транслирует уже рассчитанное значение под названием USDFIX в классе RTSIDX (класс может отличаться).
Класс соответствует тому, что у я через Финам получаю. Интересный индикатор, но меня больше интересуют именно торгующиеся инструменты.
Цитата
Anton написал: Эмм, это я накосячил на автомате, код конечно USD000UTS_TOM, он же USDRUB_TOM. Тем не менее лучше нагуглить и почитать упомянутый документ, поскольку этот инструмент и база фьючерса это вещи различные.
Ну в итоге цена Si определяется реальной средневзвешенной ценой USDRUB_TOD...
Цитата
Незнайка написал: Проще зайти на страницу Основные параметры срочного контракта , взять оттуда ISIN БА и по нему найти код акции в таблице securities.
Только вот из кода lua обратиться к интернет не получится
Цитата
Незнайка написал: Или можно составить статическую таблицу соответствий OPTIONBASE кодам акций в скрипте.
По этому пути и пошел, но табличка пока скромная... :) Secs["Si"]={base="USD000UTSTOM", baseclass="CETS", mult=1000} Secs["Eu"]={base="EUR_RUB__TOM", baseclass="CETS", mult=1000} Secs["GAZR"]={base="GAZP", baseclass="TQBR", mult=100} Secs["ROSN"]={base="ROSN", baseclass="TQBR", mult=100} Secs["SBRF"]={base="SBER", baseclass="TQBR", mult=100} Secs["RTS"]={base="RTSI", baseclass="INDX", mult=100} Secs["MIX"]={base="IMOEX", baseclass="INDX", mult=100}
Anton написал: Надо в спецификацию контракта смотреть. Конкретно по примеру с SiM0. Базовый актив в данном случае действительно Si, ткнуть пальцем во что-то торгуемое и сказать "вот он базовый актив" не представляется возможным.
Ну а допустим с RiM0, GZM0 должно быть попроще?.. По газпрому вижу инструмент с кодом GAZP, а вот РТС в квике не могу пока найти не подскажете код и класс инструмента? По индексу ММВБ тоже не вижу инструмента, как и фьючерса пока не нашел...
Цитата
Там в торговое время берется RU000UTSTOM, в неторговое курс с reuters, убираются выбросы, тики сглаживаются мувингом, в моменты переключения с одного источника на другой тоже сглаживается гэп, короче это синтетика чистой воды.
Сейчас торгов нет, может с этим связано, но получить какие либо данные по коду не могу...
Да и в принципе инструмента с таким кодом найти не могу ни в одном классе... for Classes in getClassesList():gmatch("[^,]+") do f:write(os.date()..";"..Classes..";"..getClassSecurities(Classes).."\n")
Здравствуйте, подскажите, пожалуйста можно ли программно получить базовый актив по фьючерсу или наоборот найти есть ли фьючерсы к заданному активу. Например, getParamEx("SPBFUT", "SiM0", "OPTIONBASE").param_image возвращает значение "Si", а актив, который, я так понял, лучше всего подходит в качестве базового я нахожу по коду USD000UTSTOM. Ну и по другим фьючерсам аналогично... Вычислить конкретный базовый актив, который можно использовать в коде я не вижу как...