Александр (Все сообщения пользователя)

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

Страницы: 1
Ошибка "Произошла ошибка при загрузке файла"" " в квике 9.2
 
Сегодня брокер прислал обновление 9.2.3.15, в нём падает бесконечная ошибка:

Методом гугления был найден вот этот мануал https://arqatech.com/upload/faq/Certificate_QUIK_Front9.2.pdf, он не помог.
Есть предположение, что каким-то местом это связано с пользовательскими индикаторами, которые лежат в папке LuaIndicators, потому как без них ошибки нет. Ни один из индикаторов с файлами не работает. Как побороть сие?
Разделитель в таблице текущих торгов, добаить возможность вставлять в таблицу не значимый пункт, который бы разделял группы акций/фьючерсов и т.д.
 
Цитата
СергейК написал:
А сортировать как?
Если сортировка будет работать внутри каждой группы это вообще будет идеально)
Разделитель в таблице текущих торгов, добаить возможность вставлять в таблицу не значимый пункт, который бы разделял группы акций/фьючерсов и т.д.
 
Речь про ненужную информацию не идет. Цель - визуально разделить нужную информацию в рамках одной таблицы текущих торгов, например разделить акции по секторам:
 
Разделитель в таблице текущих торгов, добаить возможность вставлять в таблицу не значимый пункт, который бы разделял группы акций/фьючерсов и т.д.
 
В текущий момент в таблицу текущих торгов можно добавлять только конкретные инструменты. Было бы довольно удобно для разделения инструментов на отдельные группы (допустим разделить акции по их секторам) добавлять некий разделитель, что-то типа строки состоящей только из "-" во всех столбцах или каких-либо других символов.
По возможности запретить выбирать этот пункт в таблице текущих торгов или при его выборе ничего не рисовать на графиках.
Прочесть таблицу новости через LUA
 
а что-то изменилось за годы? появилось какое то простое api для работы с новостями?
или это очень трудно реализуемо ...
Привязка скрипта на lua к конкретному компьютеру, Ограничение возможности запуска скрипта
 
Решал ли кто-то подобную задачу по ограничению возможности запуска скрипта только с определенного компьютера. Допустим при первом запуске осуществляется привязка к железу из самого же скрипта и в дальнейшем осуществляется проверка откуда идет запуск.
Интересуют любые наработки/статьи по этому поводу. Возможно что-то такое уже было но поиском тут не нашел.
QUIK 8.0
 
может кто-то уже выложить core.dll, которая нормально будет работать с квиков 8.1 ?  
Горячие клавиши
 
Цитата
Stanislav Tvorogov написал:
Цитата
anbec anbec пишет:
Сделать горячие клавиши для вызова доступных скриптов Lua. как для вызова доступных портфелей Qple (ctrl F10; ctrl F11 и ctrl F12) к примеру.
Добрый день,

Мы рассмотрели Ваше пожелание. По итогам его анализа сообщаем Вам, что мы также считаем целесообразным его реализацию и постараемся включить в план доработок при выпуске одной из следующих версий нашего ПО.
ну как оно, есть прогресс?
Временно скрыть область/индикатор в диаграммах, Добавить чекбокс для временного скрытия/отображения целой области/индикатора
 
Иногда, при настройке графика под себя, требуется временно скрыть ту или иную область или отдельный индикатор. Область/индикатор могут быть уже настроенной, поэтому удалять их и потом заново восстанавливать будет довольно затруднительно. Вполне бы подошло просто выставление чекбокса, допустим в дереве всей диаграммы. По умолчанию все чекбоксы отмечены. Если снимается чек с области, то снимаются со всех дочерних индикаторов. Или в списке настроек каждой области/индикатора можно добавить чекбокс "Отображать на диаграмме".
Спасибо.
Копирование вкладки целиком, есть ли такая возможность? если нет, то можно ли запланировать
 
Копировать отдельные таблицы/графики вроде как можно (ctrl+n) и потом переносить их на другие вкладки. Но если элементов, которое хочется скопировать, много, то это довольно долго делать. Можно ли как-то скопировать вкладку целиком, чтобы потом можно было просто перенастроить там уже таблицы?  
Порядок запуска скриптов при запуске QUIK, как и что поступает, из-за чего скрипт может обработать то, чего ему не надо обрабатывать
 
