Если я ничего не путаю, то строго говоря значения могут приезжать не только в последнюю свечу. Но точно это нюанс подзабыл
Значение переменной в предыдущую секунду, Как узнать разницу цены пришедшего тика с ценой предыдущего тика?
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
27.08.2019 20:04:33
Разрешаю!
CreateDataSource, не делает квик сильнее
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
27.08.2019 20:04:12
Цитата
Anton написал: При открытии ТОС ничего же не виснет.
Вот когда откроете полторы тысячи тиковых TOC - тогда и будет смысл говорить про "ничего не виснет".
Защита от кросс сделок
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
27.08.2019 20:02:02
Вы ведь понимаете, что никак. На то они и анонимные торги, что никто не знает чьи это заявки. Более того, по одной цене могут стоять как ваши заявки, так и других трейдеров. Соответственно вы не знаете именно заявки будет мэчить биржа: ваши с вашими или ваши с "чужими".
В общем рецепт тут только один: не "заранее проверять", а продумать стратегию что делать в случае обнаружения кросс-сделки и стратегию эту реализовать в скрипте. Тем более, что между "проверкой" и реальным выставлением заявки все может повернуться так, что часть заявок других трейдеров будет снята и результат проверки окажется недействительным, т.е. опять получим кросс. С которым опять надо будет бороться как-то.
Хозяйке на заметку: OnStop(), или "Зачем вы это делаете, мистер Андерсон?"
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
27.08.2019 19:56:51
Как известно, QLua работает вот по такой модели: В этой схеме не прописан один быть может не совсем очевидный нюанс, хотя понятно, что иначе и не сделать.
Сначала выполняется "скрипт целиком" ([BODY] на схеме). Выполняется он и в том смысле, что в глобальное пространство имён Lua-машины добавляются определённые в Lua-скрипте функции. Далее QLua перебирает все объекты глобального хранилища, и находит там функции с предопределёнными названиями. Для всех найденных известных функций-callback'ов "в уме" QLua проставляет признак: "для этого события callback определён, а для этого - нет".
После, когда возникает какое-либо событие, которое должно привести к вызову callback-функции, сначала проверяется: а для этого события с этом скрипте мы нашли требуемую callback-функцию после выполнения [BODY]? Нашли - вызываем её, не нашли - не вызываем.
Соответственно, если мы в нашем Lua-скрипте определяем глобальную функцию OnStop только в тот момент, когда первый раз вызовется OnInit - то это будет уже "поздно". QLua уже пометил себе, что функция OnStop - не найдена, вызывать её не следует.
Вот и вся разгадка.
Осталось лишь узнать мнение начальника транспортного цеха, зачем он использует столь изощрённый синтаксис. Какова хитрая цель? Быть может все будет полезно?
Отличие модификаций Quik у разных брокеров, использование одного Quik для разных брокеров
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
27.08.2019 19:44:06
Как одним терминалом подключаться к разным брокерам
Отправка транзакций
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
16.07.2019 21:05:41
Несколько минут?? Что за брокер? на каком рынке? в какое время? все время в течение дня?? Расскажите, чтобы туда не ходить
Многопоточность в Луа
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
16.07.2019 21:04:22
На 512 инструментов выставляете заявки?
Не работает .dll в новой версии QUIK, просит увеличить файл подкачки
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
16.07.2019 21:01:11
Цитата
Александр Волфовиц написал: Обновился QUIK до 8-й версии и "обрадовал" ошибкой:
На предыдущей версии работали 6 скриптов безо всяких проблем.
Судя по тексту ошибки - проблема в библиотеке luacdll Её или вы, или кто-то явно сделал на основе примера вот отсюда
Для QUIK 8 вашу библиотеку надо пересобрать для платформы x64. По указанной ссылке уже обновлены сборки и все требуемые файлы для возможности собирать библиотеки для x64 платформы, с архиве с исходниками.
Только надо именно вашу библиотеку пересобрать! Из ваших исходников! Если вы сами её делали - возьмите исходники, обновите файлы проекта и lib-файлы и пересоберите. Если делал кто-то другой - обратитесь к нему, пусть из исходников пересоберёт на основе примеров по указанной ссылке.
Многопоточность в Луа
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
12.07.2019 20:34:18
Цитата
Олег написал: SleepWaitForSingleObjectWaitForMultipleObject и т.д.При выходе потока из спячки ОС Windows вернет управление в тот же самый поток или в любой другой свободный поток из рабочего пула потоков Windows?
Разумеется по выходу из указанных функций произойдёт возврат ровно в этот же поток, иначе и не может быть.
Вообще вы куда-то не туда роете, не теми какими-то вопросами задаётесь. Вы расскажите чего хотите добиться - возможно, вам предложат решение. Это будет более плодотворный путь.
Многопоточность в Луа
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
12.07.2019 20:31:30
Цитата
Олег написал: Программа QUIK создает потоки для каждого скрипта напрямую через CreateThread или берет из пула потоков, предоставляемых Windows.Например, через QueueUserWorkItem ?
Windows предоставляет всем нам единственную функцию для создания потоков: CreateThread Так что в любом случае поток создаётся в итоге через неё.
QUIK 8.0
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
12.07.2019 18:29:20
Добавил в архив тестовый пример DLL на C++ для QUIK 8 (x64) Там же можно взять .lib-файл для сборки своих проектов
Как узнать id поданной заявки?
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
12.06.2019 21:12:20
Цитата
Цитата
написал: Также, хотел бы спросить, не будет ли убытка в случае операции подачи заявки и практически моментального снятия?
Этот вопрос следует задать вашему брокеру. Обязательно уточнив про какой рынок идёт речь (каким типом инструментов в торгуете). Общего ответа нет, зависит от брокера и рынка (биржи)
2-x кратный расчет индикатора
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
30.05.2019 17:41:40
Не отвлекай, люди работают. Если они еще и на форумах будут отвечать по каждой проблеме - прикинь как всё затянется
Индикатор(написанный мной) не передает данные на экран в текущем времени, Проблемс
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
30.05.2019 17:40:10
У вас ошибка в 17-й строке.
Снятие заявок
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
30.05.2019 17:39:18
Речь про подключение к QUIK через клиентский терминал?
Если так, то не понятно зачем это может быть нужно. Клиент QUIK настолько далеко от шлюзового подключения к бирже сервером, что что-либо тут контролировать вы всё равно не сможете.
Порядок вызова Callback OnOrder, OnDepoLimit / OnFuturesClientHolding, Порядок вызова Callback OnOrder, OnDepoLimit / OnFuturesClientHolding
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
30.05.2019 17:32:24
Дмитрий, вас тут зачем-то обманывают. Правильный ответ такой: робот должен корректно работать при абсолютно любом порядке срабатывания call-back'ов. Потому как порядок в разное время и у разных брокеров и на разном вашем канале может быть совершенно любым (особенно во время большой активности на рынке). И когда ваш робот в критический момент не сработает (не закроет позицию, например) из-за того, что вы заложились в нём только на определённый порядок срабатывания call-back'ов - то вам тут не помогут и даже не посочувствуют. Лишь скажут, что "мы не обещали определённый порядок".
Так что расслабляться в этом месте не следует, при проектировании робота следует исходить лишь из того, что call-back'и могут сработать в абсолютно любом порядке. Скажу больше, в некоторых случаях некоторые call-back'и могут вовсе не сработать (да, и такое бывает, пусть и не часто), но и в таких случаях робот должен либо корректно жить, либо ярко зажигать красную лампочку для ручного вмешательства и принятия решения и том, что делать с набранными позами здесь и сейчас.
Работа на Мас
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
22.05.2019 20:32:15
В инструкции указана необходимость скачивать msvcp60.dll Что-то мне подсказывает, что это уже не актуально. Если это так - удалите из инструкции информацию про msvcp60.dll, плиз
Одинаковые линии трендов на разных окнах графиков
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
12.04.2019 17:28:10
Регистрируйте
Одинаковые линии трендов на разных окнах графиков
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
11.04.2019 19:45:40
Открыто несколько окон графиков с одним инструментом (но разными тайфреймами, например). А хоть и с разными инструментами. Есть ли возможность рисовать линию тренда в одном окне и чтобы такая же ровно линия тренда появлялась в другом окне? А при изменении таких линий тренда - ест ли возможность, чтобы в других окнах они тоже изменялись?
Взаимодействие OLua и Lua под Виндой
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
26.03.2018 06:33:38
Цитата
написал: Стати, ни разу не получилось увидеть, как скрипт qlua, будучи запущенным из терминала, крутился бы на другом ядре. Возможно, дело в установленных ос или железе.
цикл, запущенный в main(), вполне себе крутится на отдельном ядре. (Есть нюанс куда его приткнет ОС, но в любом случае отдельно)
Вопрос: возможна ли ситуация, что вначале будет снят ордер с trans_id = 107 и лишь затем снимется ордер с trans_id = 102?
ответ очевиден - да, порядок вызовов OnOrder будет произвольный.
История торгов
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
03.06.2017 06:56:27
Цитата
_sk_ написал: А как-нибудь смёржить в терминале последние 3000 свечей с сервера и имеющиеся в наличии накопленные данные нельзя? Задача не кажется сложной.
в общем случае весь график полностью может быть изменен на сервере (при сбоях в расчетах), поэтому мержить сложно быдет. хотя, если просто заменять данными с сервера, а то, чего нет на сервере - просто не трогать...
Получить заново таблицу обезличенных сделок
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
22.05.2017 12:21:28
Зарегистрируйте пожелание: "Передавать в function OnAllTrade(alltrade) признак 'перезаказано заново' " (т.е. в тот вызов OnAllTrade, который случился первым после нажатия кнопки "перезаказать" - должен передаться признак "всё поехало заново") Или пожелание в такой вариации: "Сделать новую call-back функцию, которая будет вызываться в момент нажатия кнопки "перезаказать".
Ошибка при запуске Луа-скрипта
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
13.05.2017 19:23:37
Цитата
диман ааппаампма написал: Драсте у меня такая ошибка вылетает при запуске луа, ребят помогите, а то писец, край мне )
Срочно! Исправтье логическую ошибку при вводе заявки, Потерял на этом деньги
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
11.05.2017 20:54:30
Вы попали в Палату Регистрации. Ваш звонок очень важен для нас.
отображение текущих чистых позиций, Проблема с определением текущих позиций
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
11.05.2017 04:34:12
Реальные торги или демонстрационные?
Срочно! Исправтье логическую ошибку при вводе заявки, Потерял на этом деньги
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
11.05.2017 04:29:27
Беда в том, что эта настройка ни от чего вас не страхует. Вы на нее слишком надеетесь. если требуется гарантированная торговля без плеча - надо требовать у брокера отключение для вас такового. тогда контроль будет на стороне сервера и вы точно не залезите в заемные средства
Спот- Ошибка при попытке транзакции?, Спот- -недопустимый символ
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
10.05.2017 06:48:06
бывают арки античные. Они вызывают восхищение своим изяществом и совершенством. а бывают арки новосибирские, не обладающие ни одниб из указанных достоинств. мне одно любопытно: неужели не шевелится от таких советов "у нас что-то не то в этом месте"? судя по постоянству подобных предложений костылей - нет, не шевелится
CalcBuySell()
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
10.05.2017 06:42:34
И на что будет влиять функция-настройка? как раз параметр - необязательный! - верный и понятный путь
StratVolat.dll, StratVolat.dll для версии 7.10.0.76?
OnTrade(trade) шалит, выполняется больше одного раза для сделки
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
07.05.2017 18:52:54
У меня есть смутное воспоминание, что от версии это не зависит. Зависит от "удачи", которая, кстати, может и отвернуться. Так что настоятельно рекомендуется чуть поправить скрипты - и жить счастливо.
Ну в самом деле, это ж просто:
Код
tbl_trades = {}
fuction OnTrade(trade)
if tbl_trades[trade.trade_number] ~= nil then
exit
end
tbl_trades[trade.trade_number] = 1
...
Код для примера, названия полей не проверял, надо верные названия подставить, здесь просто идея.
Срочно! Исправтье логическую ошибку при вводе заявки, Потерял на этом деньги
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
06.05.2017 21:03:48
Цитата
A.T. написал: Пожалуйста, учтите также момент, что если я ввожу объем заявки больший, чем рассчитано max (по органичению "Исходя из собственных средств"), нужно автоматически, молча и без предупреждений выставлять max, а не то, что ошибочно вписано. Если вписан меньший или равный max объем, то соответственно то, что вписано.
По-моему это логично и очевидно. Иначе смысл флажка "Исходя из собственных средств" не учитывается вовсе.
Абсолютно не логично. Вы сами в явном виде прописали объем. Исходя из чего вдруг вписанная вами явно цифра в заявке должна игнорироваться??
Про что галка "исходя из собственных средств" - уже сказано.
OnTrade(trade) шалит, выполняется больше одного раза для сделки
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
06.05.2017 20:58:22
Да, OnTrade может вызываться несколько раз для одной сделки. Как и OnOrder для одной заявки. Это нормально, скрипт должен быть готов к этому.
Время изменения стакана получаемого через OnQuotes, OnQuotes - есть ли возможность параллельно с чтением стакана, получить точное время торгового сервера, когда он возник/изменился
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
04.05.2017 07:30:42
"Лента" - это "Все сделки"?
Время изменения стакана получаемого через OnQuotes, OnQuotes - есть ли возможность параллельно с чтением стакана, получить точное время торгового сервера, когда он возник/изменился
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
04.05.2017 07:29:18
Рождается на сервере брокера. Выше был намек. ну и потом, это ведь очевидно, что сервер и терминал общаются по протоколу, отличному от биржевого. хотя бы потому, что бирж много, а терминал - один.
Несколько QUIK путают файлы настроек.
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
04.05.2017 07:20:04
Парни, у вас очевидный косяк квик позволяет запускать несколько терминалов, но только из разных директорий. Это вы различаете. но пути в диалогах открытия/сохранения файлов имеют как бы глобальные настройки на любую копию терминала. И это косяк! надо сделать так, чтобы квики из разных папок имели свои устоновки пути, куда сохраняются/открываются файлы. но! Это должно быть опционально! Возможно
Срочно! Исправтье логическую ошибку при вводе заявки, Потерял на этом деньги
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
03.05.2017 22:33:52
Зачем себя так мучать двойными кликами, если вы на самом деле подтверждение игнорируете. Просто отключите его F9 - Торговля - Заявки - снять Запрашивать подтверждение
А "Исходя из собственных средств" - это про другое. Если вы указали объём - то он и будет использован. Не указывайте объем, просто нажмите на кнопку, где посчитан максимум лотов - и вот тогда параметры заявки будут такие, что рассчитаются "исходя из собственных средств" (если галка такая стоит).
Срочно! Исправтье логическую ошибку при вводе заявки, Потерял на этом деньги
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
03.05.2017 20:14:15
Что касается флажка "Исходя только из собственных средств", то он относится лишь к функционалу расчета доступного количества в клиентском терминале, не более.
А т.к. вы сами явно указали объём заявки - то на такой объем заявка и выставилась. Так что не понятно опять же, что не так. (хотя, чтобы этот объём вообще как-то учелся - требуется еще нажать кнопку, где рассчитан максимум; это если мы про режим Т+2 говорим; вы как-то про режим не уточнили, а ведь акции торгуются в разных режимах)
Срочно! Исправтье логическую ошибку при вводе заявки, Потерял на этом деньги
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
03.05.2017 20:11:41
Как-то с трудом верится. для акций, если вводится цена - признак рыночная обязательно снят. либо таки заявка осталась рыночная.
Ну и потом: не понятно какую вы указали цену. Может вы указали цену "хуже" рынка - тогда, разумеется, заявка исполнилась по рынку.
Тут бы нужно показать таблицы заявок и таблицы сделок, где видно цены заявок и сделок, чтобы разговор был предметный.
Несколько QUIK путают файлы настроек.
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
03.05.2017 20:05:11
Студенты, как раз, позволяют. Что как бэ намекает.
Проигрывание мелодии - информация о сделке., Оповещение пользователя о редких событиях в скрипте - как решаете эту задачу.
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
03.05.2017 20:02:14
Кстати, а зачем проигрывать звуки при помощи скриптов, если для сделок есть готовое событие в терминале? или эти события не срабатывают для сделок/заявок, получившихся из скриптов?
Падение QUIK с General Protection Fault, DestroyTable() и Clear() при вызове из функции обратного вызова для обработки событий в таблице
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
03.05.2017 19:57:48
А точно требуется вызывать DestroyTable для таблицы, связанной с окном, которое и так закрывается? Я думал таблица при этом автоматически уничтожится. Или это не так?
Срочно! Исправтье логическую ошибку при вводе заявки, Потерял на этом деньги
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
03.05.2017 18:06:43
Какого рынка заявка?
Проигрывание мелодии - информация о сделке., Оповещение пользователя о редких событиях в скрипте - как решаете эту задачу.
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
03.05.2017 06:09:40
вроде такой метод не останавливает скрипт, но точно не помню, надо перепроверить
Вопрос по отображению одинаковых графиков в квике
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
01.05.2017 21:17:43
Лучше всего воспользоваться опцией "показывать на всех"
Пропадает глобальная таблица _G
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
28.04.2017 07:04:15
main начинает работать слишком быстро, похоже :) ускорили и оптимизировали, как всегда удачно