Эпик вин написал: Мдаа.. Давненько я такого не встречал. Обратная совместимость 0/10, очевидность 0/10, документация 2/10, шлангование и перекаты 10/10.
Этот тред длиной в два года достоин того, чтобы поместить его первой ссылкой в тех.документации арки и квика. Я бы даже сказал, что он обязателен к прочтению теми, кто собирается погружаться. Как и множество других, чуть менее эпичных.
Спасибо всем участникам за то, что многим сэкономили время на исследование этого архитектурного кошмара.
...OnTrade() и OnOrder() могут вызываться несколько раз, даже если визуально никакие поля не поменялись, так как не все поля структуры сделки видны через QLua.
Вроде бы как-то обещали, что внесете порядковый номер обновления для каждой сущности, что было видно, что что-то поменялось. Три года с тех пор прошло.
модно использовать createdatasource, если период, за который вы хотите получать объем , является стандартным в терминале. Если период произвольный - то обработкой таблицы обезличенных слелок
Андрей написал: Если правильно понял, ответ на вопрос "Как определить Код класса (CLASSCODE) по коду инструмента (SECCODE)?" - никак. Тогда вопрос, как получить список инструментов портфеля с кодом класса, если не из таблицы depo_limits?
получить список доступных классов, в каждом из них поискать требуемый инструмент. Если он найдется в нескольких классах - чесать репу и выбирать нужный. Как выбирать - это исключительно ваши предпочтения и правила.
когда вы говорите терминалу вручную "сними все" он посылает транзакции для каждой бумаги, которая есть у вас в портфеле. То же самое необходимо делать и вам из скрипта
Михаил написал: Мне необходимо зафиксировать эту цену на каждой бумаге и производить с этой ценой дальнейшие расчеты, до наступления следующего дня, а так как цена последней сделки измениться при объявлении цены постмаркета, то не представляется возможным рассчитывать на основе цены закрытия в 18.40 интересующие меня параметры. Руками просматривать графики так же не вариант, так как это занимает очень много времени. В конечном итоге нужно вывести для каждой акции цену закрытия основной сессии в таблицу Excel
разве задача не решается скриптом на луа?
Об этом я и пришел узнать сюда). А так же найти помощь в реализации этой задачки.
Михаил написал: Мне необходимо зафиксировать эту цену на каждой бумаге и производить с этой ценой дальнейшие расчеты, до наступления следующего дня, а так как цена последней сделки измениться при объявлении цены постмаркета, то не представляется возможным рассчитывать на основе цены закрытия в 18.40 интересующие меня параметры. Руками просматривать графики так же не вариант, так как это занимает очень много времени. В конечном итоге нужно вывести для каждой акции цену закрытия основной сессии в таблицу Excel
разве задача не решается скриптом на луа?
Об этом я и пришел узнать сюда). А так же найти помощь в реализации этой задачки.
Михаил написал: Мне необходимо зафиксировать эту цену на каждой бумаге и производить с этой ценой дальнейшие расчеты, до наступления следующего дня, а так как цена последней сделки измениться при объявлении цены постмаркета, то не представляется возможным рассчитывать на основе цены закрытия в 18.40 интересующие меня параметры. Руками просматривать графики так же не вариант, так как это занимает очень много времени. В конечном итоге нужно вывести для каждой акции цену закрытия основной сессии в таблицу Excel
s_mike@rambler.ru написал: нужно правильно написать робота, чтобы он перед выставлен тем заявки проверял, что желаемое цена находится в допустимых для текущей сессии границах для нужного инструмента. Например, для фьючерсов это pricemin и pricemax
Какие границы посоветуете для спот-рынка?
границы для спорт рынка Московской биржи не транслируются. Но на ней заявка по рынку работает без модификаций на шлюзе, в отличие от местного срочного рынка
Vasiliy написал: Иногда при работе робота выходит ошибка №32 и сделка не ставится. Как-то можно избежать данную ошибку? Может что-то прописать в коде или что-то изменить в настройках терминала? Заранее спасибо.
нужно правильно написать робота, чтобы он перед выставлен тем заявки проверял, что желаемое цена находится в допустимых для текущей сессии границах для нужного инструмента. Например, для фьючерсов это pricemin и pricemax
Egor Zaytsev написал: Добрый день. Правильно понимаем, что вы хотите, чтобы мы добавили новое поле unix_datetime, (например, на сделках или заявках) т.к. Вам не удобен формат Lua таблицы?
Если все же решите добавить это поле, не забудьте добавить и дробную часть (микросекунды)
s_mike@rambler.ru написал: А (правильный) вариант исправления/добавления терминала уже не рассматривается в принципе? Базовая потребность - и только костылями?
Если речь о том чтобы зарегистрировать пожелание, тогда Вы должны его озвучить (пожелание)
Сергей, у меня нет коммерческих отношений с вашей компанией, я ничего ей не должен. Извините.
Sergey Gorokhov написал: s_mike@rambler.ru, Михаил, Можно запоминать состояние stopped во внешнем хранилище. Или добавить проверку на что то еще, например подключение к серверу.
А (правильный) вариант исправления/добавления терминала уже не рассматривается в принципе? Базовая потребность - и только костылями?
local stopped,f
function main()
f = io.open("\\\\Server\\E\\1.log","w")
repeat
f:write("****\n")
sleep(16)
until stopped
f:close()
end
function OnStop(flag)
f:write(tostring(flag) .. "\n")
stopped = true
end
чтобы скрипт завершался при выключении терминала? У меня не получилось никакими ухищрениями.
Анатолий написал: Здравствуйте, вдруг задался глупым вопросом, но всё же, чем самому гадать лучше думаю спросить - время свечи, как на графике так и возвращаемое параметром T ( ds:T(index) ) в Луа скрипте - это что за время - время начала формирования свечи или конца?
Добрый день. Это время начала формирования свечи, например, для минутной с 18:15:00 -> 18:15:59. С 18:16:00 открывается новая минутная свечка.
Егор,
формулируйте правильно, не вводите пользователей в заблуждение.
время начала свечи есть округленное до величины таймфрейма в сторону уменьшения время событий.
события могут быть как сделками, так и например, изменениями параметров
новая свечка открывается не в 18:16:00, как вы написали, а с приходом первой сделки или иного события ПОСЛЕ указанного времени (например в 18:16:48)
Zoya Skvorcova написал: s_mike@rambler.ru, Добрый день. Информацию можно узнать по Статусу из таблицы Текущие торги
Статусу класса. Нда....
Или вы предлагаете мне заранее вносить от каждого класса по одному инструменту в таблицу текущих торгов, чтобы понять, что это за класс? Нда...... А если именно этот инструмент сейчас не торгуется?
Тогда почему на споте при наступлении нового дня не происходит обновление объема, а на срочном рынке происходит ежедневный сброс? Квик не причем, все биржи косолапые?))
получается, что на споте объем 0 по Газпрому был в лохматом 2002 году, с тех пор он только растет и растет, никогда не сбрасываясь в 0?
и как же мне узнать дневной объем торгов на срочном рынк high + close -open всегда будет верен на дневных графиках?
Илья написал: Всем привет. Возможно ли получить такие данные в квик и какие есть варианты
Почему нет? На месячных графиках есть вся необходимая для этого информация по всем существующим инструментам за всю историю московской биржи. По западным рынкам будет не вся история.
Если нужно собрать всю эту информацию в одно место (в файл, например) - то на луа такой скрипт сделать можно.
s_mike@rambler.ru написал: Функция возвращает путь, по которому находится файл info.exe
безосновательный вброс (я сам не проверял): - а точно эта функция возвращает "путь до info exe"? почемуто мне кажется что она вернет "рабочий каталог", т.е. тот куда Квик пишет свои файлы, и который, тащемта, может отличаться от пути где info exe.
предлагаю проверить так. создаем c:\quik\bin туда кладём Квик. создаем c:\quik\data делаем туда cd c:\quik\data и запускаем квичок ..\bin\info.exe что вернет ваша функция?
Странные на самом деле вопросы задаете, дорогой товарищ..
документация по qlua:
getWorkingFolder
Функция возвращает путь, по которому находится файл info.exe, исполняющий данный скрипт, без завершающего обратного слеша («\»). Например, C:\QuikFront.