Цитата
Suntor написал:
Ну тогда нужно следить за временем и датой в сделках, если у вас внутридневная торговля... А вообще, по хорошему, каждая заявка и сделка имеют уникальные номера. И вот к ним нужно привязываться. И помечать, что заявки и сделки с такими-то номерами были обработаны, чтобы на них повторно не попадать. Это отдельная задача, и не такая простая на самом деле. У меня это вылилось в отдельную торговую библиотеку.
то, что тут каждый чих имеет свой уникальный номер эт понятно, оно наверно даже и правильно, все таки не семечки на кону а деньги. но с другой стороны хранить кучу уникальных номеров это со временем вырастет в проблему именно количества, что тоже не есть гуд.
Спасибо за наводку про разные даты и тип дат, буду эксперементировать дальше)
Порядок запуска скриптов при запуске QUIK, как и что поступает, из-за чего скрипт может обработать то, чего ему не надо обрабатывать
 
Цитата
Suntor написал:
Потому что есть «Дата торгов», а есть «Дата сделки». Зайдите в настройки «Таблицы сделок», и добавьте ещё параметр «Дата сделки». Сразу увидите, что они отличаются. Дата торгов, показывает сессию которая началась после вечернего клиринга, она идёт вечером предыдущего дня, и днём следующего, это всё одна сессия торговая. Соответственно, в скрипте, нужно проверять даты сделок, которые приходят в ф-ции обратного вызова. Это во-первых.
шайтанама!!! про то, что время клиринга сделано не по ацтекскому календарю, я знал, но чтоб прям так...просто ВАХ
Цитата
Suntor
А во-вторых, а почему собственно ваш скрипт не может ставить стоп по сделкам за предыдущий день? Может у вас такой алгоритм, в один день покупаете, потом ждёте и на следующий день уже выставляете стопы и закрываете позиции. То-есть, это не вопрос к датам в Quik, это вопрос к ведению позиций в вашем алгоритме. Как вы их храните, считаете, открываете и закрываете. Хоть в текстовый файл информацию сохраняйте...
да не, у меня все просто, купил фьюч - сразу поставил стоп, продал - сделал тоже самое. ну и плюс сам скрипт там считает уже открыте позиции и все такое) зачем мне там выставление стопов на следующий день, я же не олигарх, я только учусь :)
Порядок запуска скриптов при запуске QUIK, как и что поступает, из-за чего скрипт может обработать то, чего ему не надо обрабатывать
 
Повторяется только один раз, видимо если сменилась дата. Если еще раз закрыть квик и снова открыть, то ничего подобного уже не повторится.
Порядок запуска скриптов при запуске QUIK, как и что поступает, из-за чего скрипт может обработать то, чего ему не надо обрабатывать
 
Вобщем получается нечто следующее: если скрипт не был остановлен, а просто был закрыт quik, то при следующем запуске quik - автоматически загружается и срабатывает скрипт. Но, если за прошлый день были какие то сделки, то в новый день они по новой прогоняются, для них срабатывают все соответствующие колбеки. Скрипт думает, что это новые сделки и выполняет соответствующие действия. В моем случае ставит по ним стопы:

На картинке в таблице сделок всякие сделки за вчера (26.06.2018), в таблице стоп-заявок все стопы были выставлены скриптом сегодня при запуске quik. Собственно, непонятно, почему вчерашние сделки датированы сегодняшней датой. Вопрос видимо больше к разработчиком, что происходит при запуске квика в таком случае, что там в ядре генерируется, что qlua думает, что произошла куча новых сделок, хотя они все старые?
Порядок запуска скриптов при запуске QUIK, как и что поступает, из-за чего скрипт может обработать то, чего ему не надо обрабатывать
 
Цитата
Suntor написал:
Прямо под полем ввода текста, ссылка есть «Загрузить картинки». После загрузки, на неё нажимаете, и вставляете в текст.
Спасибо) +1 лвл к освоению форума. +10 к карме Suntor
Цитата
Если он у вас по таблице всех сделок работает, то да. В неё подгружаются все сделки за текущую торговую сессию при соединении Quik с сервером.
работаю я с таблицами stop_orders, futures_client_holding и orders и только в колбеках. нет ни какой обработки исторического содержимого этих таблица. получается, что при загрузке quik для любого возможного трейда (который прошел в режиме оффлайн) отрабатывает весь набор событий ?
Порядок запуска скриптов при запуске QUIK, как и что поступает, из-за чего скрипт может обработать то, чего ему не надо обрабатывать
 
откуда сюда картинки то можно вставлять?)
вместо второй должна быть
Порядок запуска скриптов при запуске QUIK, как и что поступает, из-за чего скрипт может обработать то, чего ему не надо обрабатывать
 
