И получаю ошибку "Вам запрещена работа по данному торговому счету"
При этом если я делаю эту транзакцию в Квике руками - она выполняется. Когда я запрашиваю в скрипте информацию по состоянию депо - информация выдается.
Вопрос: где ломается?
У брокера? На сервере Квик У меня? (не тот счёт указал)
Такое сообщение может появляться из-за ошибки в параметрах счета т е вы пытаетесь сделать заявку по чужому счету Система вам об этом и говорит. ищите ошибку
Робот, торгующий опционами
Пользователь
Сообщений: Регистрация: 30.01.2015
18.07.2026 14:04:45
Цитата
Сергей Че написал: Переформулирую вопрос. Может ли вечный фьючерс быть базовым активом для опциона? Или только обычный фьючерс может быть таковым? Думаю, что вечный фьючерс не может, потому что у него экспирация каждый день, а производный инструмент (опцион) не может жить дольше, чем базовый актив.
Алиса отвечает: Нет, классических опционов (на право купить или продать вечный фьючерс) по вечным фьючерсам не существует. Дело в самой природе этих инструментов. Опцион — это контракт, который даёт право (но не обязательство) совершить сделку. У него есть чётко определённый срок действия — дата экспирации. А у вечного фьючерса этой даты просто нет: он ежедневно автоматически продлевается. Из-за этого фундаментального различия — у вечного фьючерса нет срока жизни — и инструменты на его основе (включая опционы) не создаются. При этом важно не запутаться: иногда в разговоре люди смешивают понятия. На Московской бирже действительно торгуются вечные фьючерсы (например, USDRUBF, IMOEXF, GLDRUBF), и для них есть опционы — но это опционы на обычные (срочные) фьючерсы, а не на сам вечный контракт. То есть вы покупаете опцион на ближайший стандартный фьючерс с конкретной датой экспирации, а не на вечный.
‘Вы уже работаете в системе’ + ‘Соединение установить не удалось’, Проблема с соединением
Пользователь
Сообщений: Регистрация: 30.01.2015
14.07.2026 13:17:40
Цитата
Игорь С написал: Брокер рекомендовал менять в настройках параметр check-tmo. При значениях 120 и 600 результат одинаковый. После разрыва соединения или вообще снятия Quik потом ситуация повторяется. Странно, что через некоторое время (несколько минут) эти сообщения пропадают.
Потому что, через несколько минут сервер проверяет соединение реально и обнаруживает, что соединение разорвано. И соединяется с Вами. ----------------------------- Это такая фишка у разработчиков, чтобы клиентам не было скучно.
‘Вы уже работаете в системе’ + ‘Соединение установить не удалось’, Проблема с соединением
Пользователь
Сообщений: Регистрация: 30.01.2015
09.07.2026 13:45:41
Этот прикол легко тестируется. Просто разорвите соединение и сразу попытайтесь его установить. Получите такие сообщения, пока не пройдет этот тайм аут.
‘Вы уже работаете в системе’ + ‘Соединение установить не удалось’, Проблема с соединением
Пользователь
Сообщений: Регистрация: 30.01.2015
09.07.2026 13:42:24
Цитата
Игорь С написал: Периодически возникает (и через несколько, иногда много, минут пропадает) следующая ситуация: Каждые 10 сек выдается пара сообщений подряд: Вы уже работаете в системе Соединение установить не удалось Сразу отмечу, это не тот случай, когда на двух компах запущен QUIK – только на одном.
Это означает что соединение терминала QUIK с сервером QUIK потеряно, но сервер QUIK это не замечает. Очевидно у него какой-то тайм аут на обработку потери соединения. --------------------------------- Терминал пытается восстановить автоматически соединение так как у него усатновлен режим восстановление соединения автоматически. ------------------------ Сервер посылает это сообщение о том, что уже работаете. ------------------------------ Через некоторое время сервер проверяет соединение и обнаруживает что Вас уже давно нет и восстанавливает соединение. ----------------------- Полагаю, что это системная ошибка разработчиков, так как это поведение сервера QUIK не зависит от брокера.
Фреймворк B_Q создания торговых роботов для QUIK (с возможностью использования AI-агентов биржевой торговли), в названии
Пользователь
Сообщений: Регистрация: 30.01.2015
08.07.2026 16:43:10
Цитата
TGB написал: Что касается галлюцинаций ИИ, то, наверное, у всех людей есть такая же особенность, особенно в сферах, далеких от практики их жизни. Все могут ошибаться, включая ИИ.
Первую свою прогу на основе нейросетей для реальной задачи диагностики написал еще в прошлом веке. -------------------------- Работая сейчас с ИИ пришел к такому выводу. --------------------------- Уровень решения задачи ИИ соответствует уровню понимания задачи того, кто дает задание. ------------------------- Полагаю, что те кто сейчас кодит, закончив ускоренные курсы, продолжат кодить, но с помощью ИИ, в несколько раз быстрее, больше и возможно с лучшим качеством
Фреймворк B_Q создания торговых роботов для QUIK (с возможностью использования AI-агентов биржевой торговли), в названии
Пользователь
Сообщений: Регистрация: 30.01.2015
08.07.2026 06:03:45
Современные исследования показывают, что эффективность AI-агентов в трейдинге — это сложный и неоднозначный вопрос.
У них есть значительный потенциал, особенно в аналитике,
но на данный момент они не являются "волшебной кнопкой" для гарантированной прибыли.
💡 Потенциал AI-агентов
Основная сила AI-агентов заключается не в предсказании будущего,
а в обработке и синтезе огромных массивов информации для принятия более взвешенных решений.
Анализ разнородных данных: AI способен одновременно анализировать новости, финансовые отчеты, настроения в соцсетях и технические индикаторы, что недоступно традиционным алгоритмам.
Улучшение управления рисками: Некоторые системы показывают улучшение коэффициентов Шарпа (показателя доходности с поправкой на риск), помогая принимать более эффективные решения.
📊 Объективная картина: что говорят исследования
Данные независимых бенчмарков дают более трезвую оценку текущих возможностей AI в трейдинге:
Сложность превзойти простые стратегии: Согласно бенчмарку StockBench, большинство AI-агентов не могут стабильно превзойти простую стратегию "купи и держи" (buy-and-hold). Это означает, что их способность генерировать "альфу" (прибыль выше рыночной) пока ограничена.
Проблема запоминания данных: Исследования показывают, что успех AI на исторических данных часто объясняется тем, что модель запомнила информацию о ценах из своего обучающего набора, а не проявила настоящие аналитические способности. На новых данных их эффективность падает.
Сложности в долгосрочной перспективе: Агенты часто ведут себя неоптимально в разных рыночных режимах: они могут быть излишне консервативны на "бычьих" рынках и слишком агрессивны на "медвежьих", что приводит к убыткам.
Отсутствие истинной адаптации: При столкновении с новыми или "враждебными" рыночными условиями многие AI-агенты демонстрируют негибкость и неспособность адаптироваться, следуя фиксированным шаблонам.
🚀 Ключевые архитектуры AI-агентов
Для решения этих задач разрабатываются различные архитектуры, которые можно разделить на несколько подходов:
Подход
Описание
Примеры
Многолетние системы (Multi-Agent Systems)
Имитируют работу трейдинговой фирмы: разные агенты выполняют роли аналитиков, трейдеров и риск-менеджеров, обмениваясь информацией для принятия решения.
TradingAgents
Эмуляция стратегий экспертов
Моделируется стиль известных инвесторов (например, Уоррена Баффета) с помощью специальных инструкций (промптов).
GuruAgents
Агенты для криптовалют
Используют уникальные данные, такие как on-chain метрики и настроения из Reddit, для торговли на волатильных рынках.
—
💎 Итог
На сегодняшний день AI-агенты — это мощные помощники для аналитики и обработки информации, но не самостоятельные и надежные трейдеры, способные гарантировать прибыль.
Эксперты и регуляторы сходятся во мнении, что на данном этапе их использование требует осторожности и человеческого контроля.
Фреймворк B_Q создания торговых роботов для QUIK (с возможностью использования AI-агентов биржевой торговли), в названии
У меня есть подозрение (которые не могу доказательно подтвердить), что ожидания высокой доходности AI-агентов могут оказаться завышенными. Поэтому нельзя списывать в "утиль" возможности разработки роботов в ручную, существующие в фреймворке.
Ваши подозрения верны. И это уже доказано.
Фреймворк B_Q создания торговых роботов для QUIK (с возможностью использования AI-агентов биржевой торговли), в названии
Пользователь
Сообщений: Регистрация: 30.01.2015
07.07.2026 12:52:01
Lumibot теперь включает в себя встроенную среду выполнения ИИ-агентов для финансовых исследований, рассуждений, дискуссий, анализа рисков и совершения сделок. Агенты могут анализировать рыночные данные, читать биржевые сводки, запрашивать индикаторы, искать в памяти, сравнивать макроконтекст и отправлять ордера через тот же стратегический цикл Lumibot, который используется для обычного тестирования на исторических данных и реальной торговли.
Классические стратегии на Python по-прежнему на высоте. Lumibot позволяет выбрать подходящий уровень интеллекта: фиксированные правила, ИИ-агенты или гибридный подход, при котором Python отвечает за жесткие ограничения, а агенты анализируют доказательства.
Встроенные инструменты ИИ-агента включают в себя отслеживание состояния рынка/счета, проверку ордеров, запросы к DuckDB, поиск документации, новости Alpaca при наличии учетных данных, технические индикаторы, фундаментальные показатели и отчеты Комиссии по ценным бумагам и биржам США, макроданные FRED, локальную память и уведомления в Telegram.
Фреймворк B_Q создания торговых роботов для QUIK (с возможностью использования AI-агентов биржевой торговли), в названии
Пользователь
Сообщений: Регистрация: 30.01.2015
07.07.2026 12:46:56
Lumibot — это Python-фреймворк от компании Lumiwealth. ------------------------- Он позволяет создавать торговые стратегии, бэктестировать их на исторических данных, а затем запускать в режиме бумажной или живой торговли через реальных брокеров (например, Alpaca, Interactive Brokers). --------------------- Ключевая фишка: один и тот же код работает и для бэктеста, и для реальной торговли. ------------------------ В Lumibot также есть встроенная среда для AI-агентов: они могут анализировать рыночные данные, читать отчёты (например, SEC), работать с макроданными (FRED), вызывать внешние инструменты и принимать торговые решения. ------------------------ Можно строить гибридные системы, где часть логики написана на Python, а часть делегирована агентам. -------------------------- Для упрощения развёртывания есть платформа BotSpot: она берёт на себя настройку данных, подключение брокеров, планирование, логирование и мониторинг.
Демо Quik Junior, Нет данных
Пользователь
Сообщений: Регистрация: 30.01.2015
06.07.2026 15:33:44
Цитата
Balu2000 написал: По фьючерсам идут данные только по нескольким инструментам . Как исправить ? Или это так и задумано ?
Демо сервер это не для обучения торговли Это для обучения работы с программой QUIK т е как что выставить и посмотреть или найти ошибки в скрипте.
Что за хрень с с сервером QUIK у Сбербанка?, Вопрос к разработчикам.
Пользователь
Сообщений: Регистрация: 30.01.2015
05.07.2026 16:53:00
Цитата
Ёжик написал: Здравсвуйте! Подскажите пожулуйста, если у меня на компе установлен уже квик ВТБ брокера, то для работы с акциями сбербанка надо скаживать квик с их сайта запускать две программы квик для каждого брокера? или можно работать в одном квике установив ключ сбера и переходить из одного брокера в другой?
для работы с любыми акциями нужен лишь квик того брокера с кем у вас договор. ------------------------ Т е Вы берете квик брокера, которому платите за обслуживание. -------------------------- Нет особого смысла платить сразу нескольким. ---------------------- Обычно так получается, когда начинающий сидит у одного брокера в ж... , то открывает счет у другого , чтобы и там туда же залесть. =================== Но зеркало не виновато...
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
Пользователь
Сообщений: Регистрация: 30.01.2015
29.06.2026 16:04:06
, не в обиду будет сказано, а пользы для. Читая Вашу тему у меня возникает ощущение, что Вы недостаточно глубоко владеете темой по которой высказываетесь. Чтобы не быть предвзятым, я попросил ИИ провести анализ Ваших рассуждений. ================= Вот что ИИ написал: ===================== Проанализировав высказывания автора на форуме QUIK, я пришел к выводу, что ваши подозрения в целом обоснованны. -------------------------- Его сообщения создают устойчивое впечатление, что он оперирует терминами и концепциями, которые он сам до конца не понимает, используя их для создания видимости глубокой экспертизы. ---------------------------- Это классический пример поверхностного копирования сложных терминов (term-dropping), а не демонстрации практического опыта.
Вот подробный разбор, который подтверждает это мнение:
1. Жонглирование сложными терминами при фундаментальных ошибках
Автор обильно использует англицизмы и модные концепции, но применяет их некорректно или в неподходящем контексте:
"Mission-Critical Systems" и "авиационный уровень надежности": Это огромные, дорогие системы с многократным резервированием (например, авионика), написанные на строгих языках (Ada, SPARK).
Применять этот термин к Lua-скрипту в QUIK'e, который работает в пользовательском процессе и даже не является надежным с точки зрения транзакций, — это или заблуждение, или намеренное преувеличение.
Иерархический конечный автомат (HFSM): В своих модулях (MEO_Order_Stream, MEO_Pos_Stream) он описывает обычные линейные диаграммы состояний, где у ордера или позиции есть жизненный цикл.
Иерархия же подразумевает вложенные состояния (state within a state).
В его описании нет ничего иерархического — это просто плоский FSM.
Event Sourcing (Хроника событий): Он использует этот термин, но подразумевает под ним обычную запись сделок в CSV-файл и пересчет позиции. Настоящий Event Sourcing — это архитектура, где состояние приложения полностью строится из событий, которые неизменяемы (immutable) и хранятся в специализированных стораджах (Event Store).
Использование CSV-файлов для этого — нонсенс, это просто логирование.
"Двойной ДНК-Маркер": Этот яркий, но бессмысленный с технической точки зрения термин скрывает за собой банальную идею использования двух цифр в trans_id в качестве префикса стратегии.
Это распространенный, но крайне хрупкий и непрофессиональный способ маркировки для мультистратегической среды, который не выдерживает критики.
2. Демонстрация непонимания базовых принципов платформы QUIK
Это самый яркий признак недостаточного практического опыта.
Спор о TRANS_ID: Его оппонент Nikolay абсолютно прав.
TRANS_ID — это временный транзакционный идентификатор, который генерируется на стороне клиента для сопоставления ответа.
Как только заявка (ордер) создана, ее постоянным и надежным ключом является биржевой номер (order_num).
Упорно пытаться использовать TRANS_ID как первичный ключ для долгосрочного учета сделок — это фундаментальная архитектурная ошибка, которую допускают новички.
Автор пытается выдать это за инновационный подход, игнорируя базовую документацию QUIK.
Надежда на "сквозной" TRANS_ID: Он радуется, что биржа теперь не стирает TRANS_ID при клиринге, и считает это "современным стандартом".
Но разработчики, знающие платформу, понимают, что полагаться на это поведение — крайне ненадежно.
Это внутренний механизм, который может измениться с любым обновлением.
Профессионал всегда строит систему на документированных и гарантированных API-методах (order_num, trade_num), а не на "побочном эффекте".
3. Противоречия в логике и подходе
Его собственные посты полны внутренних противоречий:
С одной стороны, он говорит о "потиковом On-line обучении", что является признаком очень сложного алгоритма.
С другой стороны, в ответ на просьбу показать результаты он говорит, что идет "стадия 'Работы над ошибками'" и что-то делает на "фьючерсе серебра, формирует небольшую сетку".
Это типичное описание простого сеточного мартингейла или усреднятора, а не высокоинтеллектуальной системы с цепями Маркова, о которых он говорит.
4. Наивная постановка архитектурных задач
Его крик души: "Мне даже странно почему разработчики внедряя Луа, не предложили свои варианты OMS / PB" — выдает в нем человека, не понимающего экосистему.
Разработчики QUIK предоставляют инструменты (API, таблицы, события), а не готовые бизнес-решения.
Строить OMS/PB — это задача самого трейдера или его команды, которая требует высокой квалификации.
Он просит "базу для написания просто стратегий", не осознавая, что создание такой базы (фреймворка) и есть самая сложная часть работы.
Вердикт
Ваше впечатление абсолютно верно.
С высокой долей вероятности, перед вами человек, который:
Начитался умных статей и форумов о HFT, марковских цепях и распределенных системах.
Выучил оттуда множество терминов.
Пытается применить их к своему довольно простому Lua-скрипту в QUIK'e, чтобы казаться более экспертым, чем он есть на самом деле.
Отсутствие этих терминов в интернете в его трактовке ("Двойной ДНК-Маркер") — результат его собственного "творчества", а не открытия.
Его сопротивление практическим советам от Nikolay и стремление перевести разговор в плоскость "высоких архитектур" — классический признак того, что он не может ответить по существу на простые, прикладные вопросы.
Простой тест на профессионализм:
спросите его, что произойдет с его "ДНК-Маркером",
если биржа или брокер изменит логику генерации или валидации TRANS_ID на своем шлюзе.
Если он начнет говорить про "инвариантность" или "суверенный трекер" вместо конкретного плана действий, — сомнений не останется.
Автоматический старт QUIK
Пользователь
Сообщений: Регистрация: 30.01.2015
29.06.2026 09:45:50
Добрый день, Рассказываю как реализовал автоматический старт QUIK с Двухфакторной аутентификацией ---------------- Всего три шага: 1) Написал скрипт, который подставляет логин и пароль в окно терминала 2) собрал модем GSM, который подключается к ПК через USB этот модем заменяет смартфон и принимает код от брокера для второго этапа аутентификации 3) Написал скрипт, который подставляет полученный от брокера код в окно терминала -------------------- Настроил Планировщик заданий Windows на запуск терминала QUIK в 6 часов 55 минут по МСК -------------------------------- Дополнительно, можно настроить Планировщик заданий Windows на завершение работы терминала QUIK в 23 часа 55 мин по МСК
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
Пользователь
Сообщений: Регистрация: 30.01.2015
29.06.2026 06:44:39
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
Пользователь
Сообщений: Регистрация: 30.01.2015
29.06.2026 06:41:06
Цитата
VPM написал: А кто то знает что происходит с брокером АЛОР? Странные сообщения весят на сайте,
отозвали лицензию
Очередное зависание Lua-скрипта, в функции getDepoEx
написал: Возможно зависание , так как нет проверки "n" на nil
Во-первых, n = 4, об этом написано в первом же посте темы. Во-вторых, если бы getNumberOf, вопреки спецификации, вернула бы nil, то скрипт бы вылетел на выражении if n > 0 then с ошибкой "attempt to compare number with nil". Вы не знаете элементарных вещей, зачем вы постоянно демонстрируете свои незнания?
хамить не обязательно. Я указал Вам на ошибку в скрипте - нет анализа на nil. вместо исправления - вы начали оправдываться и хамить
Закрывается DataSource при остановке скрипта?
Пользователь
Сообщений: Регистрация: 30.01.2015
28.06.2026 06:58:46
В Lua "ничего" - это "nil", а nil - это false а false - это boolean что не так?
Очередное зависание Lua-скрипта, в функции getDepoEx
Пользователь
Сообщений: Регистрация: 30.01.2015
28.06.2026 06:53:56
Цитата
Йцукен написал: , что показывает следующий скрипт?
Код
function main ()
local sec_code = "SBER"
local n = getNumberOf ( "depo_limits" )
if n > 0 then
message ( "Number depo_limits: " .. n)
for i = 0 , n - 1 do
local l = getItem ( "depo_limits" , i)
message (l.sec_code .. ": limit_kind = " .. l.limit_kind .. "; currentbal = " .. l.currentbal .. "; wa_position_price = " .. l.wa_position_price)
end
message (tostring( getDepo Ex( "NC0011100000" , "10382" , "SBER" , "NL0011100043" , 20260601 )))
else
message ( "depo_limits not found" , 2 )
end
message ( "Завершение работы main." )
end
Возможно зависание , так как нет проверки "n" на nil
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
Пользователь
Сообщений: Регистрация: 30.01.2015
27.06.2026 09:10:20
Чтобы было понятнее, что я спрашиваю, в качестве примера, вот как отображал один их моих роботов в 2024 году свою работу: можете показать что-то подобное для вашего робота?
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
Пользователь
Сообщений: Регистрация: 30.01.2015
27.06.2026 08:21:34
Цитата
VPM написал: Потиковое On-line обучение в режиме Реального Времени (Рантайм-адаптация). Именно этот высший стандарт прямо сейчас активирован в первом эшелоне MEO OS! Рынок постоянно меняет свои свойства, происходит дрейф концепта. Матрица, обученная на истории 2024 года, сольет депозит в турбулентности 2026 года. Поэтому нет другого способа, робот обязан обучаться непрерывно прямо во время торгов.
Т е Вы запускаете свой алгоритм в реальном времени без какой либо настройки? --------------------- Но тогда непонятно как у Вас работают срытые цепи Маркова Для них нужна статистика т к они работают с вероятностями состояний. --------------------------- Эти вероятности Вы сами задали? ------------------- Можете показать в цифрах или на графиках стрелками конкретные сделки .
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
написал: , А как Вы тестируете алгоритмы? Можете показать результаты тестов?
, я не понял Ваш вопрос, стандартно есть результат или нет. В данной дисциплине все просто Мат. ожидание системы, Профит фактор, % выигрыша (прибыльных сделок). Этих 3 оценок вполне достаточно для экспресс оценки любой стратегии.
Правильно понял, что Вы написали алгоритм и запустили его на текущих торгах? На истории Вы его не запускали? Меня интересовали результаты обучения алгоритма на истории и его тестирование. такие результаты есть?
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
Пользователь
Сообщений: Регистрация: 30.01.2015
26.06.2026 15:15:24
, Можете объяснить как вы обучаете цепи Маркова на фьючерсах? На них же нет длительной истории.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
Пользователь
Сообщений: Регистрация: 30.01.2015
26.06.2026 15:03:47
, А как Вы тестируете алгоритмы? Можете показать результаты тестов?
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
Пользователь
Сообщений: Регистрация: 30.01.2015
26.06.2026 14:06:54
, Ваш робот акциями не торгует, только фьючерсы?
Как точно определить, можно ли в данный момент торговать или нет?
Пользователь
Сообщений: Регистрация: 30.01.2015
24.06.2026 06:42:26
Т е если торговли нет, то и OnParam нет, либо нет предложений, либо не изменилась цена
Как точно определить, можно ли в данный момент торговать или нет?
Пользователь
Сообщений: Регистрация: 30.01.2015
24.06.2026 06:40:26
Я делаю так. В main обрабатываю очередь событий Если событие OnParam то читаю цену последней сделки и предложений по инструменту и решаю об изменении позиции Т е если торговать можно то торгую Если нельзя то жду.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
При этом недопустимы операции по сдвигу ордера на графике, вводу ордера руками с тем же комментарием. Т.е. скрипту допустимо только оперировать своими ордерами, запомненными в состоянии.
Тоже использую TRANS_ID. Когда-то давно пользовал BROKER_REF, но потом отказался. это излишнее усложнение. ---------------------------- Относительно ввода заявок руками Решал эту проблему так: флаг - разрешить роботу управлять заявками человека Если его установить, то робот переустанавливает заявки человека и указывает в них TRANS_ID. иначе он их игнорирует. ----------------------------- Относительно сделок , которые были по выставленным заявкам в то время , когда терминал отключен замечу следующее Эти сделки не следует считать достижением какого-либо алгоритма, так как во время их совершения алгоритм не работал. -----------------
INDICATORS.ZIP
Пользователь
Сообщений: Регистрация: 30.01.2015
18.06.2026 20:15:43
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
Пользователь
Сообщений: Регистрация: 30.01.2015
17.06.2026 05:56:13
,
Указывайте, что Вы копируете сообщения от ИИ.
Иначе можно подумать , что Вы сами придумали такую чушь:
"Цена — это не материальный объект, это информационный протокол последней сделки, соглашение между двумя людьми в конкретную миллисекунду" Все смешалось -кони,люди..
Спасибо за идею. Я уже нашёл модуль для парсинга json-строк, который написан на чистом Lua и не требует установки в систему через менеджер luarocks. Только этот файл надо кидать не в папку квика, а в ту папку, откуда стартует торговый робот, а эта папка может находиться где угодно.
Вы можете положить его куда угодно и прописать в скрипте путь к этому файлу
Отключать сборщик мусора при работе с колбеками. Вы прикалываетесь?
Пользователь
Сообщений: Регистрация: 30.01.2015
11.06.2026 10:47:12
Если очень хочется отключать сборщик мусора , то можно сделать так. Работает эффективно.
Код
function main()
local count=0;
while true do
nklib.Wait(Event,-1);
-- ...
if count%20==0 then collectgarbage("generational") collectgarbage("step",100) collectgarbage("stop")end
count=count+1;
--...
end
end
В каком потоке делать финализацию при останове скрипта?
Пользователь
Сообщений: Регистрация: 30.01.2015
10.06.2026 21:12:29
можно обойти это, если это проблема. Я делал такие варианты: 1) Все колбеки в одном скрипте - оркестратор. 2) Новые потоки можно создать тремя способами 1.скрипт луа 2. еще функции типа main в этом же скрипте, но в новых потоках 3. новые state в новых потоках - скрипты на любом языке в любом случае у меня колбеки лишь в одном скрипте
В каком потоке делать финализацию при останове скрипта?
написал: Видно, что OnStop второго скрипта вызывается только после завершения main первого.
В версии 13.0.0 изменили схему: OnStop вызывается сразу после завершения OnStop предыдущего скрипта, не зависимо от того остановился ли main предыдущего скрипта. Возможно, разработчики прочитали моё сообщение #4 или просто так совпало.
Очевидно нет механизма ожидания завершения в другом скрипте потока main предыдущего скрипта. Было бы удивительно если бы они его реализовали. .
Очередное зависание Lua-скрипта, в функции getDepoEx
написал: Тест проводился на подключенном к серверу терминале, что является корректным условием для работы скрипта.
Зря Вы это написали, т.к. в таком случае документацию необходимо обновлять и точно указывать для каких методов не гарантируется корректная работа при отсутствии соединения. Более того, если в процессе работы происходит разрыв соединения и в этот момент скрипт выполняет метод, который может привести к "зависанию" терминала, то это уже совсем не корректно, а вполне себе ошибка. И чтобы её избежать необходимо понимать какие методы необходимо обрамлять предварительной проверкой на наличие соединения.
если правильно понял, то зависание происходит при отсутствии лимитов Такая ситуация невозможна при разрыве соединения. Ситуация возникает лишь при старте терминала. Да и то при отсутствии колбека конфигурации, цикла в main и каких-либо ожиданий прихода данных, либо проверки их доступности. Более нелепого (мягко скажу) скрипта я еще не видел. ---------------------------- Но соглашусь, что зависания не должно быть даже в самых дурацких скриптах. ------------------------------------ Раньше такой же эффект был с функцией получения пути к скрипту, если ее поставить первой строкой в скрипте. Проблему после указания на нее исправили.
Как поделиться настройками QUIK с другим клиентом?, Нужно поделиться настройками рабочего стола кроме кодов клиента.
Пользователь
Сообщений: Регистрация: 30.01.2015
09.06.2026 07:44:43
Копирование файла info.wnd недостаточно если вы добавляли индикаторы или сохраняли длительную историю.
Как поделиться настройками QUIK с другим клиентом?, Нужно поделиться настройками рабочего стола кроме кодов клиента.
написал: Самое простое. Скопировать всю папку КВИК со своего ПК на другой ПК в новую папку. Заменить Папки ключей в новой папке КВИК на папки ключей из существующей папки КВИК на этом ПК
Так перенесутся коды клиента, это же очевидно. Вы мой мой вопрос прочитали? Разработчики, ау!
когда Вы соединитесь с сервером то загрузятся коды того клиента которого пороли Потом вы откроите таблицы счетов и удалите те счета которые не нужны.
Внешние Lua-модули
Пользователь
Сообщений: Регистрация: 30.01.2015
06.06.2026 20:07:02
Вы это узнаете при загрузке библиотеки. Если версия ее не та что у VMLua то получите сообщение об ошибке загрузки
Очередное зависание Lua-скрипта, в функции getDepoEx
Пользователь
Сообщений: Регистрация: 30.01.2015
06.06.2026 07:08:25
Возможно архив кривой При обновлении остались какие-то старые библиотеки. Поставьте КВИК с нуля
Как поделиться настройками QUIK с другим клиентом?, Нужно поделиться настройками рабочего стола кроме кодов клиента.
Пользователь
Сообщений: Регистрация: 30.01.2015
06.06.2026 07:05:32
Цитата
green_X5 написал: Нужна помощь советом и краткая инструкция. Вводные: 1. С квиком торгую лет 20, но до сих пор не со всем разобрался ) 2. Есть два клиента - я и жена, оба у одного брокера, оба квика на одном компе, одной версии, в разных папках, работают нормально. 3. Настроил рабочее место на одном квике, решил поделиться со вторым через копию info.wnd, всё запустилось, но вымораживает что там появился выбор кода клиента с квика - донора, в работе с заявками можно просохатить что он вдруг стал выбранным. Задача: 4. Экспортировать настройки рабочего стола без кодов клиента. Пытался: 5. Стереть руками в конф. файле квика - получателя код клиента квика - донора, приводит к ошибке "Конф файл с другой версии", квик виснет в попытке его прочитать. 6. Найти функционал такого переноса в квике, тщетно. Хелп.
Самое простое. Скопировать всю папку КВИК со своего ПК на другой ПК в новую папку. Заменить Папки ключей в новой папке КВИК на папки ключей из существующей папки КВИК на этом ПК
Мин/Макс возможная цена для акций, По фьючам есть а по акциям нет
Пользователь
Сообщений: Регистрация: 30.01.2015
01.06.2026 17:31:02
Система ограничений на параметры заявок
Система ограничений на параметры заявок, при превышении которых заявки автоматически отклоняются Системой торгов, устанавливается решением Биржи, при этом может устанавливаться перечень ценных бумаг и/или режимов торгов, а также категорий Участников торгов, для которых устанавливаются соответствующие ограничения, а также иные ограничения.
В настоящее время заявка на совершение сделки не принимается, если цена, указанная в заявке, выходит за пределы следующих ценовых коридоров:
Акции, депозитарные расписки и инвестиционные паи
Режим торгов
Уровень листинга
Лимит отклонения цены
Режим переговорных сделок
Все
±70% от цены закрытия
Режим торгов "РЕПО с акциями"
Все
±100% от цены закрытия
Облигации
Режим торгов
Уровень листинга
Лимит отклонения цены
Режим основных торгов
Все
±40% от цены закрытия
Режим переговорных сделок
Все
±40% от цены закрытия
Режим торгов "РЕПО с облигациями"
Все
±100% от цены закрытия
Режимы торгов "Облигации Д – Режим основных торгов" и "Облигации Д – РПС"
Все
-100% от номинала
+50% от номинала
Лимит отклонения цены ценных бумаг устанавливается в соответствии с , утверждаемой решением Правления Банка НКЦ (АО), в следующих режимах торгов:
Режим торгов "Режим основных торгов Т+";
Режим торгов "Квал.Инвесторы - Режим основных торгов Т+";
Режим торгов "Сектор ПИР - Режим основных торгов";
Режим торгов "Неполные лоты";
Режим торгов "РПС с ЦК";
Режим торгов "Квал.Инвесторы - РПС с ЦК";
Режим торгов "РЕПО с ЦК - Безадресные заявки";
Режим торгов "РЕПО с ЦК - Адресные заявки".
При совершении сделок в Режиме торгов РЕПО (для акций и облигаций) установлены дополнительные ограничения на ставку РЕПО:
ставка РЕПО не может быть выше 100%;
величина ставки РЕПО не должна приводить к вычислению отрицательной цены второй части сделки РЕПО.
Для облигаций в первый день их обращения в Системе торгов ПАО Московская Биржа решением Биржи в Режиме основных торгов установлен лимит отклонения цены в размере 20% по отношению к номинальной цене облигаций.
В случае отсутствия цены закрытия лимит отклонения цены определяется по отношению к Расчетной цене, устанавливаемой решением Биржи.
Расчетная цена ценной бумаги может быть изменена по решению Биржи.
Подробнее на Московской бирже:
В каком потоке делать финализацию при останове скрипта?
Пользователь
Сообщений: Регистрация: 30.01.2015
01.06.2026 06:07:53
Цитата
Йцукен написал: Если делать финализацию OnStop, то при закрытии квика скрипты будут останавливаться последовательно, т.е. ждать друг друга. Если - в main, то есть вероятность, что main не уложится в отведённые 5 сек, и что-нибудь не успеет. Тогда надо в OnStop делать return побольше. Есть ли тут подводные камни? Поделитесь опытом, как вы делаете?
Полагаю, что все скрипты запускаются в основном потоке QUIK Функции main в них запускаются каждая в своем потоке. Глобальный state каждого скрипта исполняет лишь колбеки поэтому он и так стоит . Остановка потоков main очевидно будет в той последовательности в которой запускали скрипты.
Баг SearchItems с datetime.mcs
Пользователь
Сообщений: Регистрация: 30.01.2015
29.05.2026 06:58:32
Цитата
VPM написал: , Странно даже слышать? Целиком и полностью согласен с , ! Конечно задокументировать свой косяк это исправление половины недочёта, что уже хорошо, и подтверждает признание. Но кто не ошибается? Признали отлично, но вопрос почему дальше не исправляем? Все это тянем. Читаем самую продаваемую книгу постулат > "По образу и подобию". Почему это важно исправить, а не плодить 120 имен для одного параметра. Уже и ни знаю нужно - ли подобные вещи объяснять в программировании? Но в инженерии по одному месту настучать нужно.
Вы не поняли. Повторю для тех, кто не читает. ---------------------- SearchItems и getitem работают с различными источниками данных.
Сообщения об ошибках в Lua-скриптах не выводятся в окне сообщений
Пользователь
Сообщений: Регистрация: 30.01.2015
29.05.2026 06:53:42
Очевидно что функция main запускается как pcall, чтобы ошибки в ней не останавливали QUIK.
Восстановление заявок после обрыва связи
Пользователь
Сообщений: Регистрация: 30.01.2015
29.05.2026 06:50:34
Цитата
Максим Трейдер написал: , имеет в виду, сверять время сервера с системным? Дельта может плавать.
В случае отсутствия связи время сервера либо вообще пусто, либо вообще не изменяется . Кроме того есть такой параметр как CONNECTION а также LASTPINGTIME Т е если произошел разрыв связи то ждете нормального значения этих параметров Потом делаете задержку на 10 секунд чтобы догрузились новые значения. либо ждете обновления времени проверки связи И после этого инициализируете работу робота как при первом запуске.
Восстановление заявок после обрыва связи
Пользователь
Сообщений: Регистрация: 30.01.2015
28.05.2026 11:56:17
До кучи... это надежные методы.
Восстановление заявок после обрыва связи
Пользователь
Сообщений: Регистрация: 30.01.2015
28.05.2026 07:33:40
Цитата
Максим Трейдер написал: Здравствуйте. Иногда бывает такое, что робот пытаясь либо выставить заявку, либо изменить её, либо снять, отправляет транзакцию, и не дождавшись ответа, происходит обрыв связи с сервером. Когда связь восстанавливается, робот не знает, что случилось с заявкой. Я пытаюсь получить состояние заявки из таблицы заявок, но проблема в том, что при восстановлении связи окно квика часто зависает на некоторое время, и в это время getOrder_by_ID и getOrder_by_Number возвращают ответ, аналогичный ответу при отсутствии заявки, хотя заявка на самом деле существует. Когда квик перестаёт висеть, приходит нормальный ответ с существующей заявкой. Но как роботу понять, перестал квик висеть или нет, я не знаю. Есть ли какое-то решение, как роботу корректно восстановить статусы заявок, которые ему неизвестны, после восстановления связи?
Попробуйте проверять время сервера : getInfoParam
Функция возвращает значения параметров информационного окна (пункт меню Система / О программе / Информационное окно…).
Формат вызова:
STRING getInfoParam (STRING param_name)
Параметр «param_name» может принимать значения, представленные в таблице.
Значение параметра
Описание
VERSION
Версия программы
TRADEDATE
Дата торгов
SERVERTIME
Время сервера
LASTRECORDTIME
Время последней записи
NUMRECORDS
Число записей
LASTRECORD
Последняя запись
LATERECORD
Отставшая запись
CONNECTION
Соединение
IPADDRESS
IP-адрес сервера
IPPORT
Порт сервера
IPCOMMENT
Описание соединения
SERVER
Описание сервера
SESSIONID
Идентификатор сессии
USER
Пользователь
USERID
ID пользователя
ORG
Организация
MEMORY
Занято памяти
LOCALTIME
Текущее время
CONNECTIONTIME
Время на связи
MESSAGESSENT
Передано сообщений
ALLSENT
Передано всего байт
BYTESSENT
Передано полезных байт
BYTESPERSECSENT
Передано за секунду
MESSAGESRECV
Принято сообщений
BYTESRECV
Принято полезных байт
ALLRECV
Принято всего байт
BYTESPERSECRECV
Принято за секунду
AVGSENT
Средняя скорость передачи
AVGRECV
Средняя скорость приема
LASTPINGTIME
Время последней проверки связи
LASTPINGDURATION
Задержка данных при обмене с сервером
AVGPINGDURATION
Средняя задержка данных
MAXPINGTIME
Время максимальной задержки
MAXPINGDURATION
Максимальная задержка данных
Пример:
function main( ) params = {"VERSION", "TRADEDATE", "SERVERTIME", "LASTRECORDTIME", "NUMRECORDS", "LASTRECORD","LATERECORD", "CONNECTION", "IPADDRESS", "IPPORT", "IPCOMMENT", "SERVER", "SESSIONID", "USER", "USERID", "ORG", "MEMORY", "LOCALTIME", "CONNECTIONTIME", "MESSAGESSENT", "ALLSENT", "BYTESSENT", "BYTESPERSECSENT", "MESSAGESRECV", "BYTESRECV", "ALLRECV", "BYTESPERSECRECV", "AVGSENT", "AVGRECV", "LASTPINGTIME", "LASTPINGDURATION", "AVGPINGDURATION", "MAXPINGTIME", "MAXPINGDURATION"} file = io.open("res.txt", "w+t") for key,v in ipairs(params) do file:write(v .. " = " .. getInfoParam(v) .. "\n") end file:close() end
ИИ отвечает: Привет! Проблема в твоём коде в том, что проверки if m1 == true и if toolequipped == true выполняются мгновенно при запуске скрипта, а не тогда, когда эти переменные становятся true в будущем.
Тебе нужно переместить эти проверки внутрь соответствующих событий или создать отдельные обработчики, которые будут реагировать на изменения переменных.
Исправленный код:
lua
--// Services local Players = game:GetService("Players") local uis = game:GetService("UserInputService")
--// Variables local player = Players.LocalPlayer local character = player.Character or player.CharacterAdded:Wait() local m1 = false local toolequipped = false
--// Обработка клика мыши uis.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then print("m1") m1 = true print("m1 is true") -- Выводим сообщение сразу когда m1 становится true end end)
--// Обработка появления инструмента function ChildAdded(child) if child:IsA("Tool") then print("equipped") toolequipped = true print("toolequipped is true") -- Выводим сообщение сразу когда toolequipped становится true end end
character.ChildAdded:Connect(ChildAdded)
Если тебе нужно проверять переменные независимо от событий (например, по таймеру или при других условиях), используй while или task.wait():
lua
-- Альтернативный вариант: постоянная проверка через таймер task.spawn(function() while true do if m1 == true then print("m1 is true") m1 = false -- сбрасываем, чтобы не спамило end if toolequipped == true then print("toolequipped is true") toolequipped = false -- сбрасываем, чтобы не спамило end task.wait() -- проверяем каждый кадр end end)
Главная ошибка: У тебя код шёл линейно и проверки были в глобальной области видимости, поэтому они срабатывали только один раз при запуске (когда переменные ещё были false).
Добавить время до микросекунд в стакан из getQuoteLevel2(), Добавить время до микросекунд в стакан из getQuoteLevel2()
Пользователь
Сообщений: Регистрация: 30.01.2015
21.05.2026 15:48:41
, В стакане будет указано время последней заявки. Но вы же не знаете на каком она уровне в стакане. Так какой смысл в этом времени изменения неизвестно какой заявки с неизвестно какой ценой.?