В скриптах на lua - brokerref - это поле таблиц, в которое записывается строка формата <код клиента>/<комментарий>, которая была подана с транзакцией в поле CLIENT_CODE.
Что-то я не понял. При подаче транзакции в поле CLIENT_CODE надо записывать именно код клиента. Причём тут комментарий?
Комментарий в поле brokerref
Пользователь
Сообщений: Регистрация: 30.10.2024
29.11.2025 17:34:04
1) в скрипте в поле brokerref я могу записать любую строку, какую захочу, или эта строка должна быть вида <код клиента>/<номер поручения>, или какая-то комбинация из кода клиента + что-то своё.2) какова длина этого поля? где-то читал, что можно записать всего 20 символов, иначе транзакция отклоняется.
О торговле фьючерсами и ГО
Пользователь
Сообщений: Регистрация: 30.10.2024
20.11.2025 21:02:17
Почему ГО для покупки и ГО для продажи различаются? В чём смысл?
Всё верно. В этом примере на депозите должно хватать свободных средств на ГО под два контракта на продажу. По-хорошему, кнопочка "R" должна была бы проверять депозит, и если денег достаточно, делать переворот одной заявкой, а если нет - то в два шага. Но это QUIK.
Большое спасибо!
О торговле фьючерсами и ГО
Пользователь
Сообщений: Регистрация: 30.10.2024
19.11.2025 18:21:40
Ответьте пожалуйста на мой вопрос
О торговле фьючерсами и ГО
Пользователь
Сообщений: Регистрация: 30.10.2024
18.11.2025 14:37:58
Цитата
Ziveleos написал: Если денег хватает, то можно и сразу перевернуть, а если нет, то в два шага.Почитайте про кнопочку "R", она тупо выставляет заявку, приводящую к перевороту позиции (-6), не дожидаясь, пока позиция закроется и ГО вернется.
Для закреплления материала. Если у меня позиция, скажем, +3 и я продаю сразу 5 фьючерсов, то у меня заморозятся деньги в размере только 2-х ГО, потому что 3 проданных фьючерса пойдут на закрытие 3-х купленных фьючерсов (за которые я уже заплатил три ГО) и, соответственно, на закрытие позиции, и ещё 2 фьючерса — на открытие короткой позиции –2 . Я прав?
То есть переворот позиции лучше осуществлять в 2 шага 1) закрытие текущей позиции 2) открытие противоположной позиции так?
О торговле фьючерсами и ГО
Пользователь
Сообщений: Регистрация: 30.10.2024
18.11.2025 00:47:01
Цитата
Ziveleos написал: , когда Вы закрыли позицию +3, ГО вернулось, и Вы смогли использовать эти деньги на ГО под -3. А если сразу открывать -6, когда ГО еще не вернулось, депозита может не хватить. Заявка - это ещё не сделка.
Почему требования по деньгам в двух случаях, когда
сразу продаю 6 фьючерсов
два раза продаю по 3 фьючерса
О торговле фьючерсами и ГО
Пользователь
Сообщений: Регистрация: 30.10.2024
17.11.2025 18:37:25
Цитата
nikolz написал: Если Вы продаете то что уже купили то платите лишь комиссию Если Вы покупаете то что уже продали то аналогично
Раньше я тогровал через QUIK, и я cталкивался с такой ситуацией, когда у меня, скажем, позиция +3, и я хотел перевернуться (нажимал кнопку "R" в стакане), и QUIK не позволял мне это сделать, выдавая окно с ошибкой, где говорилось, что мне не хватает денежных средств для переворота. Однако, когда я разбивал переворот на 2 последовательные операции (сначала закрывал текущую позицию кнопкой "C", а потом открывал пртивоположную позицию такого же объёма), то никакого сообщения об ошибке не было, а я успешно "переворачился" до позиции -3.
Почему так? Ведь если для продажи трёх уже купленных фьючерсов никакие деньги не замораживаются, а наоборот размораживается, то эти два способа должны быть эквивалентными, однако я не мог просто "перевернуться" нажатием кнопки "R".
написал: Допустим, я купил 2 фьючерса с ГО = 10 000 руб. Для их покупки у меня должно быть свободно минимум 2 * 10 000 руб = 20 000 руб, которые будут заморожены при покупке. Спустся время я хочу закрыть позицию. Для этого мне надо продать два фьючерса. И для этого у меня так же должны быть свободны 20 000 руб или нет? Получается, чтобы торговать фьючерсом с плечом Х, мне надо иметь 2 * Х * ГО руб свободных денег? Я прав? Или я где-то что-то недопонимаю?
Прикольно, Вы хотите платить и когда покупаете что-то и когда продаете что-то? --------------------------- Может лучше начать с чтения учебников, а не с реальной торговли?
А можно без ёрничания? Я в своих размышлениях отталкивался от того, что для любой торговой операции замораживаться часть денег в виде ГО.
О торговле фьючерсами и ГО
Пользователь
Сообщений: Регистрация: 30.10.2024
17.11.2025 16:55:54
Допустим, я купил 2 фьючерса с ГО = 10 000 руб. Для их покупки у меня должно быть свободно минимум 2 * 10 000 руб = 20 000 руб, которые будут заморожены при покупке. Спустся время я хочу закрыть позицию. Для этого мне надо продать два фьючерса. И для этого у меня так же должны быть свободны 20 000 руб или нет? Получается, чтобы торговать фьючерсом с плечом Х, мне надо иметь 2 * Х * ГО руб свободных денег? Я прав? Или я где-то что-то недопонимаю?
Торговый счёт и код клиента
Пользователь
Сообщений: Регистрация: 30.10.2024
13.11.2025 20:24:52
Объясните пожалуйста простым языком, что такое торговый счёт и что такое код клиента, и почему они разные при торговле разными инструментами?
Какие таблицы QUIK автоматически очищаются после окончания торгового дня или после клиринга?
Пользователь
Сообщений: Регистрация: 30.10.2024
11.11.2025 14:54:39
Цитата
Dmitry Mishin написал: , Если стоп-заявка GTC к концу торгового дня не исполняется и остаётся активной, на следующий день она будет получена с сервера и отобразится в соответствующей таблице.
Ну хоть стоп-ордера не пропадают. Спасибо.
Какие таблицы QUIK автоматически очищаются после окончания торгового дня или после клиринга?
Система QUIK - интрадейная, и все данные, полученные с сервера, обнуляются при старте нового торгового дня.
Исключением являются таблицы "Таблица истории", "Таблица изменений значений параметров", и графики. За сохранение данных из этих окон отвечает настройка "Основные настройки..." - "Программа" - "Сохранение данных" - "Сохранять для получаемых инструментов и параметров" - "Данные, отражающие текущее состояние и всю историю изменений". При включении этой настройки информация, отображаемая в данных окнах, при смене дня очищаться не будет.
А как быть с таблицей стоп-ордеров? Она тоже очищается с наступлением нового торгового дня? Даже когда я создал стоп-ордер "до отмены" (GTC)? Ведь если таблица пустая, как тогда я узнаю параметры установленного мной стоп-ордера на следующий день? Ведь я даже не буду знать есть ли стоп-ордер, активен ли он или уже по-тихому исполнится и соответственно исчез. И я ни о том, ни о другом не буду знать, если таблица "stop_orders" пустая.
Какие таблицы QUIK автоматически очищаются после окончания торгового дня или после клиринга?
Пользователь
Сообщений: Регистрация: 30.10.2024
09.11.2025 14:55:46
Какие таблицы QUIK автоматически очищаются после окончания торгового дня или после клиринга?
Например, таблица trades очищается. И если ты не успел сохранить какие-то данные в файле, то из таблицы ты уже ничего не получишь.
Какие ещё таблицы самоочищаются?
Что возвращает getScriptPath()
Пользователь
Сообщений: Регистрация: 30.10.2024
30.10.2025 05:52:07
Функция getScriptPath() возвращает путь, по которому находится главный запускаемый скрипт. А если эта функция будет вызвана в модуле, который затем импортируется (require) в главный скрипт, или в другой модуль, который в свою очередь импортируется (require) в главный скрипт, то значение этой функции всегда будет одним и тем же? Это всегда путь главного скрипта?
varmargin vs real_varmargin vs total_varmargin
Пользователь
Сообщений: Регистрация: 30.10.2024
30.10.2025 05:28:32
Цитата
Izotova Liliya написал: , здравствуйте. Если вам необходима вариационная маржа по конкретной позиции, то можете использовать параметр "varmargin". Для получения суммарного значения вариационной маржи по всем позициям используйте параметр "total_varmargin".
а real_margin тогда что такое?
varmargin vs real_varmargin vs total_varmargin
Пользователь
Сообщений: Регистрация: 30.10.2024
27.10.2025 23:58:41
Цитата
Izotova Liliya написал: , здравствуйте. varmargin - вариационная маржа, рассчитанная с учетом установленных границ изменения цены; real_varmargin - реально начисленная в ходе клиринга вариационная маржа. Отображается с точностью до 2 двух знаков; total_varmargin - суммарная вариационная маржа по итогам основного клиринга, начисленная по всем позициям. Отображается с точностью до 2 двух знаков.
Можно поподробнее пожалуйста. Не вижу разницы. Просто скажите, какое поле таблицы мне запрашивать, чтобы узнать конкретную прибыль/убыток по конкретному фьючерсу. Спасибо.
varmargin vs real_varmargin vs total_varmargin
Пользователь
Сообщений: Регистрация: 30.10.2024
17.10.2025 10:36:52
varmargin vs real_varmargin vs total_varmargin В чём отличия этих полей в твблице getFuturesHolding ?
Я думаю, регистрировать коллбек, который будет вызываться при на каждом чихе (при любом измнении таблицы, например, при изменении вариационной маржи, которая изменяется постоянно) -- это не совсем правильно. Я думаю, вручную вызвать метод getFuturesLimit в тот момент, когда я закрываю позицию (выхожу из рынка), чтобы посмотреть, сколько я заработал, сравнив полученные деньги с предыдущим знанчением.
Спасибо Т.е. вызов должен быть такой? (добавил проверку на nil, если произошла ошибка при вызове функции)
Код
function get_money()
local t = getFuturesLimit( firmid, account, 0, "" )
return t and ( t.cbplused + t.cbplplanned + t.varmargin + t.accruedint - t.ts_comission )
-- ну или ...
-- return t and ( t.cbplimit + t.varmargin + t.accruedint - t.ts_comission )
end
Цитата
Если необходимо получить информацию по фьючерсному лимиту без валюты, то в качестве curr_code задается пустая строка.
Что за фьючерсный лимит без валюты? Я же торгую и фьючами с валютной привязкой, например индекс RTS и чисто рублёвыми фьячами, например, индекс МосБиржи.
Сколько у меня денег в данный момент времени?
Пользователь
Сообщений: Регистрация: 30.10.2024
15.10.2025 03:59:23
Сколько у меня всего денег в данный момент времени (на срочном рынке)?
local t = getFuturesLimit( ... )
return t.cbplused + t.cbplplanned + t.varmargin + t.accruedint - t.ts_comission
Я прав? Или нет?
И какие параметры у функции getFuturesLimit()
firmid - ID брокера (понятно)
trdaccid - торговый счёт / аккаунт (понятно)
limit_type - непонятно
currcode - непонятно
Объясните пожалуйста
Рыночная заявка для торговли фьючерсами
Пользователь
Сообщений: Регистрация: 30.10.2024
05.09.2025 12:22:27
Цитата
Nikolay написал: Вы определитесь уже - хотите исполнения ордера, сдвигаете цену и платите комиссию.
Я определился уже - мне нужна активная покупка, а не пассивное ожидание. Я разрабатываю торговый робот. Поэтому мне надо именно купить/продать, а не ждать у моря погоды. Допустим, мои индикаторы сигналят, что будет рост, а я выставляю цену в спред, в надежде, что цена до неё дойдёт и тогда я куплю без комиссии. Так можно профукать вход в позицию.
написал: На срочной секции нет рыночных ордеров. Можно только устанавливать ордера внутри ценовых границы последнего клиринга. Причина проста - сумма ГО зависит от цены. Поэтому устанавливая ордер далеко от цены клиринга, ГО возрастает и существенно.
И какую цену ставить? Текущая + сколько? (для покупки) Может быть, текущая + (текущая + максимум)/2 ?
Лучшая цена предложения/ спроса.
То есть ты предлагаешь перед подачей заявки сканировать стакан?
Рыночная заявка для торговли фьючерсами
Пользователь
Сообщений: Регистрация: 30.10.2024
29.08.2025 14:05:59
Ой, я немного ошибся. Я хотел предложить (текущая + максимум) / 2 для покупки (текущая + минимум) / 2 для продажи Подойдёт такой вариант?
Рыночная заявка для торговли фьючерсами
Пользователь
Сообщений: Регистрация: 30.10.2024
29.08.2025 14:01:11
Цитата
Nikolay написал: На срочной секции нет рыночных ордеров. Можно только устанавливать ордера внутри ценовых границы последнего клиринга. Причина проста - сумма ГО зависит от цены. Поэтому устанавливая ордер далеко от цены клиринга, ГО возрастает и существенно.
И какую цену ставить? Текущая + сколько? (для покупки) Может быть, текущая + (текущая + максимум)/2 ?
Рыночная заявка для торговли фьючерсами
Пользователь
Сообщений: Регистрация: 30.10.2024
29.08.2025 02:07:51
Цитата
funduk написал: 0 для срочки для рыночной сделки нельзя ставить, на сколько я помню.
А разве квику не должно быть пофиг на выставленную цену, если выставлен type="M"?
Рыночная заявка для торговли фьючерсами
Пользователь
Сообщений: Регистрация: 30.10.2024
28.08.2025 20:05:31
Цитата
funduk написал: Я использую type="M" и завышенную цену одновременно
А может быть можно не париться с завышенной/заниженной ценой? А то ведь не всякую цену можно указать, она должна быть в диапазоне минимуму до максимума, заданных биржей на текущий день.
Рыночная заявка для торговли фьючерсами
Пользователь
Сообщений: Регистрация: 30.10.2024
27.08.2025 18:22:37
Можно ли использовать поля type="M" и price="0" в таблице, которая передаётся в функцию sendTransaction для купли/продажи фьючерсов по рыночной цене? Или надо использовать лимитную заявки (type="L") со специально завышенной ценой для покупки и специально заниженной ценой для продажи?
Технологические времена работы биржи
Пользователь
Сообщений: Регистрация: 30.10.2024
21.07.2025 21:42:42
Цитата
Nikolay написал: Проверять на 0 цены - это плохая затея, т.к. во-первых, есть инструменты с допустимой ценой = 0, а во-вторых, для срочного рынка во время клиринга, для фондовой между сессиями цена может "бегать" от 0 до последней. Собственно в период, когда торги не идут, данные с сервера могут приходить какие угодно. Так что уже лучше время проверять, обеспечив точность своих часов. У меня сделано через несколько проверок, время, статус, сделки. И если один из них не проходит, то данные не считываются, т.к. получить цену 0 как рабочую - это проблема для алгоритмов.
Вы же сами выше написали, что полагаться на время - так себе затея.
Цитата
Времена часто изменяются. Они на сайте биржи в разделе расписание торгов есть. У Валютной секции совсем другие времена, для примера.
Технологические времена работы биржи
Пользователь
Сообщений: Регистрация: 30.10.2024
21.07.2025 08:17:12
Цитата
nikolz написал: Можно сделать еще проще. Если инструмент не торгуется, то его текущая цена равна нулю.
А я думал, что при приостановке торгов цена инстумента просто замирает (не изменяется), а не обнуляется.
Или надо шаманить с параметрами TRADINGSTATE + CLSTATE ?
Порой мне кажется разработчики QUIK забыли сделать пару очевидных колбеков типа OnTradingStart() и OnTradingStop(), которые срабатываюь, когда торговля начинается/возобновляется и когда она приостанавливается, вместо того, чтобы париться с расписанием торгов или вышеупомянутыми параметрами?
Максимальное значение TRANS_ID для транзакций
Пользователь
Сообщений: Регистрация: 30.10.2024
11.07.2025 03:29:33
Если бы TRANS_ID был строкой (скажем с макс. кол-вом символом символов = 255), то туда можно было записать всё, что угодно, без проблем. Даже можно было бы сериализовать небольшую таблицу. Удобно же. Тем более TRANS_ID -- это данные только для пользователя, самой системе на этот параметр наплевать, она его никак не проверяет. Всё равно всё отправляется на сервер в строковом виде (даже числа).
Максимальное значение TRANS_ID для транзакций
Пользователь
Сообщений: Регистрация: 30.10.2024
10.07.2025 22:18:01
Цитата
BlaZed написал: Я шифрую в trans_id время, номер робота и порядковый номер транзакции И значение всегда уникально и увеличивается постоянно в течении сессии
Что вы в нем хранить то собираетесь что вам текущего размера не хватает?
Не подскажете формулу, как вы всё это упаковываете в число?
Я пока только тренируюсь в написании своего первого торгового робота, но уже нопял, что по номеру транзакции надо уметь выявлять, что этот ордер/сделка -- следствие той самой транзакции, чтобы не спутать с ордерами/сделками, инициированными другими скриптами.
Максимальное значение TRANS_ID для транзакций
Пользователь
Сообщений: Регистрация: 30.10.2024
10.07.2025 20:14:08
Где-то прочитал, что TRANS_ID -- уникальный идентификационный номер заявки со значениями от «1» до «2 147 483 647»
То есть получается от 1 до 2^32 - 1. Это когда Квик был ещё 32-битным? Надеюсь сегодня это значение гораздо больше. Поправьте меня, если я не прав.
Явно не из-за этого. В Lua строка - это "immutable sequences of bytes". Т.е. не важно что там. Плюс, начиная с версии 5.3, есть базовая поддержка UTF8
Если использовать Lua вне экосистемы Quik, то прекрасно работают файлы с кодировкой UTF-8. Тот же редактор ZeroBraneStudio работает в UTF-8, и не поддерживает win1251.
Ну вот! Значит нет никаких преград реализовать это в Квике! Пожалуйста, реализуйте полноценную поддержку скриптов в колировке UTF-8 в Квике!
Поддержка UTF-8
Пользователь
Сообщений: Регистрация: 30.10.2024
07.07.2025 02:43:52
Пожалуйста, очень прошу, сделайте полноценную поддержку скриптов в кодировке UTF-8, которые содержат строки и комментарии на русском языке. Надоело постоянно переконвертировать скрипты в Windows-1251 из дефолтной UTF-8, которая уже давно стала мировым стандартом.
Как отлаживать скрипты?
Пользователь
Сообщений: Регистрация: 30.10.2024
18.04.2025 16:26:25
Цитата
funduk написал: QUIK активно противодействует отладке, падая при любом подключённом отладчике.
Я так понял, что лучший вариант из доступных -- это просто писать в лог в нужном месте скрипта.
Как отлаживать скрипты?
Пользователь
Сообщений: Регистрация: 30.10.2024
25.03.2025 14:50:47
Товарищи, подскажите пожалуйста, как в редакторе Visual Studio Code последовательно строчка за строчкой отладить Lua индикаторы/скрипты, запущенные квиком?
Спасибо.
Недостаточно прав для использования модуля "Модуль неторговых поручений"
Пользователь
Сообщений: Регистрация: 30.10.2024
18.03.2025 15:01:48
При запуске QUIK я каждый раз вижу сообщение
Цитата
Недостаточно прав для использования модуля "Модуль неторговых поручений".
Раньше такого не было. Что-то не так? Что нужно сделать, что сообщение больше не появлялось?
Консольный QUIK
Пользователь
Сообщений: Регистрация: 30.10.2024
16.03.2025 14:18:32
Предлагаю разработчикам QUIK создать легковесную версию терминала безо всякого графического интерфейса — просто консольная программа с интегрированной Lua виртуальной машиной для управления скриптами/торговыми роботами.
К примеру,
Код
quikluascript --start <путь к скрипту> # чтобы запустить скрипт
quikluascript --stop <путь к скрипту> # чтобы остановить скрипт
quikluascript --list # чтобы вывести список всех работающих в данный момент скриптов
Зачем нужно запускать тяжеловесный QUIK, ждать 10-15 минут, пока он стартанёт, который при этом жрёт дофига памяти и напрягает процессор, чтобы потом просто запустить скрипт и ничего не делать, держа открытым окно QUIK'a в течение торгового дня?
Индикаторы и торговые роботы для WebQUIK
Пользователь
Сообщений: Регистрация: 30.10.2024
15.03.2025 17:24:29
Можно ли загрузить самописные индикаторы и торговые роботы в WebQUIK и торговать по ним?
Я пользователь Linux.
Как правильно «переворачиваться»?
Пользователь
Сообщений: Регистрация: 30.10.2024
01.03.2025 04:20:51
Допустим, я купил 5 фьючерсов, и мой скрипт сигналит о падении. Надо перевернуться. Для этого надо продать 10 фьючерсов. Как правильно это сделаль?
При торговле вручную в терминале, нажатие на кнопку «Перевернуться» («R») выводит ошибку, но если нажать «Закрыть позицию» («C»), а потом сразу продать по рынку («Sm») 5 фьючерсов, то всё проходит нормально, без ошибок. Почему? Потому что резервируется больше денег, если я хочу совершить сделку с бОльшим объёмом?
В связи с этим вопрос, как правильно (без возможных ошибок) «переворачиваться» в скрипте? 1) отправлять транзакцию на продажу 10 фьючерсов 2) отправлять 2 транзакции на продажу 5 фьючерсов (закрыть лонг и открыть шорт) 3) в цикле от 1 до 10 отправлять по одной транзакции на продажу 1 фьючерса
---------- И ещё один вопрос вдогонку. Раньше был замечательный сайт luaq.ru, а теперь его нет. Жаль. Где можно оперативно получить онлайн-справку по программированию индикаторов и скриптов на Lua в QUIK?----------
Спасибо.
Торговля фьючерсами и опционами в WebQUIK
Пользователь
Сообщений: Регистрация: 30.10.2024
30.11.2024 22:41:50
Удобно ли пользоваться WebQUIK для активной торговли фьючерсами и опционами (особенно фьючерсами) на срочном рынке? Какие индикаторы поддерживаются в версии WebQUIK? Те же, что и в стандартном QUIK? Или их меньше? Я сильно полагаюсь на индикаторы при торговле.
Причина моего рассмотрения WebQUIK -- я на работаю в Linux, и меня совсем не устраивает то, как работают windows-приложения под Wine.
Спасибо.
Сохранение в Excel-файл всех данных из любой таблицы
Пользователь
Сообщений: Регистрация: 30.10.2024
22.11.2024 15:28:46
С LibreOffice Calc всё ещё проще, как оказалось. Не надо создать промежуточный текстовый файл в формате CSV. Просто копируешь данные из квика. Потом открывашь новую таблицу в LibreOffice Calc, жмёшь "Вставить" (Ctrl+V), и умный Сalc понимает, что в буфере обмена многостроковые данные, а не просто одна текстовая строка для вставки в ячейку, и сразу предлагает распарсить содержимое как CSV и вставить данные в таблицу. 👍
Сохранение в Excel-файл всех данных из любой таблицы
Пользователь
Сообщений: Регистрация: 30.10.2024
22.11.2024 15:00:29
Цитата
Ziveleos написал: ПКМ > "Копировать всё" > вставить в "Блокнот" > сохранить как ,csv > открыть в LibreOffice Calc.
Большое спасибо.
Маленькое дополнение от меня. При импорте .CSV в LibreOffice Calc надо задать в качестве разделителя только табуляции (с других возможных разделителей снять галочки) и поставить галочку "Обрезать пробелы". Тогда всё идеально.