сори) накошмарил с картинками
Если в картинках, то произошло сегодня примерно следующее: днем была экспирация опционов, вечером при запуске квика в таблице сделок видим:

при запуске квика вечером скрипт на такую ситуацию отреагировал следующим образом:

параметры выставленных стопов:
Порядок запуска скриптов при запуске QUIK, как и что поступает, из-за чего скрипт может обработать то, чего ему не надо обрабатывать
 
Ситуация примерно следующая: допустим вчера я поработал в quik, был запущен скрипт и по завершению не была нажата кнопка "Остановить", сегодня при запуске quik скрипт автоматом запускается и наблюдается примерно следующее - скрипт начинает отрабатывать, да еще и не по разу. При этом скрипт видимо обрабатывает транзакции, которые могли произойти пока терминал был закрыт, но результат при этом вообще не предсказуем.
Если в картинках, то произошло сегодня примерно следующее: днем была экспирация опционов, вечером при запуске квика в таблице сделок видим:
[img]d:\1.png[/img]
при запуске квика вечером скрипт на такую ситуацию отреагировал следующим образом:
[img]d:\2.png[/img]
параметры выставленных стопов:
[img]d:\3.png[/img]
если последний стоп я понять могу, он закрыл купленный фьючерс, то откуда взялись первые два стопа? фильтр по коду класса инструмента сделан, отрабатывать скрипт должен только при торговле фьючерсами.
и вообще это нормально, что скрипт обрабатывает все что было в прошлом, пока терминал был закрыт?
Как присвоить значение бару?, Это можно реализовать в скрипте или обязательно делать через написание индикатора?
 
Создать в скрипте таблицу candleInfo = {}, записывать туда время бара и своё расчётное значение table.insert(candleInfo, {currentCandle["datetime"] ,calcValue}), ну а потом сделать функцию для поиска по таблице. Перебирать бары, брать их datetime и через SearchItems искать в таблице candleInfo.
зы. На практике не проверял, но вроде как годный алгоритм и без всяких индикаторов
Вычитание из числа округленного до сотых числа округленного до сотых, В скрипте две переменных, округленные до сотых. Из одной вычитается другая. Результаты математической операции ниже:
 
На просторах интернетов можно найти доп.модуль QL.LUA, в нём много различных вкусностей, которые помогают не изобретать велосипед, а использовать то, что уже давным давно написано. Скачиваете, подключаете в своем модуле (require "QL";), используете...
В частности из QL.LUA:
Код
function toScale(number,scale,dir)
   -- округление числа до scale вниз при dir==floor, вверх при dir==ceil или математическое при dir==nil
   if not dir then
      return math_floor((0.5*scale+number)/scale)*scale -- math rounding
   elseif dir=='floor' then
      return math_floor(number/scale)*scale  -- floor rounding
   elseif dir=='ceil' then   
      return math_ceil(number/scale)*scale  -- ceil rounding
   end
end
Вид бумаги в OnTrade, получить вид бумаги, по которой произошел трейд
 
Цитата
vgi написал:
Берите из колбэка class_code и sec_code инструмента и проверяйте его тип:
Код
   local  pi  =   getParamEx (class_code,sec_code ,"sectypestatic")
 local  sectype  =  pi  and  pi.param_image
 if  sectype  =  =   "Ценные бумаги"   then 
  ...
 end 

Цитата
Игорь Б написал:
Соответственно, смотрим таблицу сделок и функцию
getItem("trade",i).class_code
Все спасибо, оба варианта годны, но остановлюсь наверно на class_code. Завязываться в коде на кириллицу сами понимаете, не камильфо) "Фьючерсы" легко превратится в "Futures" простой сменой языка.
Самое интересно, что именно недокументированный sectypestatic отработал, а вот документированный SECTYPE - нет.
Вид бумаги в OnTrade, получить вид бумаги, по которой произошел трейд
 
Всем вечера доброго.
Очень простая задача - определить по кому прошла сделка: по фьючерсу или по опциону.
Возможно конечно вопрос уже обсуждался, а может он просто дилетантский и я ответа нужного не нашел но все таки.
Как "правильно" в калбеках опредилить вид бумаги, по которой произошла сделка? К таблице "Состояние счета" обратиться видимо пока нельзя (а может уже можно, просто я не знаю), в других таблицах есть только sec_code. пока что мысль одна - тупо проверять длину sec_code и его содержимое, но может есть более правильный подход или еще лучше готовая функция?
Страницы: 1
Наверх