13:21:10 07 Feb 2026 Старт. OnStop ................................. 13:21:21 07 Feb 2026 Старт. QTABLE_CLOSE OnStop ................................. 13:24:27 07 Feb 2026 Старт. OnStop
Всё пройдет. Но это не точно.
onstop и колбек пользовательского окна
Пользователь
Сообщений: Регистрация: 22.02.2023
07.02.2026 13:17:14
Цитата
tohoki написал: при закрытии скрипта и при закрытии терминала мы увидим в debugview только QTABLE_CLOSE и не увидим ONSTOP.
Всё с точностью до наоборот.
Всё пройдет. Но это не точно.
onstop и колбек пользовательского окна
Пользователь
Сообщений: Регистрация: 22.02.2023
07.02.2026 12:29:26
Цитата
tohoki написал: как по закрытию окна завершить скрипт, а по завершению работы терминала ничего не делать?
Именно так у меня и происходит. Закрыл окно - скрипт остановился; перезапустил терминал с работающим скриптом - скрипт работает.
Всё пройдет. Но это не точно.
onstop и колбек пользовательского окна
Пользователь
Сообщений: Регистрация: 22.02.2023
07.02.2026 11:09:04
Цитата
tohoki написал: если задать при помощи этой функции окну колбек на закрытие, то он вызывается и при закрытии этого окна мышкой и при закрытии терминала.
Вызывается при закрытии терминала??? У меня так: Колбек окна:
Код
local function event_callback(mw_id, msg, row, col)
if msg == QTABLE_CLOSE then
w_top, w_left, w_bottom, w_right = GetWindowRect(mw_id)
DestroyTable(x2_id)
DestroyTable(mw_id)
OnStop()
end
-- Другие события
end
SetTableNotificationCallback(mw_id, event_callback)
И в OnStop:
Код
function OnStop(c) -- 1-Остановка скрипта, 2-Закрытие QUIK.
if mw_id and c == 1 then
w_top, w_left, w_bottom, w_right = GetWindowRect(mw_id)
DestroyTable(mw_id)
DestroyTable(x2_id)
end
end
Вообще-то есть. Но куда она выводит текст - не понятно.
Похоже, что никуда, а если функция не исполняет свою роль, то это все равно, что её нет. В qlua есть и другие функции - "призраки", например: warn, UpdateRow. Но есть и полезная, но недокументированная getUniqTransID - общий для всех скриптов счетчик.
OnClose - не колбек окна. Функция SetTableNotificationCallback задает колбек для окна.
Всё пройдет. Но это не точно.
Скоростные линии
Пользователь
Сообщений: Регистрация: 22.02.2023
30.01.2026 12:00:51
Цитата
ЭД написал: Что нужно чтобы скоростные линии на графике сами точно привязывались к Max или Min, Open или Close цены?
"Магнит" активирован?
Всё пройдет. Но это не точно.
Рыночная заявка для торговли фьючерсами
Пользователь
Сообщений: Регистрация: 22.02.2023
24.01.2026 00:42:18
Цитата
Сергей Че написал: А поле PRICE надо указывать равным нулю, если в стоп-ордере MARKET_STOP_LIMIT="YES", или цену тоже нет смысла указаывать, потому что она будет проигнорирована?
Все нужные параметры транзакции я уже приводил:
Всё пройдет. Но это не точно.
Рыночная заявка для торговли фьючерсами
Пользователь
Сообщений: Регистрация: 22.02.2023
23.01.2026 22:40:22
Цитата
Сергей Че написал: Ну явно указать CONDITION не помешает.
Указать параметр PLANET = "SATURN" тоже не помешает. Он, как и CONDITION, будет просто проигнорирован. Повторяю: CONDITION - это параметр Таблицы стоп-заявок. В транзакциях он не используется.
Всё пройдет. Но это не точно.
График RTSI дневной по выходным дням, 2 плоские свечи с марта за выходные
Информацию что Вы приведите, не относится к теме вопроса. Речь шла про логику построения графика с интервалом "Недельный".
Неделя начинается с выходных дней.
Всё пройдет. Но это не точно.
График RTSI дневной по выходным дням, 2 плоские свечи с марта за выходные
Пользователь
Сообщений: Регистрация: 22.02.2023
19.01.2026 17:06:14
Цитата
Дополнительная сессия выходного дня (ДСВД) – дополнительная торговая сессия, которая проводится в календарные выходные (нерабочие) дни - субботу и/или воскресенье. ДСВД является частью ближайшего следующего "обычного" торгового дня.
Подробнее на Московской бирже:
Всё пройдет. Но это не точно.
График RTSI дневной по выходным дням, 2 плоские свечи с марта за выходные
Пользователь
Сообщений: Регистрация: 22.02.2023
19.01.2026 16:58:02
Цитата
Alena Mishina написал: Такова текущий реализация, недельный период начинается с воскресенья. Это заложено логикой построения графиков в терминале.
Не совсем так:
Цитата
Торговый день, включающий выходные Вечерняя дополнительная торговая сессия, аукцион открытия (АО) + дополнительная сессия выходного дня, аукцион открытия (АО) + утренняя дополнительная торговая сессия, основная торговая сессия составляет один торговый день.
Подробнее на Московской бирже:
Всё пройдет. Но это не точно.
Статусы торгов срочной секции MOEX, TRADINGPHASE, ANONTRADE, CLSTATE и т.п.
Пользователь
Сообщений: Регистрация: 22.02.2023
19.01.2026 06:31:44
Вот здесь есть лог, в нем значения "TRADINGPHASE", "CLSTATE", "STATUS", "TRADINGSTATUS"
Не список конечно, но разобраться можно.
Всё пройдет. Но это не точно.
Рыночная заявка для торговли фьючерсами
Пользователь
Сообщений: Регистрация: 22.02.2023
17.01.2026 21:15:04
Цитата
Сергей Че написал: OPERATION = 'B'|'S' недостаточно, чтобы задать, как должен работать стоп.
Достаточно.
Всё пройдет. Но это не точно.
Перестали открываться окна графиков при перезапуске терминала и открываются закрытые.
Пользователь
Сообщений: Регистрация: 22.02.2023
17.01.2026 20:20:32
Цитата
Сохранение конфигурации экрана
Система QUIK может автоматически запоминать конфигурацию экрана, включая расположение окон и их настройки при каждом завершении работы с программой. Данное свойство активизируется через пункт меню Система/Настройки/Основные настройки..., раздел «Программа» / «Файлы настроек», установить флажок «Сохранять настройки в файл при выходе». В поле «Использовать файл настроек» указан файл по умолчанию, при необходимости его можно поменять на другой.
Всё пройдет. Но это не точно.
Рыночная заявка для торговли фьючерсами
Пользователь
Сообщений: Регистрация: 22.02.2023
17.01.2026 19:24:23
Цитата
Сергей Че написал:А какая направленность стоп-цены (CONDITION) в данном случае? CONDITION="4" (<=) или CONDITION="5" (>=) ? И почему она тут не указана? Разве это поле можно опустить? Я так понимаю, направленность стоп-цены -- это какое должно быть отношение рыночной цены к стоп-цене для того, чтобы стоп сработал. То есть, если я закрываю лонг, то я продаю, когда рыночная цена станет меньше или равной (<=) (CONDITION="4") стоп-цены. А если я закрываю шорт, то я покупаю, когда рыночная цена станет больше или равной (>=) (CONDITION="5") стоп-цены. Всё верно?
Направленность определяется параметром OPERATION. CONDITION - это параметр Таблицы стоп-заявок.
Всё пройдет. Но это не точно.
Рыночная заявка для торговли фьючерсами
Пользователь
Сообщений: Регистрация: 22.02.2023
17.01.2026 19:06:55
Цитата
Сергей Че написал: Это будет работать у всех брокеров, работающих на бирже через QUIK?
В транзакции использован фиксированный формат, который, в отличие от "универсального", одинаков у всех брокеров. Но лучше задать этот вопрос поддержке квика. За серверы всех брокеров я ручаться не берусь.
Почти всё верно. PRICE - это цена выставляемой лимитки, если MARKET_STOP_LIMIT = "NO", параметра PRICE2 не существует.
Вот проверенный вариант:
Код
local newStop = {
ACTION = "NEW_STOP_ORDER",
STOP_ORDER_KIND = "TAKE_PROFIT_AND_STOP_LIMIT_ORDER",
OPERATION = "B", -- B/S
QUANTITY = "10", -- Количество лотов
STOPPRICE2 = "71500", -- Цена стопа
MARKET_STOP_LIMIT = "YES",
ACCOUNT = account,
CLASSCODE = class,
SECCODE = sec_code,
TRANS_ID = "123456",
EXPIRY_DATE = "GTC" -- Срок действия "до отмены"
}
local res = sendTransaction(newStop)
Всё пройдет. Но это не точно.
Рыночная заявка для торговли фьючерсами
Пользователь
Сообщений: Регистрация: 22.02.2023
15.01.2026 22:29:47
Цитата
Йцукен написал: В отсутствии встречных заявок рыночная заявка будет отклонена
На срочном нет рыночных, есть "псевдо" рыночные.
Всё пройдет. Но это не точно.
Рыночная заявка для торговли фьючерсами
Пользователь
Сообщений: Регистрация: 22.02.2023
15.01.2026 22:26:04
Именно так у меня в скрипте и сделано. На срочном выставляется "TAKE_PROFIT_AND_STOP_LIMIT_ORDER". На фондовом, для инструментов которые нельзя шортить - "ACTIVATED_BY_ORDER_TAKE_PROFIT_AND_STOP_LIMIT_ORDER".
Всё пройдет. Но это не точно.
Рыночная заявка для торговли фьючерсами
Пользователь
Сообщений: Регистрация: 22.02.2023
15.01.2026 21:51:16
Цитата
Сергей Че написал: Я искал не в том документе. Я искал в "Интерпретатор языка Lua", а надо было в "Руководство пользователя QUIK".
Искал-то правильно, это документация у них "своеобразная".
Цитата
Сергей Че написал: Вопрос. Это действует для любого рынка: фондового и срочного?
Для любого.
Всё пройдет. Но это не точно.
Рыночная заявка для торговли фьючерсами
Пользователь
Сообщений: Регистрация: 22.02.2023
15.01.2026 20:34:53
Ну, такая у артели "Арка" документация... Узнать можно нажав F1 > Раздел 6. Совместная работа с другими приложениями > Импорт транзакций > Фиксированный формат файла импорта транзакций > Формат .tri-файла с параметрами транзакций.
Или сохранить нужный Вам стоп-лосс в "Кармане транзакций", и воспользоваться этим:
Всё пройдет. Но это не точно.
Рыночная заявка для торговли фьючерсами
Пользователь
Сообщений: Регистрация: 22.02.2023
15.01.2026 19:52:00
Вот она:
Всё пройдет. Но это не точно.
OnTransReply и номера заявок
Пользователь
Сообщений: Регистрация: 22.02.2023
15.01.2026 17:36:39
В папке квика файл "qlua.chm", "Структуры данных"
Всё пройдет. Но это не точно.
Рыночная заявка для торговли фьючерсами
Пользователь
Сообщений: Регистрация: 22.02.2023
15.01.2026 17:15:13
Цитата
Сергей Че написал: Как же неудобно, когда для срочного рынка нет простого и понятного type="M" + price="0", как оно есть для фондового! Приходится изобретать всякие костыли.
Повторю ещё раз: MARKET_STOP_LIMIT = "YES" и позиция закроется по рынку.
Всё пройдет. Но это не точно.
Учет всех прошлых сделок совершенных в терминале Quik
Пользователь
Сообщений: Регистрация: 22.02.2023
14.01.2026 23:17:04
vvkka, "History.txt" появляется в папке "DealRecord" после первой остановки скрипта.
Всё пройдет. Но это не точно.
Рыночная заявка для торговли фьючерсами
Пользователь
Сообщений: Регистрация: 22.02.2023
14.01.2026 19:31:28
Цитата
Сергей Че написал: огда зачем ты указываешь цену, по которой выставится лимитная заявка (PRICE)?
Скрипт может выставлять стоп закрывающий по рынку, или с заданным отступом.
Поэтому PRICE либо указывается, либо ноль, а таблица для sendTransaction одна, универсальная, и для срочного и для фондового рынка.
Всё пройдет. Но это не точно.
Рыночная заявка для торговли фьючерсами
Пользователь
Сообщений: Регистрация: 22.02.2023
14.01.2026 18:33:40
Поправка
Код
MARKET_STOP_LIMIT = "YES"
Всё пройдет. Но это не точно.
Рыночная заявка для торговли фьючерсами
Пользователь
Сообщений: Регистрация: 22.02.2023
14.01.2026 18:29:31
Цитата
Сергей Че написал: Нельзя задать стоп-ордеру "короче, сам закройся по рынку, когда цена достигнет уровня"
У меня именно так и работает.
Код
MARKET_TAKE_PROFIT = "YES"
PRICE = 0
Всё пройдет. Но это не точно.
Рыночная заявка для торговли фьючерсами
Пользователь
Сообщений: Регистрация: 22.02.2023
14.01.2026 18:02:27
Цитата
Сергей Че написал: Если я ставлю стоп-ордер на закрытие позиции
Если нужен стоп-ордер, почему бы не выставить именно стоп, а не закрывать позицию лимитной? У меня в "автостопе" сделано так:
Много что не так. На всидку: кодировка должна быть 1251; в qlua нет функции print; if предполагает then, тут Вам не пайтон; и т.д. И ещё, скрипт желательно выкладывать в виде кода, иначе он трудно читается.
Всё пройдет. Но это не точно.
О торговле фьючерсами и ГО
Пользователь
Сообщений: Регистрация: 22.02.2023
21.11.2025 11:35:47
Цитата
Сергей Че написал: Почему ГО для покупки и ГО для продажи различаются?
Принципы расчета ГО:
Всё пройдет. Но это не точно.
О торговле фьючерсами и ГО
Пользователь
Сообщений: Регистрация: 22.02.2023
20.11.2025 01:24:04
Цитата
Ziveleos написал: НКЦ является центральным контрагентом во всех безадресных сделках и страхует риски неисполнения контракта
Всё пройдет. Но это не точно.
О торговле фьючерсами и ГО
Пользователь
Сообщений: Регистрация: 22.02.2023
20.11.2025 01:15:33
Цитата
funduk написал: Когда я выставляю заявки в обе стороны по одному инструменту, у меня блокируется не сумма ГО покупателя и ГО продавца, а только ГО продавца (как бОльшее из двух).
Так и должно быть. Одна заявка открывает позицию, другая закрывает. Не может быть встречных позиций по одному и тому же инструменту.
Цитата
funduk написал: Это в целом вопрос к брокеру, а не к квику.
Скорее, к бирже (точнее к НКЦ), поскольку именно НКЦ является центральным контрагентом во всех безадресных сделках и страхует риски неисполнения контракта.
Всё верно. В этом примере на депозите должно хватать свободных средств на ГО под два контракта на продажу. По-хорошему, кнопочка "R" должна была бы проверять депозит, и если денег достаточно, делать переворот одной заявкой, а если нет - то в два шага. Но это QUIK.
Всё пройдет. Но это не точно.
О торговле фьючерсами и ГО
Пользователь
Сообщений: Регистрация: 22.02.2023
18.11.2025 01:37:35
Если денег хватает, то можно и сразу перевернуть, а если нет, то в два шага.Почитайте про кнопочку "R", она тупо выставляет заявку, приводящую к перевороту позиции (-6), не дожидаясь, пока позиция закроется и ГО вернется.
Всё пройдет. Но это не точно.
О торговле фьючерсами и ГО
Пользователь
Сообщений: Регистрация: 22.02.2023
18.11.2025 01:05:01
Под -6.
Всё пройдет. Но это не точно.
О торговле фьючерсами и ГО
Пользователь
Сообщений: Регистрация: 22.02.2023
18.11.2025 01:03:39
Заявка - это ещё не сделка. Пока позиция +3 ещё не закрыта, деньги под ГО остаются заблокированы, задействовать их под +6 нельзя.
Всё пройдет. Но это не точно.
О торговле фьючерсами и ГО
Пользователь
Сообщений: Регистрация: 22.02.2023
18.11.2025 00:09:01
Сергей Че, когда Вы закрыли позицию +3, ГО вернулось, и Вы смогли использовать эти деньги на ГО под -3. А если сразу открывать -6, когда ГО еще не вернулось, депозита может не хватить. Заявка - это ещё не сделка.
Всё пройдет. Но это не точно.
Установка отметок на графике через скрипт
Пользователь
Сообщений: Регистрация: 22.02.2023
12.11.2025 22:27:47
Цитата
gngngn написал: у меня скорей всего что то с самим терминалом
Похоже, что так. Попробовал Ваш скрипт, всё работает. Версия 10.1.2.2
Скрытый текст
Код
function labeldraw(price, textlabel, texthint)
label_params = {
TEXT = textlabel,
ALIGNMENT = "LEFT",
DATE = tostring(os.date("%Y%m%d")),
TIME = tostring(os.date("%H%M%S")),
R = 250,
G = 200,
B = 0,
TRANSPARENCY = 90,
FONT_HEIGHT = 12,
TRANSPARENT_BACKGROUND = 1,
YVALUE = price,
HINT = texthint
}
label_id_text = AddLabel(tiker_id, label_params)
end
function main()
tiker_id = "SBER_ID"
price, _, _ = getCandlesByIndex(tiker_id, 0, getNumCandles(tiker_id)-1, 1)
sleep(300)
text = "ppppp "..price[0].close
labeldraw(price[0].close, text, "eeeeee")
PrintVar(price[0].close,label_id_text)
end
--============================================================
function PrintVar(...)
local lin = ""
for i, v in ipairs {...} do
lin = (lin ..(tostring(v)).." ")
end
Print(lin)
end
function Print(v)
PrintDbgStr(tostring(v))
end
Всё пройдет. Но это не точно.
Как экономить на интернет трафике в системе Квик
Пользователь
Сообщений: Регистрация: 22.02.2023
04.11.2025 01:27:29
Цитата
Алкотрейдер написал: как значительно снизить потребляемый трафик
Трафик с аппетитом кушают таблицы «Текущие торги», и особенно - стаканы.Глубину стаканов можно ограничить в настройках Система > Настройки > Параметры инструментов.
Всё пройдет. Но это не точно.
Определение направления заявки
Пользователь
Сообщений: Регистрация: 22.02.2023
04.11.2025 00:54:40
Цитата
Димч написал: если вывести результат выполнения в message(bit.band(order.flags, 0x4))
bit.band возвращает тип NUMBER, а message числа не понимает.
Всё пройдет. Но это не точно.
Определение направления заявки
Пользователь
Сообщений: Регистрация: 22.02.2023
04.11.2025 00:22:06
Поправка: возвращает nil, если не найдено.
Всё пройдет. Но это не точно.
Определение направления заявки
Пользователь
Сообщений: Регистрация: 22.02.2023
03.11.2025 23:54:42
Чем Вас SearchItems не устраивает?
Код
function ActiveLimitOrderExists(price, operation_flag) -- если operation_flag = 1, то продажа
local cond = operation_flag == 1 and 5 or 1
local function Fn1(prc, flg, clss, sec)
return prc == price and flg & 5 == cond and sec == SEC_CODE and clss == CLASS_CODE
end
return SearchItems("orders", 0, getNumberOf("orders")-1, Fn1, "price,flags,class_code,sec_code")
end
Возвращает таблицу с индексом (индексами) подходящих заявок, или пустую, если таковых не найдено.
Всё пройдет. Но это не точно.
Автозапуск скрипта LUA при старте QUIK
Пользователь
Сообщений: Регистрация: 22.02.2023
03.11.2025 19:47:37
Цитата
Alexander написал: Ну так почему терминал не меняет его состояние на остановенное и перезапускает при новом запуске терминала?
Дело в том, что состояние скрипта сохраняется в scripts.dat до того, как скрипт завершит работу. Поэтому для квика его статус - "запущен". Вот данные Process Monitor:
19:30:56.216119 - OnClose 19:30:56.618115 - OnStop QUIK закрыт 19:30:56.738114 - Выход из main
И, собственно, сам скрипт:
Скрытый текст
Код
function OnInit(scr_path)
is_run = true
file = io.open(scr_path:sub(1,-4).."log", "a+")
end
function OnStop(flg)
if flg == 1 then
ToLog("OnStop Скрипт остановлен")
else
ToLog("OnStop QUIK закрыт")
end
is_run = false
return 3000
end
function OnClose()
ToLog("OnClose")
is_run = false
end
----------------------------------
function ToLog(msg)
local t = os.sysdate()
file:write(string.format("%02d:%02d:%02d.%06d - ", t.hour,t.min,t.sec,t.mcs),msg,"\n")
end
function main()
while is_run do
sleep(30)
end
sleep(500) -- Имитация завершения работы
ToLog("Выход из main\n -------------")
file:flush()
file:close()
end
Попутно выяснилось, что Process Monitor и QUIK живут по разным часам. Не может же в самом деле скрипт записывать лог в уже закрытый файл.
Всё пройдет. Но это не точно.
Учет всех прошлых сделок совершенных в терминале Quik
Пользователь
Сообщений: Регистрация: 22.02.2023
23.08.2025 05:38:42
Цитата
pilot написал: Вбивать вручную параметры всех сделок в Excel