Добрый день, у меня вопросы по получению данных опционов: 1) Как можно получить параметр подразумеваемой волатильности для выбранного страйка, или же в целом улыбку (ImplyedVolatility) 2) Как можно получить данный параметр за прошлое время ?
Цель - хочу построить график ATM волатильности для базового актива.
Добрый день. Меня интересуют следующие вопросы (знаю тема не нова кто использует библиотеку просьба не кидаться кетчупом)
1) Где найти страницу с приложенной последней актуальной версией библиотеки trans2quik.dll (и в идеале возможность выбора версий в зависимости от версии терминала) ? 2) Есть ли где либо (в гите / или на сайте) примеры взаимодействия C# и квика через trans2quik.dll ? 3) Поддерживает ли библиотека стандарт .net 2.0 ? (в частности интересует работа с верcисями .net 6 или .net 8 версия C# 10 или 11) 4) Где найти страницу по подобию "GetStarted" ? 5) Есть ли документация / описание функций / возможностей ? Где ее найти ?
Подскажите как квик выворачивает волатильности бида и аска ? То что улыбка транслируется биржей - я знаю, меня интересует именно подсчет волатильности по ценам.
Я в своей программе считаю волатильность через метод Ньютона Рафсона, получается хорошо для опционов дата экспираций которых достаточно сильно оттдалена от текущего момента. , однако для опционов которые экспирируются завтра - расчет разительно расходится с данными квика. Подскажите как Вы считаете волатильность по переданной цене ?
Доброго времени суток, вопрос следующий: Создает ли CreateDataSource источник данных если его запустить во внерабочее время ?
Дело в том, что в моих скриптах ,всегда когда я создаю источник данных перед началом сессии или же во внерабочее время (по фьючерсам имею ввиду, к примеру во время клиринга или же ночью) то Size() всегда зависает равным 0. После я перезапускаю обычно скрипт когда начинаются торги.
Если не перезапускать скрипт, то тогда изменится ли Size() на адекватное значение и пойдут ли котировки ? Или же обязательно нужно перезапускить (либо програмно раз в пару мин к примемеру проверять создался ли источник данных и пересоздавать его вновь если значение size() все еще равно нулю ?)
Дабы не быть голословным вот пример:
Код
main = function()
class_code = "SPBFUT";
sec_code = "RIU8";
ds, Error = CreateDataSource(class_code, sec_code, 0)
while (Error == "" or Error == nil) and ds:Size() == 0 do sleep(1) end; -- вот в этом цикле зависает скрипт если во внерабочее время запустить данный пример. Зависает из за того что size() == 0
ds:SetEmptyCallback();
message("Источник создан");
end;
Вполне возможно он все таки сам выйдет из этого цикла, но у меня не когда не хватало терпения это проверить, сразу же перезапускал.
Как уже писал в данной теме, я не смог удалить ордер из за того, что не получилось передать в качестве параметра требуемый order_num.
Когда я протестировал два одинаковых скрипта (один на чистом lua, а другой на lua_CApi ) - то обнаружил интересную закономерность (либо я криворукий... поправте в случае нахождения ошибки) первый скрипт - на qlua - возвращает верное значение lua_CApi. Второй (скрипт близнец) - на С++ с использованием lua_CApi - возвращает значение order_num: -2147483648
Ниже представляю оба тестовых скрипта: большая просьба как к админам, так и просто к тем кто пишет ботов на С++ так же как и я поправить или же прокомментировать мои ошибки, или же как можно обойти встречную мною ситуацию:
Qlua:
Код
function main()
for i = getNumberOf("orders")-1,0,-1 do
T = getItem("orders",i);
if T.sec_code == "ROSN" and
bit.test(T.flags,0) then
message(tostring(T.order_num));
end;
end;
end;
Вопрос №1 В каких случаях дата жкспирации может равняться "-1" ? (имеются ввиду поля таблиц где она как число представлена) Вопрос №2 Почему возвращается дата экспирации равная "1601.01.01 00:00:00" даже в случае когда ордер выставлен не как "До отмены", а как "До определенной даты"?
По инструменту открыта лимитка на покупку. счет правда демка Ваша, но думаю это не должно влиять на правильность работы функции.
Следующий код от чего то показывает что поле order_date_time == nil Подскажите в чем может быть причина ?
Код
function main()
for i = getNumberOf("orders")-1,0,-1 do
T = getItem("orders",i);
if T.sec_code == "SiM8" and
bit.test(T.flags,0) then
message(tostring(T.order_date_time));
end;
end;
end;
В инструкции сказано, что данное поле мажет содержать следующие типы данных :
«1» - DOUBLE;
«2» - LONG;
«3» - CHAR;
«4» - перечислимый тип;
«5» - время;
«6» - дата
Меня интересует как представляются последние два типа данных ? Структура(если да, то какие конкретно поля в ней) или же числовое значение ? (к примеру дата в Unix формате).
Доброго времени суток, хотелось бы узнать есть ли надежный способ поставить Quik на линукс системы (Debian, Ubuntu...) Какие зависимости нужны будут и не будет ли глючить. Так же интересно будет ли работать Lua и стыковки Lua + C++ dll при банной установки. Возможно где то есть готовая инструкция по подобной установке ?
Данный вопрос уже поднимался на форуме, однако у меня он возник вновь. Я выгрузил параметры из таблицы текущих торгов, однако хотелось бы узнать какие из них лишние? К примеру ISIN-код бумаги явно не вписывается в концепцию источников данных... Возможно существует готовый и отредактированный список ? У меня получилась следующая выгрузка,:
1) Сделать как можно больше примеров (по возможности на каждую из функций)
2) К таблицам добавить типы данных каждой из строк таблицы
3) Сделать описание типов данных к таблице для функции sentTransaction (я знаю что там все в виде строк передается, но нужно сделать описание исходных типов данных)
4) перенести Api Qlua на С++. (это даст пользователям куда больше возможностей для написания роботов и этим Вы сможете несколько упрочить свои позиции на рынке. ведь тот же Mql5 и то более удобен для написания роботов. НО НЕ ДЕЛАЙТЕ еще один Mql5! Этих специализированных языков (которые не дают возможности сделать что то кроме своей узкой задачи и так полно...) ).
Я знаю что все поля заполняются как строки, но мне нужно знать каков изначальный тип данных (я позже перевожу его в строковый формат)
Подскажите какому типу соответствует значение следующих полей (и до какого знака нужно их округлять, если тип double или float): START_DISCOUNT LOWER_DISCOUNT UPPER_DISCOUNT PARTNER SETTLE_CODE REPOTERM REPORATE REFUNDRATE SETTLE_DATE - интересует формат даты в строке "YYYYMMDD" ? BASE_ORDER_KEY VOLUMEMN VOLUMEPL KFL KGO
Доброго времени суток. Хотелось бы узнать из за чего происходит следущее:
я стараюсь узнать цену открытия по акциям, но вместо этого получаю в ответ цену деленную на 100. То есть, 1621,5 = 16,215. Это был тест на демке Арки, на реале не проверял. Это только с демо счетом актуально ? или же на реале так же будет ?
Здравствуйте, можно ли как нибудь сделать следующее: 1) Если существует уже открытая позиция, прицепить к ней стоп и тейк одновременно (или же что то одно) с условием если эта позиция была закрыта (либо по рынку, либо по стопу или тейку или же еще как нибудь...) то тогда выставленные стоп лосс и тейк профит снимались бы автоматически ?
2) Открываю заявку по лимитному ордеру (или же по стоп ордеру) и после срабатывания заявки, автоматически ставятся стоп лосс и тейк профит с тем же условием, (что после закрытия позиции или же отмены выставленной заявки и стоп и тейк снимались бы)
Как я понимаю, стоит копать в направлении Связанных заявок, однако я не совсем пойму какие полы нужно заполнять в структуре для достижения требуемого результата...
Доброго времени суток. Хотелось бы узнать, как получитьреальнуюцену открытия позиции, а не цену открытия позиции после клиринга ?
Т.е. что бы допустим, я запустил робота, прошел клиринг, а он смог бы узнать реальную цену открытия. или же вдруг на сервере произошла перезагрузка, терминал был выключен после запускаю все заново и робот смог бы опять подхватить реальную цену открытия. (интересует как срочный рынок, так и фондовый) и желательно без костылей вроде сохранения цены открытия в базе данных и прочего...
Доброго времени суток. У меня тут вопрос, от куда (кроме таблицы всех сделок) можно получить информацию о направлении прошлой сделки (за последний тик) т.е. мне нужно знать была ли покупка или же продажа на прошлом тике. Таблица всех сделок вроде дает эту информацию, однако мне нужно сделать так, что бы не нужно было в квике открывать не какие таблицы. т.е. запустил робота, и он сам тягает эту информацию.
Доброго времени суток. У меня следующий вопрос: Использую Lua_Api для плюсов. Lua 5.1.
1) Запускаю квик.
2) Квик вызывает скрипт луа и определяет несколько функций запускащихся в разных потоках. допустим это коллбеки прихода котировок и основной поток - main, Либо поток main и еще какой либо коллбек из квика работающий в другом потоке
3) Сам скрипт Lua выглядит как вызов Dll, написанной на C++.
require("My dll");
Внутри Dll я подписываюсь на эти 2 функции (т.е. коллбека от квика) и получается что вызов из терминала, отправляется в Dll и вызываются функции из моей Dll.
3.1) Внутри Dll переменная Lua вынесена в глобальную и к ней подключаются еще нескольку функций, которые могут выполняться, как в каком либо из двух потоков запускаемых квиком, так и в каком либо своем потоке...
----------
Собственно из всего описанного вытек вопрос, нужно ли мне в каждой из функций (включая те что запускаются как коллбеки с программы № 1) делать луа как разделяемый ресурс ? Или же стек сам поймет что его вызывают из другого потока и не будет глючить не чего?
Доброго времени суток, у меня вопрос касательно коллбеков языка Qlua. Точнее все те коллбеки что в руководстве пользователя занесены в раздел "Функции обратного вызова" и принимающее в качестве параметра - таблицу. Подскажите, может ли так случиться, что данная таблица будет являться массивом таблиц ? (Речь не о специфики Lua, я помню что все таблицы предоставляются как ключ значение и массивов так таковых нет) Меня интересует каким из следующих вариантов может быть принимаемая таблица:
1) Таблица содержит озаглавленные поля в руководстве и каждому из полей (столбцы) присуще только одно значение в таблице (иначе говоря в таблице есть ТОЛЬКО ОДИН РЯД). 2) Таблица содержит озаглавленные поля в руководстве и каждому из полей (столбцы) присуще более одного значения в таблице (иначе говоря в таблице есть МОЖЕТ СОДЕРЖАТЬ БОЛЕЕ ОДНОГО РЯДА). 3) ВМЕСТО таблицы, передается МАССИВ, содержащий таблицу с озаглавленными столбцами и ТОЛЬКО ЛИШЬ ОДНИМ рядом.
Приветствую собравшихся. Помогите решить проблему. У меня есть 2 скрипта по созданию таблиц OHLC данных. один для минутного графика, другой для часовика. Проблема в том, что скрипт для часовика не работает (а точнее не создает требуемую таблицу).
Смотрел пошагово, котировки получаются, таблица формируется, однако не хочет заполняться... Причем код обоих скриптов один и тот же, он отличается лишь в способе расчета времени, Котировки приходят и на часовом и на минутном скрипте, но вот часовой только не хочет отображать их в таблице... Буду признателен Вам за помощь, заранее благодарю. По этой ссылке, можно скачать оба скрипта: https://cloud.mail.ru/public/HHF1/7SDzKVRjx
Скрипт работает так "Quick 7.14.1.7" : 1) Строится график цен или же индикатора (к примеру Open Interest) 2) Задается Tag (для минутного RTS_M1, для часового RTS_H1) - Дважды кликнуть по графику, затем вкладка "Дополительно" и в поле идентификатор вставляем требуемый Tag 2) Создается таблица стандартным способом открытия скрипта