Ivanco (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
getCandlesByIndex - получаю НЕ ВСЕ свечи по инструменту
 
Цитата
Egor Zaytsev написал:
1. Верно. Кол-во отображаемых свечей на любом интервале 3000 + текущая сессия.
Странно. Только что поставил эксперимент на инструменте RTS-12.06. На интервале 1 мин. мне вернулась 4061 свеча, начиная с 26.09.2016 13:55. На интервале 10 мин. мне вернулось 3108 свечей, начиная с 03.08.2016 17:00. Все с помощью getCandlesByIndex. Так все же, каковы правила ограничения?
Что вы имеете ввиду, когда пишете про 3000 свечей?

И про ресурс с полной историей свечей, не могли бы подсказать?
getCandlesByIndex - получаю НЕ ВСЕ свечи по инструменту
 
Уважаемые форумчане.
При использовании функции getCandlesByIndex, получаю не все свечи, которые могут быть по инструменту для данного тайм-фрейма (свечи ограничиваются слева какой-то начальной датой/временем). В процессе анализа, выяснил, что getCandlesByIndex отдает только то, что содержится в графике QUIK. Следовательно, это QUIK отображает не все возможные свечи по инструменту, и начинает их отрисовывать, допустим начиная с даты 2 месяца назад, все что было раньше на графике не отображается. Причем, для разных тайм-фреймов эта "дата отрезания" слева - разная, чем больше таймфрейм, тем "глубже" слева отображаются данные. Отсюда, вопросы:
  1. Верны ли мои догадки о том, что это QUIK ограничивает число отображаемых свечей? Какие тогда правила ограничения?
  2. Возможно ли настроить QUIK таким образом, чтобы получать ВСЕ свечи по инструменту, не ограничиваясь по "глубине"?
  3. Каким образом или на каких ресурсах можно получить полную историю свечей по инструменту? Смотрел на сайт Финам - качество данных оставляет желать лучшего, много инфо пропущено по историческим данным. В Квике как оказалось история свечей обрезается слева.
P.S. Понимаю, что эта тема не относится к программированию на LUA, здесь больше вопрос по платформе QUIK, но разместил здесь, так как изначально проблему диагностировал из программы LUA, используя функцию получения свечей.
Отметки на графике QUIK средствами QLUA
 
Николай Камынин, спасибо!
Судя по документации, это то что нужно.
Отметки на графике QUIK средствами QLUA
 
Подскажите пожалуйста, возможно ли средствами языка QLUA делать какие-либо графические отметки на графике инструмента в QUIK? Например, если алгоритм находит удачный момент для сделки - ставить графическую отметку на графике и т.п.

Заранее благодарен.
Расчет стандартных индикаторов в QLUA
 
Спасибо, я Вас понял, но мне кажется что Вы не до конца поняли мой вопрос.
Во втором вопросе, я интересовался, уже не как мне рассчитать инструментами QLUA какой-нибудь стандартный индикатор (Вы ответили на этот вопрос), а как мне средствами QLUA вывести в окно Графика QUIK (нарисовать) какой-либо мой производный расчет или самописный новый индикатор?
Расчет стандартных индикаторов в QLUA
 
Понятно.

Еще такой вопрос - возможно ли на QLUA сделать какой-либо производный расчет от графиков инструментов, и перенести его в график QUIK для визуализации? Ну например, то же отношение цен закрытия одного актива к другому, посчитанное в QLUA? Ну или любой "самописный" индикатор, который хотелось бы видеть на графике
Расчет стандартных индикаторов в QLUA
 
Спасибо.
А это чьи библиотеки, разработчиков QUIK/QLUA? Я имею ввиду, они проверенные?
Расчет стандартных индикаторов в QLUA
 
Здравствуйте.

Вопрос вот в чем.
Если мне нужно получить значение индикатора SMA или EMA по ценам закрытия графика, то все просто - я добавляю этот индикатор на график, присваиваю ему идентификатор, и в коде QLUA получаю значение индикатора по его идентификатору (при помощи функции getCandlesByIndex).
А вот если нужно получить значение индикатора SMA или EMA по какому-то производному числовому ряду (к примеру отношение цен закрытия двух разных инструментов, или любой другой числовой ряд, отсутствующий в явном виде на графике), есть ли штатные инструменты для расчета индикаторов, или нужно все делать вручную - брать исходные сырые данные, получать из них нужный числовой ряд, и накладывать на него математическую формулу того или иного индикатора?
trans_id в OnTrade
 
Спасибо! Все понятно. Проверю, как обновлюсь до новой версии.
trans_id в OnTrade
 
Спасибо.
Еще вот что хотел уточнить: у меня в документации одновременно в 2 документах (Файл справки из рабочего каталога терминала QUIK, а также справка по QUIK+QLUA с сайта брокера), в описании перечня полей таблицы которая возвращается в результате работы функции OnTrade, отсутствует поле TRANS_ID. То есть, в документации про него ничего не сказано. Попробовал добавить это поле в код - получаю в его значении nil по сделкам. В данном посте же говорится, что оно должно быть и должно работать.

Оно появилось в каком-то из обновлений, и чтобы данная функция начала работать нужно обновиться на актуальную версию QUIK? А с документацией как так вышло, она тоже обновится в каталоге QUIK?

Версия QUIK - 6.17.3.6
trans_id в OnTrade
 
Подскажите, пожалуйста, по этой же теме.
  1. Для чего изначально предназначен параметр TRANS_ID в заявке? В документации по QUIK-QLUA, в примерах запросов, обычно туда зашивается какая-то константа и все, без особых комментариев для чего это нужно
  2. Правильно ли я понимаю, что в контексте выставления заявки QLUA-скриптом, этот идентификатор нужен только для того, чтобы после выставления заявки я мог отследить ее исполнение или не исполнение, по данному идентификатору? Например, я выставляю одну заявку на покупку 10 контрактов с TRANS_ID = 1, и если эта заявка будет исполнена 5-ю разными сделками, то в OnTrade я получу результат 5 сделок (5 срабатываний OnTrade) с одинаковым TRANS_ID = 1?
  3. Что будет, если QLUA-скрипт выставляет несколько заявок с небольшим интервалом, и у этих заявок одинаковый TRANS_ID? Не мешает ли это исполнению заявок на сервере, если у меня одновременно выставлены несколько заявок с одинаковым TRANS_ID?
Заранее благодарю.
Не удается экспортировать данные из таблицы, созданной конструкцией AllocTable()
 
Спасибо!
Не удается экспортировать данные из таблицы, созданной конструкцией AllocTable()
 
Цитата
Sergey Gorokhov написал:
Здравствуйте,
К сожалению в текущей реализации экспорт QLUA таблиц по DDE не предусмотрен.
Предлагаем зарегистрировать от Вас соответствующее пожелание по доработке?
Здравствуйте. Я согласен, доработка была бы полезной. Что от меня требуется для регистрации?
Как построить график индексов ММВБ и РТС
 
Он рассчитывается автоматически системой и доступен только для просмотра?

Тогда что имеется ввиду, когда например обсуждается парная торговля "Спот-Фьючерс", например когда говорят что покупаем Индекс на фондовой секции и продаем Фьючерс на индекс на срочной секции? Вероятно, под этим подразумевается то, что мы должны купить не Индекс на фондовой секции, а набор акций входящих в этот индекс и таким образом его сымитировать собрав корзину
Не удается экспортировать данные из таблицы, созданной конструкцией AllocTable()
 
Здравствуйте.
В любой таблице терминала QUIK, при вызове контекстного меню из нее, возможно сделать экспорт данных таблицы в EXCEL.
Но когда я из *.LUA-скрипта создаю таблицу следующей конструкцией и наполняю ее данными, то в контекстном меню у нее пусто, экспортировать данные невозможно. Скажите пжт, есть ли возможность выгрузить данные из таблитц создаваемых таким образом? Или есть ли иной способ создания таблиц QUIK с возможностью последующего экспорта данных из этих таблиц.
Код
-- Получает доступный id для создания
t_id = AllocTable();   
-- Добавляет 5 колонок
AddColumn(t_id, 0, "", true, QTABLE_STRING_TYPE, 24);
AddColumn(t_id, 1, "", true, QTABLE_INT_TYPE, 15);
AddColumn(t_id, 2, "", true, QTABLE_STRING_TYPE, 15);
AddColumn(t_id, 3, "", true, QTABLE_STRING_TYPE, 15);
AddColumn(t_id, 4, "", true, QTABLE_STRING_TYPE, 15);
-- Создает таблицу
t = CreateWindow(t_id);
-- Наполняет таблицу данными
...
Пока, приходится выкручиваться тем, что параллельно с заполнением данной таблицы QUIK, я дублирую инфо в файл CSV через разделители (записываю построчно). Но это двойная работа.
Как построить график индексов ММВБ и РТС
 
Цитата
Дмитрий написал:
например, открываете стакан по нужному индексу (он будет пустой) и строите график как обычно

А вот у меня другой вопрос (выделил красным в цитате выше) - почему у меня стакан по индексу РТС пустой? При этом график отрисовывается нормально в реальном времени? Какие-то дополнительные модули Квика нужно подключать или я чего-то неверно делаю?

Инструмент (в пункте Связь-Списки): Индексы РТС (СПб) -> RTSI [Индексы РТС (СПб)]

QUIK версия 6.17.3.6
Расчет цены клиринга по фьючерсам
 
Николай Камынин, спасибо большое за материал, буду разбираться.
Правильно понимаю, что при таких условиях (берется средняя цена за какой-то промежуток времени), если открытая позиция проходит через несколько клирингов, то правило "Вар. маржа = Цена продажи - Цена покупки" будет иметь большую погрешность из-за того, что в каждом из пройденных клирингов цена фиксировалась усредненная (и доход либо убыток по результатам клиринга на ваш счет зачисляются уже исходя из этой усредненной цены), и погрешность будет тем больше, чем больше клирингов проходит открытая позиция?
Как тогда на фьючерсах торгуют "в долгую", ведь итоговый доход либо убыток будет зависеть не только от цен покупки и продажи, а дополнительно будет зависеть от множества пройденных усреднений цены во время клиринга. (Ты рассчитываешь купить контракт по цене X и продать по цене Y, получить доход Y-X, но из-за усреднений клирингов ведь доход становится величиной не определенной)
Расчет цены клиринга по фьючерсам
 
Здравствуйте.
Скажите кто знает, есть ли четкие правила расчета цены клиринга по фьючерсам.
Дело в том, что по моим наблюдениям, в подовляющем большинстве случаев цена клиринга равняется цене последней сделки за завершенный период, но временами это не так. Вот, например, расчетная цена вчерашнего основного клиринга (27.04.2016 18:45) по инструменту GAZR-6.16 равна 16248, а цена последней сделки за этот период равна 16273 (27.04.2016 18:45).
То же и по LKOH-6.16: расчетная цена вчерашнего основного клиринга (27.04.2016 18:45) равна 27611, а цена последней сделки за этот период равна 27612 (27.04.2016 18:45). Но здесь разница всего в 1 рубль.
Но чаще всего, цена клиринга все же равна цене последней сделки.
Есть ли четкие правила?

Заранее благодарю.
Сделки на FORTS автоматически закрылись в конце торговой сессии
 
Egor Zaytsev, также благодарю за ответы по заявкам
Сделки на FORTS автоматически закрылись в конце торговой сессии
 
Цитата
Imersio Arrigo написал:
В 23:49:59?
Какое время стоит в отчете брокера?
Все сделки произошли в 23:45:17.

Коллеги, вынужден принести свои извинения, за то что впустую вас всполошил. QLUA-скрипт, который работал в тот момент, у меня писал в текстовый файл-лог все свои активности. Сейчас решил еще раз внимательно просмотреть файл-лог, и обнаружил, что в 23:45:17 была выставлена заявка на продажу контрактов по рынку, судя по всему она моментально и исполнилась. Похоже, это все же мой робот взбесился, буду разбираться что произошло.

Спасибо за участие.
Сделки на FORTS автоматически закрылись в конце торговой сессии
 
Нет, кроме открытых позиций ничего больше не было, в т.ч. и заявок. Отчет брокера у меня есть - все позиции которые открыл в середине торговой сессии, были закрыты на крайней свече той сессии (один в один). Я конечно же задам вопрос брокеру, но полагал что на форуме быстрее найду ответ. Но если Вы утверждаете, что сами по себе позиции на FORTS автоматом не закрываются (за исключением маржин-колла и наступления даты экспирации фьючерса) в конце торговой сессии, тогда мне одна дорога с вопросами к брокеру.
Еще вот так можно попробовать - у меня есть сейчас несколько открытых позиций на FORTS, оставлю на ночь, и если их не выбьет по стоп-лоссу, то должны "дожить" до конца торговой сессии, проверю что будет с ними.
Сделки на FORTS автоматически закрылись в конце торговой сессии
 
А по поводу путаницы "сделка/заявка", согласен, наверное не правильно понял ответ на первый пост
Сделки на FORTS автоматически закрылись в конце торговой сессии
 
Imersio Arrigo, я в первом посте и написал, что в конце торговой сессии у меня позакрывались именно сделки. Мне это тоже стало крайне странно, и поэтому решил спросить. Маржин-колла не могло быть, так как у меня было еще достаточно свободных средств. Параметры заявки, которые я выставлял, также присутствуют в первом поосте - по этим заявкам были по Рынку открыты сделки (где-то в середине торговой сессии), и в 23:45 сделки одновременно были закрыты.
До сих пор не могу понять, что произошло. Сделка на FORTS действительно не может автоматом закрыться никак, кроме как по маржин-коллу и экспирации самого фьючерса?
Сделки на FORTS автоматически закрылись в конце торговой сессии
 
Спасибо. Можно пжт несколько уточнений:
  1. Итого, даже если создавать заявку не скриптом, а через терминал QUIK, и при этом не указать параметры "Переносить заявку" и "Дата экспирации", то открытые позиции по этим заявкам все равно закроются в конце торговой сессии, верно?
  2. Что делать, если сделка уже открыта и эти параметры не выставлены, но при этом нужно перенести позицию на следующие дни? Можно ли изменить эти параметры в действующей сделке?
  3. Если я точно еще не знаю, в какой день мне нужно будет закрывать сделки - получается что в параметре "Дата экспирации" можно просто установить какую-нибудь далекую дату (например, дату экспирации фьючерса), и сидеть в позиции хоть до самой экспирации, верно?
  4. Существуют ли комиссии (или какие-либо иные списания) у Биржи или Брокеров за перенос открытых позиций по фьючерсам на следующие дни?
  5. По этим двум параметрам ("Переносить заявку" и "Дата экспирации"), в QLUA-скрипте нужно прям так и указывать как попробовал и изобразить ниже, или для этого существуют зарезервированные слова на латинице (как например, для остальных параметров транзакции)?
Код
["Переносить заявку"] = "Да",
["Дата экспирации"] = "20160414",

Заранее благодарю за ответ.
Сделки на FORTS автоматически закрылись в конце торговой сессии
 
Коллеги, доброго времени суток.
Помогите пжт разобраться со следующим феноменом.
В один из дней, при помощи QLUA-скрипта, было приобретено несколько контрактов на рынке FORTS. Цена не пошла в том направлении, которое я предсказывал совершая сделку, и я решил оставить позицию открытой на последующие дни. На следующий день, обнаружил, что все мои сделки были автоматически закрыты на крайней свече той торговой сессии (в 23:50 где-то). Я предположил, что в параметрах транзакции мне не хватает какой-то даты ограничивающей сделку, и ради эксперимента купил несколько контрактов уже непосредственно через терминал QUIK (не скриптом) - параметры сделки оказались идентичные с теми, что я ранее создавал скриптом.
Собственно вопрос, в параметрах транзакции действительно не хватает каких-то атрибутов (дат), или это особенность срочного рынка такая?
Параметры в QLUA формирую следующие:
Код
["ACCOUNT"] = pAccount,
["CLIENT_CODE"] = pClient_code,
["TYPE"] = "M",
["TRANS_ID"] = "1",
["CLASSCODE"] = pClasscode,
["SECCODE"] = pSeccode,
["ACTION"] = "NEW_ORDER",
["OPERATION"] = "B",
["PRICE"] = "0",
["QUANTITY"] = "1"
РЫНОЧНАЯ заявка на покупку - обязателен ли параметр "Цена"?
 
Спасибо за ответы.
В общем, нужно ставить эксперименты и на практике смотреть как отрабатывают те или иные комбинации.
А с какого момента появилась возможность на площадке FORTS выставлять "Рыночные заявки"? В одной из параллельных тем форума указано следующее:
Цитата
12.11.2015 07:59:24
Если вы торгуете на площадке фортс, то ставить признак "М" и цену = 0 не получится.
Нужно выставлять обычную лимитную заявку, но с ценой заведомо хуже текущих цен в стакане но не выходя за планку.
Эта возможность (эмулирование рыночной заявки QUIK-ом на FORTS) работает стабильно и без сбоев? Или все же на FORTS лучше выставлять лимитную заявку с предрассчитанной ценой для немедленного исполнения?
РЫНОЧНАЯ заявка на покупку - обязателен ли параметр "Цена"?
 
Коллеги, спасибо за ответы.
Цитата
В данном случае речь идет про фондовый рынок
Вообще, я ставил эксперимент на Срочном рынке FORTS. Но теперь еще интереснее стало - это правило по-разному работает на различных площадках?
РЫНОЧНАЯ заявка на покупку - обязателен ли параметр "Цена"?
 
Здравствуйте.

Вопрос в следующем. В документации QUIK указан пример, как сформировать набор параметров для выставления рыночной заявки на покупку, вот он этот пример:
Код
Заявка на покупку Русгидро, рыночная, 15 лотов:

ACCOUNT=NL0080000043; CLIENT_CODE=467; TYPE=M; TRANS_ID=7; CLASSCODE=TQBR; SECCODE=HYDR; ACTION=NEW_ORDER; OPERATION=B; PRICE=0; QUANTITY=15;
Как видно, параметр "TYPE" = "M" (заявка рыночная), параметр "PRICE" = 0 (цена равна ноль).

Полагая, что при заявленном параметре "TYPE" = "M" (рыночная цена), параметр "PRICE" уже не играет никакой роли, я сформировал заявку вообще не указывая параметр "PRICE". В ответ от терминала получил следующую ошибку:
Код
Transaction Result:  Не указано значение поля "Цена"
  1. Правильно ли понимаю, что даже при создании рыночной заявки ("TYPE" = "M"), параметр "Цена" все равно должен быть указан и передан в терминал? Какую роль он при этом выполняет?
  2. Если в рыночной заявке ("TYPE" = "M") значение поля "Цена" выставить равным ноль, как в примере - произойдет ли выставление заявки именно по рыночной цене и как следствие ее немедленное исполнение?
  3. Если при создании рыночной заявки ("TYPE" = "M"), значение поля "Цена" выставить не равное нулю, заявка все равно будет выставлена по рыночной цене и немедленно исполнена, или тогда она уже будет выставлена по указанной цене? Если так, то какую роль тогда играет параметр "TYPE"="M"?
Заренее благодарен за ответы.
Страницы: 1
Наверх