Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
Пользователь
Сообщений: Регистрация: 15.06.2023
26.06.2026 15:26:23
Цитата
nikolz написал: , А как Вы тестируете алгоритмы? Можете показать результаты тестов?
nikolz, я не понял Ваш вопрос, стандартно есть результат или нет. В данной дисциплине все просто Мат. ожидание системы, Профит фактор, % выигрыша (прибыльных сделок). Этих 3 оценок вполне достаточно для экспресс оценки любой стратегии.
Пользователь
Сообщений: Регистрация: 15.06.2023
26.06.2026 15:32:53
Потиковое On-line обучение в режиме Реального Времени (Рантайм-адаптация). Именно этот высший стандарт прямо сейчас активирован в первом эшелоне MEO OS! Рынок постоянно меняет свои свойства, происходит дрейф концепта. Матрица, обученная на истории 2024 года, сольет депозит в турбулентности 2026 года. Поэтому нет другого способа, робот обязан обучаться непрерывно прямо во время торгов.
написал: , А как Вы тестируете алгоритмы? Можете показать результаты тестов?
, я не понял Ваш вопрос, стандартно есть результат или нет. В данной дисциплине все просто Мат. ожидание системы, Профит фактор, % выигрыша (прибыльных сделок). Этих 3 оценок вполне достаточно для экспресс оценки любой стратегии.
Правильно понял, что Вы написали алгоритм и запустили его на текущих торгах? На истории Вы его не запускали? Меня интересовали результаты обучения алгоритма на истории и его тестирование. такие результаты есть?
Пользователь
Сообщений: Регистрация: 30.01.2015
27.06.2026 08:21:34
Цитата
VPM написал: Потиковое On-line обучение в режиме Реального Времени (Рантайм-адаптация). Именно этот высший стандарт прямо сейчас активирован в первом эшелоне MEO OS! Рынок постоянно меняет свои свойства, происходит дрейф концепта. Матрица, обученная на истории 2024 года, сольет депозит в турбулентности 2026 года. Поэтому нет другого способа, робот обязан обучаться непрерывно прямо во время торгов.
Т е Вы запускаете свой алгоритм в реальном времени без какой либо настройки? --------------------- Но тогда непонятно как у Вас работают срытые цепи Маркова Для них нужна статистика т к они работают с вероятностями состояний. --------------------------- Эти вероятности Вы сами задали? ------------------- Можете показать в цифрах или на графиках стрелками конкретные сделки .
Пользователь
Сообщений: Регистрация: 30.01.2015
27.06.2026 09:10:20
Чтобы было понятнее, что я спрашиваю, в качестве примера, вот как отображал один их моих роботов в 2024 году свою работу: можете показать что-то подобное для вашего робота?
Пользователь
Сообщений: Регистрация: 15.06.2023
27.06.2026 11:49:40
nikolz, Алгоритм запущен в реальном времени на фьючерс серебра, формирует небольшую сетку. Идет стадия "Работы над ошибками". Касаемо Вашего интереса цепей Маркова. Настройки максимально автоматизированы, контур пользователя минимален, и еще уменьшится есть идеи как. Принцип подхода озвучен выше. Цепь Маркова предполагает, что вся история рынка не нужна — будущее зависит только от текущего состояния портфеля и микроструктуры. Состоит из 4 этапов. В двух словах если здесь говорить только еще больше все запутать. Подход уникальный разработанный мной, и описан в постах выше с некоторыми отвлечениями на ситуации требующими дополнительных обсуждений (Не понятных мне в основном инженерия кода). Мой лог. файл и файл истории ничего Вам не скажет только запутает. Но Вы подали хорошую инженерную идею. Нужен рапорт технического руководителя проекта, в котором и заморозь подход, зафиксировав основные положения. Но это позже .О результатах всего проекта говорить рано, завершен только первый эшелон идут уточнения и устранение ошибок в основном технологических. Теория описана идет этап практической реализации и проверки на практике идей. Как известно Практика и Теория вещи мало совместимые.
Пользователь
Сообщений: Регистрация: 15.06.2023
27.06.2026 12:41:42
А кто то знает что происходит с брокером АЛОР? Странные сообщения весят на сайте,
Пользователь
Сообщений: Регистрация: 15.06.2023
28.06.2026 14:37:48
Как то совсем не до оценил ситуацию. В современных реалиях Московской Биржи и актуальных версиях QUIK (9.x и выше), физика стирания TRANS_ID кардинально изменилась. Начиная с масштабных технологических модернизаций шлюзов Срочного рынка (SPECTRA TWIME/ASTS), Московская Биржа перешла на принцип сквозного сохранения клиентских идентификаторов (Persistent Client Order ID).
Как устроен современный клиринг или почему старый подход "амнезии" TRANS_ID больше не угрожает системе, и как нужно адаптировать старые скрипты и писать новые. Что удалось установить:
------------------------------ А) Живая физика современного клиринга МосБиржи: 1. Сквозная линковка идентификаторов. Ранее терминал QUIK действительно вычищал поле TRANS_ID в таблицах заявок и сделок сразу по завершении вечернего клирингового сеанса (19:00), так как биржевое ядро SPECTRA выдавало новые системные номера распоряжений. Теперь же, благодаря глубокой модернизации QUIK API, поле TRANS_ID сохраняется на протяжении всей торговой сессии (включая перенос через клиринг). Оно намертво связывается с биржевым уникальным ключом ORDER_KEY (номер заявки) и TRADE_NUM (номер сделки).
2. Где зарыто реальное изменение. Московская Биржа действительно полностью стирает промежуточные данные, но только при переходе через календарные сутки (в момент технологического перерыва и финального клиринга в 23:50–00:05), либо при принудительном разрыве и реконнекте сессии брокером. Вечерний клиринг (18:45–19:00) больше не обнуляет память линковки транзакций внутри текущего торгового дня.
3. Современный цикл внутридневного клиринга. В ходе клиринга (18:45–19:00) биржа SPECTRA производит физическое закрытие (схлопывание) промежуточных сделок и перерасчет вариационной маржи, превращая текущие сделки дня в накопленную позицию (Holding) со средней ценой, скорректированной на расчетную цену клиринга (Settlement Price). То есть, trades (таблица сделок) за день остаются видны, но их финансовый результат переносится на баланс счета.
------------------------------ Б) Инвариантная Сверка через OrderKey-Mapping. Насколько Профессиональный подход судить вам? Раз TRANS_ID в течение торгового дня стабилен и больше не выжигается вечерним клирингом, суверенный MEO_Order_Tracker (v5.6) получает колоссальное преимущество. Просто обязан заложить в него метод двойного ключа (Double Key Mapping). Тогда при запуске робот выполняет три действия: * Действие 1: Считывает из нашего Excel CSV Файла последнюю сохраненную строчку позиции. * Действие 2: Проверяет нативную таблицу заявок QUIK (orders). Если TRANS_ID текущего дня совпадает с префиксом стратегии 44... (мой 32-битный TRANS_ID ВЕБ-брокер подкорректировал), робот подтягивает под контроль Ватчдога (механизма защиты от зависаний) биржевой номер заявки (ORDER_KEY). * Действие 3: Сопоставляет сумму лотов наших подтвержденных транзакций с общим живым holding-балансом из getFuturesHolding(), чтобы жестко вычленить ручные сделки пользователя.
------------------------------ Итог - этот скорректированный вариант моего MEO_Order_Tracker, учитывающий современную физику персистентных идентификаторов QUIK (СОВРЕМЕННЫЙ СТАНДАРТ). Архитектура теперь современного Трэкера предоставляет две главные возможности:
1. Скрипт опирается на долгосрочное сохранение TRANS_ID внутри сессии, что гарантирует точный подхват активных сеточных лимиток Ватчдогом. 2. Защиту от суточного стирания. Если скрипт запускается на следующий календарный день, базовый ориентир восстанавливается из Файла (.csv), а функция getFuturesHolding мгновенно выявляет дельту человеческого вмешательства.
Осталось испытать.
Пользователь
Сообщений: Регистрация: 27.01.2017
28.06.2026 15:56:50
Как-то я и ранее не замечал очистки поля trans_id в вечерний клиринг.
Цитата
VPM написал: либо при принудительном разрыве и реконнекте сессии брокером
Но этого достаточно, чтобы сказать, что данный подход не надёжен.
Я уже говорил ранее, что trans_id - это внутренний ключ и поэтому и использование его как сквозной опасна.
Вы отправляете транзакцию и генерируете trans_id. Это первый ключ для дальнейшей фильтрации. Далее читаете ответ транзакции по trans_id и ждёте появления записи в таблице ордеров с этим trans_id. Как только получили оную, то уже переходите на реальный, постоянный ключ - order_num, trans_id уже не используете.
Т.к. есть ключ order_num, то все последующие действия будете проводить уже с ним - проверка состояния ордера, прошедшие сделки. Т.о. вы запоминаете свои ордера, а не свои транзакции. Это существенное отличие. Тем более что если ордер устанавливается с переносом через сутки. Или стоп-ордера на длительный период. Важен номер ордера, а не с каким внутренним ключём вчера отправили транзакцию.
Пользователь
Сообщений: Регистрация: 15.06.2023
28.06.2026 17:18:09
Nikolay, Да спасибо, про Одера понял последовательная обработка и работа с ключом order_num.
Но я то эту механику завел чтобы отследить сделку. Сделка принадлежит определенной стратегии. trans_id приходит в таблицу сделок, сами сделки храню во внутренней книге а по двум первым цифрам trans_id (у меня 44) однозначно фильтрую принадлежность сделки из истории (допустим на следующий день) к принадлежности данной стратегии. Тем самым добиваюсь возможность использования мути подхода использую разные стратегии в одно программе.
Если следовать логике предложенной Вами Нужны ключи хранить сделок? Раздувая допустим таблицу луа, если сделок много?
Пользователь
Сообщений: Регистрация: 27.01.2017
28.06.2026 17:49:56
В чём проблема обновить принадлежность ордера к стратегии? По trans_id нашли ордер и уже ордер принадлежит стратегии, что сейчас, что завтра, и далее до исполнения.
Пользователь
Сообщений: Регистрация: 30.01.2015
29.06.2026 06:41:06
Цитата
VPM написал: А кто то знает что происходит с брокером АЛОР? Странные сообщения весят на сайте,
отозвали лицензию
Пользователь
Сообщений: Регистрация: 30.01.2015
29.06.2026 06:44:39
Пользователь
Сообщений: Регистрация: 15.06.2023
29.06.2026 13:44:30
Nikolay, Конечная задача у меня стоит, не просто отфильтровать, а создание полноценного HFT-модуля OMS (Order Management System) и Книги Позиций (Position Book). Универсального а главное надежного. На пример как ядро проектирования распределенных систем авиационного уровня надежности (Mission-Critical Systems). Просто как аналогия - ультимативный индустриальный стандарт построения систем автоматического контроля.
Ранее пробовал применять классический, канонический Конечный Автомат (FSM — Finite State Machine). Но в HFT-среде из-за многомерности данных этот паттерн эволюционировал в концепцию Иерархический конечный автомат (HFSM — Hierarchical Finite State Machine). Где состояние верхнего уровня (Позиция) зависит от состояний нижнего уровня (Ордера).
А паттерн Event Sourcing (Хроника событий). Не просто хранит текущие состояния. Он хранит потоки событий (сделки), на основе которых память робота может математически воссоздать любую точку прошлого при аварийном рестарте.
А я лишь пытаюсь все это увязать со стратегией создавшей позицию и потоки ордеров в мульти среде стратегий для себя любимой. Некий Проектировщик Мульти-Стратегий (Multi-Strategy Framework Architect). Моя задача стоит отфильтровать по стратегиям для возможного учета собственных сделок и расчета показателей конкретной стратегии. Последнее время специально привожу английский сленг названий именно для четкого отражения подхода (Перевод часто искажает смысл, а работы интересные там).
Классический клиринг не совсем то, подход с хранением собственных сделок. По trans_id — это единственный способ удержать мульти-стратегию без раздувания RAM-таблиц, и не нужно хранить миллионы ключей. Просто применяя Двойной ДНК-Маркер, генерируете 9-значный trans_id. Его первые две цифры — это жесткий код стратегии (например, 44 — Марковский куб, 55 — будущий Арбитраж, 77 — ручной трейдер). А как еще?
Мне даже странно почему разработчики внедряя Луа, не предложили свои варианты OMS / PB, создав тем самым базу для написания просто стратегий? Конечно их пользователь конечный - брокер.
Пользователь
Сообщений: Регистрация: 15.06.2023
29.06.2026 14:23:53
Архитектурная карта разделения по модулям.
(вариант обновления, 4 самостоятельных, независимых require-модуля, каждый из которых имеет свою таблицу RAM, свои правила и свой файл хранения на диске).
Модуль 1: MEO_Order_Stream.lua (Поток ордеров) -------------- Матрица состояний (6 фаз): PENDING_NEW (отправлен) ──► ACTIVE (в стакане) ──► PARTIAL (частично исполнен) ──► EXECUTED (полностью залит) ──► CANCELLED (снят оператором) ──► REJECTED (отклонен биржей). Матрица переходов: Жестко запрещает переход из CANCELLED в EXECUTED. Защищает от ложных дублей. Хранилище: meo_orders_snapshot_SVU6.csv.
Модуль 2: MEO_Pos_Stream.lua (Поток позиций стратегии) ------------- Матрица состояний (4 фазы): FLAT (ноль) ──► LONG (куплено) ──► SHORT (продано) ──► LOCKED (аварийная блокировка рисков). Матрица переходов: Переход из LONG в SHORT обязан проходить через расчет средней цены и фиксацию Round-Turn кванта. Хранилище: meo_position_lifecycle_SVU6.csv.
Модуль 3: MEO_Trade_Stream.lua (Поток сделок и Round-Turn метрик) ------------- Задача: Ему не важны флаги и стаканы. Он ждет, когда Модуль 2 скажет: «Позиция уменьшилась на Х лотов». Он мгновенно берет цену входа, цену выхода, переводит дельту в рубли через PriceValidator и фиксирует чистый PnL. Хранилище: meo_trades_book_SVU6.csv (Материал для расчета Профит-Фактора и Матожидания).
Модуль 4: MEO_OMS_Supervisor.lua (Диспетчер) Глобальный паттерн - синглтон, который принимает асинхронные события QUIK (OnOrder, OnTrade), распределяет их по трем потокам-модулям и выдает Марковскому ядру чистую, верифицированную аналитику.
Пользователь
Сообщений: Регистрация: 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 на своем шлюзе.
Если он начнет говорить про "инвариантность" или "суверенный трекер" вместо конкретного плана действий, — сомнений не останется.
Пользователь
Сообщений: Регистрация: 15.06.2023
29.06.2026 18:26:28
nikolz, Внимательно прочитал ИИ, на ~90% верно, разложил, при этом заметь те не слова про анализ подхода, одни какие - то "слюни". Читая Ваши сообщения, думал Вы сами ошибки допускаете, теперь понятно почему. Вы бы ему лучше поставили задачу сделать то же самое. Пусть покажет что может?
Комментировать машинный текст на писанный за Вас, ну верх идиотизма.
МАШИНА предназначена для помощи человеку, а НЕ НАОБОРТ! Точно также как торговый комплекс для торговли а не лечения затычек под названием событий модели.
Пользователь
Сообщений: Регистрация: 15.06.2023
29.06.2026 19:12:48
nikolz, А вы как "грамотный специалист" Ответе на простой профессиональный вопрос: {B] как именно собрать надежный OMS-систему, как именно в промышленной OMS-системе на базе order_num определяется принадлежность ордера и сделки к конкретной стратегии[/B]? А если trans_id исчезает?
Пользователь
Сообщений: Регистрация: 15.06.2023
29.06.2026 22:37:35
Просто покажу, Почему нужно думать ГОЛОВОЙ, а не другим местом.
Хочу показать, как сейчас у себя применил метод АНАЛОГИИ, провожу рефакторинг кода, дописываю метод динамической адаптации параметров фильтрации на основе текущих метрик хаоса и вихревых полей. Это далеко не локальное изобретение для QLua. Это классический междисциплинарный подход, который в науке и промышленности называется Адаптивным цифровым сглаживанием (Adaptive Signal Processing / Variable Bandwidth Filtering).
Данный подход является безальтернативным везде, где система обязана работать в критических условиях (Mission-Critical) при постоянной и непредсказуемой смене внешней среды. Вот примеры индустрии, где этот математический паттерн является жестким стандартом.
1. Авиастроение и Космонавтика (Системы Fly-by-Wire) В бортовых компьютерах современных истребителей и космических аппаратов датчики непрерывно измеряют угловые скорости и ускорения. Аналог моей Энтропии и Ротора которые я считаю у себя в программе. Турбулентность воздушного потока, плотность атмосферы и вибрация крыла, как это работает там, них: * Если истребитель летит в спокойном воздухе, фильтры Т3/Кальмана (именноих я автоматизирую) переходят в режим максимальной чувствительности (аналог моего v_multiplier = 0.95), чтобы пилот имел наносекундный отклик рулей. * Но как только самолет входит в зону жесткой турбулентности или сверхзвукового барьера, датчики начинают "шуметь". Бортовой компьютер мгновенно расширяет окно сглаживания и загрубляет коэффициенты (аналог моего снижения alpha до 0.15), чтобы случайная воздушная кочка не привела к разрушению планера из-за резкого автоколебания закрылков.
2. Медицинское оборудование (Электрокардиографы и ИВЛ)
3. Военная робототехника и Оптическая стабилизация. В системах наведения танковых орудий, тепловизоров и подвесов применяется точно такая же математика.
4. Крупные институциональные HFT-фонды (Tier-1) У маркет-мейкеров мирового уровня (уровня Citadel или Flow Traders) этот подход зашит в их Execution Engines (Модули исполнения приказов). Здесь аналог Энтропии и Ротора. Плотность тикового потока (Quote Feed Rate) и дисбаланс стакана (Order Book Imbalance). * В моменты спокойного рынка их алгоритмы выставляют ордера с минимальным сглаживанием, собирая копеечный спред. * Но в секунды выхода макроэкономических новостей, когда тиковая скорость пробивает исторические экстремумы, их Т3-каскады автоматически загрубляют чувствительность, защищая роботов от токсичной ликвидности (когда крупный агрессивный фонд одной маркет-заявкой выгребает весь стакан, уничтожая пассивных маркет-мейкеров).
По АНАЛОГИИ просто, перенес эту фундаментальную физику в свой QLua-монолит. Так, Марковское ядро v18.8 у меня, защищено от рыночной турбулентности законами авиационной и медицинской фильтрации. Где, параметрами Т3-Тиллсона являются: а) alpha - Переменная alpha контролирует длину скользящего окна сглаживания. б) v_multiplier - Параметр контролирует агрессивность подавления шума.
И никакой мистики, а космические корабли бороздят просторы вселенной.
Пользователь
Сообщений: Регистрация: 12.05.2020
30.06.2026 10:25:02
Цитата
VPM написал: Хочу показать, как сейчас у себя применил метод АНАЛОГИИ, провожу рефакторинг кода, дописываю метод динамической адаптации параметров фильтрации на основе текущих метрик хаоса и вихревых полей.
"Каменный" век . ИИ-агенты обогнали рынок в эксперименте Мосбиржи:
Пользователь
Сообщений: Регистрация: 15.06.2023
30.06.2026 11:16:40
TGB, "Все новое, хорошо забытое старое", то что в статье упоминается две заветных буквы "ИИ" еще не означает тот факт, что они не используют методы фильтрации, сглаживания, и усреднений в своих вычислениях и кодах. Важен не тот факт сколько они показали на не статистическом периоде, в условиях когда индекс сам им стремится на встречу. А факт стабильного РОСТА капитала на продолжительном периоде (то самое мат. ожидание системы).
Ну Вы то, эти элементарные, прописные вещи должны, учитывать делая свои заявления.
Сегодня уникальное время в обработке больших массивов данных, человек мало образованный нажимая заветную кнопочку "ИИ" получает ответ на поставленный вопрос. По чему же не пользоваться, глупо. А я лишь привел свой пример, в целях показать что к ИИ нужна еще и ГОЛОВА.
Что простая междисциплинарная АНАЛОГИЯ очень даже возможна. И это абсолютно не связано с моим, кодом, это просто метод вычислений, покажет не удовлетворительный результат - заменю. Как и математика Маркова (с которой носится тут один пользователь, не буду показывать пальцем) это просто расчеты которые хорошо легли в модель. Покажут результат Ок, не покажут заменю. Что не так?
Пользователь
Сообщений: Регистрация: 15.06.2023
30.06.2026 11:37:56
TGB, Кстати, хочу отметить, зашел Ваш подход из сообщения Опробовал у себя, получилось несколько изохронных режима луа цикла с привязкой к задачам и нагрузки QUIK. Еще раз благодарю.
Пользователь
Сообщений: Регистрация: 15.06.2023
30.06.2026 11:41:31
Не ту ссылку скопировал вот правильная на сообщение
С этим согласен. Есть задачи вообще никем не решаемые. Например: прогнозирование выигрышных номеров в спорт-лото.
Пользователь
Сообщений: Регистрация: 15.06.2023
12.07.2026 14:50:57
Переход от классических индикаторов к динамике векторного поля в фазовом пространстве. (Реализованная часть этого подхода: ATR – скаляр, задающий масштаб поля (нормировочный множитель). RSI – скалярная потенциальная функция (сила/перекупленность). pDI / mDI – направленные компоненты давления (векторные составляющие). ADX – скаляр мощности поля (модуль вектора). Velocity – первая производная ADX (градиент мощности). Acceleration – вторая производная (кривизна/изменение градиента). R_sphere – энергия поля (норма вектора состояния). Rot_Power – ротор (завихрение) поля, вычисляемое через векторное произведение состояний.)
При разборе математической интерпретации и оценке лага, получаю не очень утешительный результат.
* Лаг – это среднее отставание фильтрованного сигнала от «истинного» (мгновенного) значения, если бы мы могли измерить его без шума. Оценка вычислительного лага. Источники задержки с учетом фильтров: Компонент Задержка Причина DataStream (QUIK) ~1-2 секунды Сетевая задержка, агрегация тиков в бары ATR (EMA, период 14) ~6-7 баров Экспоненциальное сглаживание имеет эффективную задержку (n-1)/2 ZLEMA (DI) ~3-4 бара Zero-Lag уменьшает задержку, но не полностью SuperSmoother (ADX) ~4-5 баров Задержка фильтра зависит от периода Velocity (производная) ~1-2 бара Производная усиливает шум, но запаздывает на 1 бар Acceleration ~2-3 бара Ещё более шумная, но запаздывание увеличивается R_sphere, Rot_Power ~3-5 баров Зависят от ADX, V, A, наследуют их задержку Обработка в Lua < 1 мс Практически мгновенно Отправка ордера ~50-100 мс Сетевая задержка до биржи Общий лаг (от момента формирования паттерна до исполнения) составляет примерно от 5 до 15 минутных баров (если период = 1 минута). Это ~5-15 минут. Для внутридневной торговли на часовых таймфреймах это еще приемлемо. Основной лаг в этом проекте вносят сглаживающие фильтры (SuperSmoother, ZLEMA, EMA).
Их нужно немного уменьшить, варианты: 1) Просто сократить период (14 -> 10-8), но это увеличит чувствительность к шуму. 2) Использовать Kalman-фильтр вместо EMA/SuperSmoother – он даёт меньшую задержку. 3) Применить линейную экстраполяцию (прогноз на 1-2 бара) на основе текущих значений Velocity и Acceleration. 4) Рассчитывать адаптивный период на основе ротора: если Rot_Power высок, уменьшать период (быстрее реагировать на изменения). Например, простой адаптивный период: local dynamic_period = math.max(8, math.min(20, math.floor(14 * (1 - Rot_Power / 100)))) Это позволит быстрее реагировать на сильные завихрения.
Мне представилось - Kalman-фильтр для замены EMA (SuperSmoother прекрасно справляется со своей задачей) в системе векторных индикаторов, это то что нужно, хорошо ложится в подход МЕО. Kalman-фильтр даёт оптимальную оценку состояния с учётом шума измерений и динамики процесса. В отличие от EMA, он имеет меньшую задержку (~1-2 бара) и адаптивную реакцию на изменения. Внедрение Kalman-фильтра вместо EMA: а) снизит задержку с ~6-8 баров до ~2-3 баров, б) повысит устойчивость к шуму, с) даст более точную оценку производных (скорости и ускорения), что улучшит расчёт ротора и градиента.
Но с ним есть одна загвоздка, абсолютно не понятно и не удобно, работать с его параметрами Q и R, как настраивать? Можно подобрать коэффициенты эмпирически, проще создать фильтры с фиксированными параметрами, подобранными экспериментально. Можно обновлять параметры фильтра, сделать адаптивным, при высокой волатильности увеличивать Q (быстрее адаптироваться) и уменьшать R (больше доверять измерениям). * Q (шум процесса), чем больше, тем быстрее фильтр адаптируется к изменениям. * R (шум измерения), чем больше, тем сильнее сглаживание.
Пользователь
Сообщений: Регистрация: 15.06.2023
12.07.2026 16:24:19
Обратив внимание на тот факт, что у параметров обратно пропорциональная зависимость, предположил в ввести меру. Меру этих отношений. На основе которой можно сделать настоящую "механическую" модель. Подтвердить мысль о рычагах доверия. Предложить и проверить конкретную реализацию адаптивного Kalman для MEO, где Q и R вычисляются из целевого K_target, который зависит от состояния рынка (R_sphere, Rot_Power и P_sync ...).
Само понимание Q и R как рычагов доверия, а не абсолютных констант, полностью меняет подход к настройке фильтра. Вместо того чтобы подбирать числа, мы можем вычислять их из состояния рынка — энергии, ротора и периода. Kalman становится не просто фильтром, а адаптивным регулятором инерции, который перераспределяет вес между моделью и измерением в зависимости от фазы рынка. Q и R — это не магические числа, а рычаги управления доверием. Вместо того чтобы подбирать их вручную, мы используем состояние самого рынка (энергию, завихрение, период), чтобы динамически вычислять, насколько мы доверяем модели, а насколько — новому измерению.
Это превращает Kalman из статичного фильтра в интеллектуальный регулятор инерции, который: В шумном флэте — сглаживает и не даёт ложных сигналов. В тренде — быстро реагирует на движение. На разворотах — мгновенно переключает доверие. И всё это без ручной настройки — просто через естественные метрики торговой системы. Это идеально ложится в архитектуру MEO, где решение принимается на основе фазового состояния рынка.
Теперь фильтр действительно становится адаптивным физическим двигателем торговой системы. А для моей системы сторонним наблюдателем, что позволяет применить еще один подход Hidden Markov Models (HMM) и наблюдатели состояния на основе убеждений (Belief-State Observers) — это концепции, обе используются для работы со скрытыми состояниями. HMM — это пассивная модель, а Belief-State Observer — это компонент управления, который делает частичную наблюдаемость частью Марковского процесса принятия решений (MDP).
Пользователь
Сообщений: Регистрация: 15.06.2023
13.07.2026 11:28:20
Заглянул на огонек, сайт и вот вам пожалуйста, с первых строк, сообщение от 2026 года. Это важное ИСПРАВЛЕНИЕ от Джона Элерса, и его действительно стоит учитывать при реализации индикаторов и применении его методов.
Вместо использования старого Dominant Cycle как отдельного признака, теперь предлагается использовать скорость изменения фазы (или её производные), как более фундаментальную характеристику. Затем при необходимости вычислять оценку периода по формуле DC ~ 360 \ Delta_phi после соответствующего сглаживания и ограничения диапазона. Эта концепция ближе к современной версии методов Элерса и лучше сочетается с вероятностным представлением состояния рынка, чем попытка напрямую оценивать период как параметр синусоидальной модели. Иными словами, если реализуете методы Элерса, сегодня нужно использовать именно это ИСПРАВЛЕНИЕ как основную реализацию Dominant Cycle. А старые версии рассматривать лишь как исторические, развитие концепции.
Суть исправления можно сформулировать так. В книге "Cybernetic Analysis for Stocks and Futures" вычисление Dominant Cycle выполняется через модель чистой синусоиды, оказалось недостаточно устойчивым на реальных рыночных данных. Элерс официально отказывается от реализации через старую функцию DominantCycle. Вместо этого он рекомендует вычислять период из скорости изменения фазового угла (phase rate of change). Именно это и реализует приведённый им код .
Поменялась и сама концепция. Вместо оценки "какой длины синусоида лучше описывает данные", алгоритм оценивает: > "насколько быстро вращается фазовый вектор". Если фазовый угол увеличивается на 20° за бар, то период 360 / 20 = 18 баров Если скорость вращения падает 10° то период 36 баров
То есть период получается непосредственно из фазовой динамики. Это намного устойчивее, поскольку не требует, чтобы рынок был близок к идеальной синусоиде. А в самих вычислениях применяется несколько защитных механизмов. 1. RMS-нормализация: Real = LP / RMS; Imag = ROC / QRMS - делает фазу практически независимой от амплитуды. 2. Используется производная сигнала Imag = ROC, а не классический Hilbert Quadrature. Это менее "красиво" математически, но более функционально. 3. Запрет движения фазы назад if Angle < Angle[1] then Angle = Angle[1] - Фаза должна возрастать монотонно. Иначе возникают скачки периода. 4. Ограничение периода 8 <= DC <= 50 защищает от огромных выбросов при почти нулевом dPhase. 5. Hann smoothing. Последняя строка Plot1(Hann(DC, WindowLength)) - сглаживает уже вычисленный период, а не исходный сигнал, что даёт значительно меньшую задержку по сравнению со сглаживанием входных цен. Очень важна!
Это ИСПРАВЛЕНИЕ особенно хорошо согласуется с идеей и архитектурой MEO. В MEO уже есть некоторые непроявленные, латентные признаки, связанные с фазой: * phase flow; * phase acceleration; * energy; * coherence. Ну прям впечатление, что Джон Элерс, тоже почитывает наш сайт!
Пользователь
Сообщений: Регистрация: 15.06.2023
26.07.2026 14:12:45
К дню Энергетика, посвящается электротехнике и инвестициям.
В электротехнике и электронике есть понятие комплементарные пары — это два элемента, которые имеют абсолютно идентичные электрические параметры, но противоположную полярность (тип проводимости). Главный физический смысл комплементарности — создание симметричных схем. Что в свою очередь, позволяет эффективно управлять как положительной, так и отрицательной полуволной сигнала.
Мне стало интересно, как комплементарные пары, используемые в инженерной практике. И почему это на прямую связано с инвестициями. Обо всем и по порядку.
1. Биполярные транзисторы, NPN и PNP. Это самый классический пример, они имеют одинаковые вольт-амперные характеристики, предельные токи и коэффициенты усиления, но противоположное направление токов и управляющих напряжений. Принцип работы, NPN-транзистор открывается положительным напряжением на базе, а PNP — отрицательным.
2. Полевые транзисторы, N-канальные и P-канальные. Аналог биполярной пары, но управляемый напряжением (электрическим полем), а не током. Здесь принцип работы, N-канальный открывается плюсом, P-канальный — минусом. На этой паре построена вся современная цифровая микроэлектроника (процессоры, память). Логический каскад этой пары: когда один транзистор открыт, комплементарный ему закрыт. Важно, схема потребляет энергию только в момент переключения. Энергетики поправят если что не так. Зон применения огромное количество есть и силовые установки, системы управления, собственно проявленный интерес вызван другим, принципом построения логических каскадов комплементарных пар (NPN и PNP - "идеальной пары").
Мне все это на помнило экономическую теорию Карла Маркса, где формулы кругооборота TДT и ДTД (напомню, Прибавочная стоимость приводит к кризисам), чем не комплементарные пары? Решил провести полную аналогии между комплементарными парами в электротехнике и капиталом. В обеих системах мы видим циклическое движение сущностей, имеющих противоположную полярность, но идентичную "стоимостную" или "энергетическую" ценность.
Аналогия I. Формула (Товар — Деньги — Товар). В экономике этот цикл описывает простое товарное обращение (например, ремесленник продает свой стул, чтобы купить хлеб). Цель цикла - потребление, качественное изменение потребительной стоимости. Сущность меняет форму, но общая ценность остается неизменной. Электротехнический изоморфизм - Конденсаторный фильтр. Это аналог пассивного переноса заряда или работы симметричного каскада в линейном режиме, где форма сигнала меняется с напряжения на ток и обратно, но никакой новой энергии (прибыли) не создается. * Товар0 - Первичный физический носитель (в электронике — физическое смещение, например, дырочная проводимость p-типа). * переход Деньги - Всеобщий эквивалент, среда обмена. Электронный аналог — электрический потенциал (напряжение). переход Товар1 (заряд) конвертируется в общее поле давления (деньги), чтобы затем снова превратиться в движение зарядов. Товар1 - Новый физический объект, конечная точка потребления (электронная проводимость n-типа). Суть аналогии сводится к следующему. Трансформация формы ради полезного действия. Как деньги здесь выступают лишь мимолетным посредником для обмена стула на хлеб, так и потенциал на затворе является лишь посредником для перетекания энергии из одного плеча схемы в другое.
Аналогия II. Формула (Деньги — Товар — Деньги с приростом). Это формула капитала. Деньги запускаются в оборот не ради потребления, а ради возвращения с приращением (Delta Д = Д1 - Д0, прибавочная стоимость). Это активный, самовозрастающий процесс (Инвестирование). Здесь электротехнический изоморфизм (Двухтактный активный каскад класса B/D), то есть полная аналогия работы комплементарного выходного каскада на транзисторах NPN (Д) и PNP (T), подключенных к внешнему источнику питания.
* Первичные Деньги - Входной слаботочный управляющий сигнал. Это инвестиционный капитал, который запускается в схему. * Переход в Товар - Процесс производства. Управляющий сигнал открывает транзистор противоположной полярности. Внутри кристалла (T, товарная фабрика) происходит физическая работа, под воздействием внешнего источника питания (аналог эксплуатации рабочей силы) лавинообразно генерируются новые носители заряда. * переход в (Деньги с приращением) - Выходной мощный сигнал. Мы получаем те же самые деньги (электрический сигнал той же формы), но их энергетическая масса (ток и мощность) колоссально возросла благодаря внешней накачке.
Прибавочная стоимость в электронике (Delta Д) - Это коэффициент усиления каскада (beta или h_{FE}). Мы вложили 1 мА тока (Д0), прогнали через транзисторную структуру (T) и получили на выходе 100 мА тока (Д1). Прирост взят из внешнего блока питания (окружающей среды / живого труда).
3. Комплементарность как Макроэкономический Баланс, в современных микросхемах построенных на парах из N-канальных и P-канальных полевых транзисторов. * Когда N-ключ открыт и тянет линию к "земле (0)", комплементарный P-ключ строго закрыт и изолирует "питание (+V)". Ток через схему в статике равен нулю. Энергия потребляется только в момент переключения (динамический сдвиг). * В экономике Маркса. Это идеальный баланс спроса и предложения в условиях равновесного рынка. Когда Денежный капитал (Д, N-канал) абсорбирует Товарную массу (T, P-канал), система находится в квазистационарном состоянии. Энергия (кризис или сверхприбыль) выделяется только в моменты тектонических переключений технологических укладов (фазовых переходов макроцикла).
------------------------------ Делаем вывод аналогии. В экономике, если нарушить баланс фаз T и Д, наступит кризис перепроизводства (схема захлебнется товаром, который нельзя конвертировать в деньги) или гиперинфляция (деньги потеряют связь с товарным субстратом). В электротехнике, если нарушить комплементарность пары (например, поставить мощный NPN-транзистор с высоким коэффициентом усиления и слабый PNP-транзистор с низким), наступит асимметрия полуволн сигнала (жесткие нелинейные искажения), постоянный ток потечет в нагрузку, и схема сгорит от перегрева.
"На фига козе баян ..."? У меня остались внутренние сомнения в правильности спроектированной логике в модулях: 1) Спроецировать эту аналогию на уравнение Беллмана в MDP, где Деньги — это Reward (награда), а Товар — State (состояние) 2) Математически точно наложить топологию компьютерного куба состояний 2^3 на экономический цикл капитала и физику комплементарного переключения.
И еще масса всякого интересного вскрывается, в прикладном прямом использовании природных операционных механизмов.
Пользователь
Сообщений: Регистрация: 15.06.2023
26.07.2026 18:51:04
Фантастика, как математически точно, топология куба состояний 2^3 накладывается на экономический цикл капитала и физику комплементарного переключения, описывая канонический гамильтонов цикл (или цикл Грея) по ребрам трехмерного куба (6 переходов), который идеально соответствует 6-фазной метаморфозе капитала Маркса или полному 6-тактному циклу трехфазного мостового инвертора в электротехнике. Препарируя вершины куба, определив их координаты и физико-экономическую суть фазового перехода, получаем.
А. Топология Куба Состояний 2^3 Каждое состояние системы описывается вектором из 3 бинарных координат: 1. Координата X (Товарная форма — T). Есть вещественный субстрат (1) или нет (0). 2. Координата Y (Денежная форма — Д). Есть ликвидная абстрактная ценность (1) или нет (0). 3. Координата Z (Производительная форма / Силовой потенциал — P). Запущена ли скрытая внутренняя работа/энергия (1) или система пассивна (0). Каждая вершина куба — это состояние триплета [X, Y, Z]. Всего их 2^3 = 8.
Разберу этот 6-шаговый цикл с предельной точностью, проследив за тем, как на каждом ребре куба меняется ровно один бит, одно физическое или экономическое состояние. Это классическое свойство кода Грея и Гамильтонова пути, система не может менять две сущности одновременно, метаморфоза всегда последовательна. Наши координаты в пространстве 2^3: [Товар (T), Деньги (Д), Производство/Потенциал (P)].
Шаг 1: [0, 1, 0] -> [1, 1, 0] — Акт инвестирования (Рыночная сделка) * Экономический смысл (Д -> Д + T): У инвестора были чистые деньги. Он выходит на рынок и покупает средства производства (станки, сырье) и нанимает рабочих. В момент заключения контрактов деньги еще не ушли полностью (авансированы), но товарные обязательства уже на балансе. * Электротехнический смысл: Это подача управляющего сигнала (напряжения) на затвор верхнего транзистора (N-канал). Ток в нагрузку еще не потек (пассивное состояние), но емкость затвора начинает заряжаться. Появляется "потенциал для обмена". * Изменение бита: Первый бит (Товар) переключается из 0 в 1. Вещество/субстрат вошло в систему.
Шаг 2: [1, 1, 0] -> [1, 0, 0] — Абсорбция капитала (Склад) * Экономический смысл (Д + T -> T): Расчеты завершены. Деньги полностью выплачены продавцам сырья и ушли из оборотного капитала предприятия. На балансе — чистый Товар (T=1), запертый на складе. Система пассивна (P=0), фабрика еще не работает, прибыли нет. Капитал временно "омертвлен" в веществе. * Электротехнический смысл: Затвор полностью заряжен, входные "деньги" (напряжение управления) зафиксированы. Транзистор перешел в проводящее состояние, его сопротивление упало до нуля. Но так как силовой контур питания еще закрыт внешним ключом, реального движения зарядов нет. Есть только готовый "канал проводимости" (T=1). * Изменение бита: Второй бит (Деньги) падает из 1 в 0. Ликвидность полностью исчезла, превратившись в физическую структуру.
Шаг 3: [1, 0, 0] -> [1, 0, 1] — Фаза производства (Накачка энергией) * Экономический смысл (T -> [T + P]): Директор нажимает на кнопку — фабрика запускается. Включаются станки, рабочие начинают тратить мускульную и интеллектуальную энергию. К пассивному товару (сырью) прикладывается живой труд (P=1). Начинается нелинейный процесс создания прибавочной стоимости. * Электротехнический смысл: Открывается главный силовой ключ (подается внешнее напряжение питания на сток/коллектор транзистора). Через уже подготовленный на Шаге 2 канал (T=1) устремляется мощный силовой ток. Кристалл транзистора переходит в режим активного насыщения. Происходит колоссальная перекачка энергии из внешнего источника питания в магнитное или электрическое поле нагрузки (например, индуктивности мотора). * Изменение бита: Третий бит (Производство/Потенциал) переключается из 0 в 1. Система приведена в движение, идет генерация избыточной энергии.
Шаг 4: [1, 0, 1] -> [0, 0, 1] — Финализация продукта (Консервация энергии) * Экономический смысл ([T + P] -> T'): Процесс производства завершен. Рабочие ушли домой, станки выключены. Исходное сырье уничтожено (T из 1 стало 0). Вместо него на складе лежит абсолютно новый товар (T'), обладающий более высокой стоимостью. Живой труд (P=1) прекратился как процесс, но он "вморожен", овеществлен в этом новом продукте. * Электротехнический смысл: Внешний силовой импульс прекращается. Ток через транзистор падает. Но накопленная в нагрузке (индуктивности) энергия не может исчезнуть в никуда. Она трансформируется. Наш транзистор закрывается, а накопленная энергия переходит в форму ЭДС самоиндукции (высокого напряжения на выходе). Ток "заперт" в поле нагрузки. * Изменение бита: Первый бит (Исходный товар) падает из 1 в 0. Старая форма вещества уничтожена ради рождения новой.
Шаг 5: [0, 0, 1] -> [0, 1, 1] — Выход на рынок (Реализация) * Экономический смысл (T' -> [T' + Д']): Предприятие везет готовый продукт на рынок для продажи. Появляются покупатели. Товар начинает обмениваться на золото/валюту. На этом коротком отрезке у нас одновременно есть и остатки высоколиквидного товара на складе, и приток новой, возросшей денежной массы (Д'=1). Система все еще находится под давлением рыночного цикла (P=1). * Электротехнический смысл: Открывается нижнее (комплементарное) плечо схемы — P-канальный транзистор. Накопленная на Шаге 4 энергия самоиндукции через этот открывшийся шлюз устремляется обратно в систему (или в цепь рекуперации). Энергия поля снова превращается в мощный электрический ток обратной полярности. * Изменение бита: Второй бит (Деньги) возвращается из 0 в 1. Система снова обретает ликвидность и денежную форму, но уже на более высоком энергетическом уровне.
Шаг 6: [0, 1, 1] -> [0, 1, 0] — Сброс прибыли и возврат в интервал * Экономический смысл ([T' + Д'] -> Д_{старт}): Товар полностью распродан (T'=0). Капиталист фиксирует прибыль (Д'). Чтобы запустить новый цикл, он забирает чистый избыток (прибавочную стоимость \Delta Д) себе на личное потребление (или выводит в резервный фонд). В оборотном капитале предприятия остается ровно та сумма первоначальных "чистых денег", которая необходима для повторения цикла. Завод засыпает (P=0) до следующего утра. Мы вернулись в точку [0, 1, 0]. * Электротехнический смысл: Энергия, запасенная в нагрузке, полностью отдана в цепь (потребителю). Ток упал до нуля. P-канальный транзистор закрывается. Схема полностью обесточена, потенциалы выровнены (P=0). На выходе — чистый ноль, система готова принять следующий управляющий импульс. * Изменение бита: Третий бит (Производство/Потенциал) падает из 1 в 0. Энергетический всплеск утилизирован, система вернулась в состояние покоя.
------------------------------ Анализ запрещенных вершин под углом этого цикла. Теперь, когда детально видим шаги, становится кристально ясно, почему система панически избегает двух точек: 1. [0, 0, 0] (Абсолютный ноль / Смерть системы): Чтобы попасть сюда, например, из Шага 3 [1, 0, 0], система должна мгновенно потерять Товар, не родив ни денег, ни энергии производства. Это эквивалентно физическому уничтожению завода (пожар, бомбежка) или мгновенной конфискации всех активов без компенсации. 2. [1, 1, 1] (Синхронный коллапс / Короткое замыкание): Посмотрите, как близко система подходит к этой опасной точке. На Шаге 1 [1, 1, 0] (Товар и Деньги уже есть) достаточно случайно подать потенциал производства (P -> 1), не дождавшись закрытия предыдущих шлюзов — и мы влетаем в [1, 1, 1]. Оба плеча открыты, деньги и товар горят одновременно в огне сквозного тока.
Пользователь
Сообщений: Регистрация: 15.06.2023
06.08.2026 17:21:38
Начну с конца, ответив, казалось бы на вечный философский вопрос, "Что первично? Курица или Яйцо?". Объективный ответ первичен - ЗАКОН СОХРАНЕНИЯ! Первичен не объект, а закон сохранения! Просто посмотрим на это с другой стороны, как на два взаимно дополнительных потока единой системы. Если это принимается, тогда все становится по своим местам. Сейчас покажу по чему это понимание не просто важно, а носит фундаментальный закон.
Как появляются события? Берём два состояния S(t) -> S(t+dt) => Разность Delta S Если изменение достаточно большое, рождается Событие (Event). Например Trend UP v DOWN рождает TREND_REVERSAL. Или Risk 0.42 v 0.91 рождает RISK_LIMIT_EXCEEDED. То есть Event становится не причиной, а именем перехода между двумя состояниями. Это гораздо ближе к теории автоматов.
С этой точки зрения, куб становится совершенно понятным. Теперь видно его место. Куб — это не пространство рынка. Куб — это дискретизация пространства состояний. То есть State -> Cube(State) Например непрерывное состояние Momentum = 0.83, Entropy = 0.28, Liquidity = 0.71 - после квантования 101. Именно поэтому куб не первичен. Он является измерительным прибором. Как АЦП (аналогово-цифровой преобразователь).
Но если посмотреть глубже, возникает вопрос: > А существует ли вообще Event как самостоятельная сущность? На мой взгляд — нет. В физике не существует "событий". Существует только непрерывная эволюция состояния. Событие появляется только тогда, когда наблюдатель говорит: > "Вот здесь произошло нечто существенное." То есть Event = Delta State или точнее Event = f(Delta S) где Delta S = S(t+Delta t) - S(t) Следовательно, Event — не первичный объект. Он производный. То есть событие рождается после построения состояния, а не до него. Event исчезает как фундаментальная сущность.
Принцип двойственного потока, то, что сформулировал про капитал: Д_0 -> Т -> Д_1 и Т_0 -> Д -> Т_1 оказалось не просто экономикой. Это универсальный закон управления. Любая система имеет два взаимосвязанных потока. Первый поток — информационный. Он отвечает на вопрос: > Что происходит? Второй поток — энергетический (ресурсный). Он отвечает: > Чем система может воздействовать? Получаем две ортогональные подсистемы. * Информационная Market Flow -> Market State -> Policy * Ресурсная Capital Flow -> Capital State -> Allocation Получается решение принимается не только относительно анализа рынка. Оно принимается совместно рынком и ресурсом.
Это можно выразить через декартово произведение автоматов. Теперь оно получает математический смысл. Если S_m — состояние рынка, а S_c — состояние капитала, то реальное управляющее состояние S = S_m х S_c. Но управляющее воздействие определяется не просто этим произведением. Появляется отображение A: S_m x S_c -> Intent Это и есть Allocation.
Но теперь видно, что одновременно существуют два независимых процесса. --Эволюция информации S_m(t) -> S_m(t+Delta t) --Эволюция ресурсов S_c(t) -> S_c(t+Delta t) Runtime должен синхронизировать их. То есть Runtime: (S_m,S_c) -> (S'_m,S'_c) при сохранении всех инвариантов. Теперь становится понятным Runtime. До этого утверждалось Runtime переводит State(t) -> State(t+dt)
И вот здесь появляется самый глубокий вывод. Мне кажется, всё это время искал минимальную архитектуру управляющей системы. А пришел к минимальной архитектуре "организованной материи". Потому что независимо от природы объекта всегда существуют четыре фундаментальные сущности: 1. "Поток вещества (или ресурса)" — что может быть преобразовано. 2. "Поток информации" — что описывает происходящее. 3. "Законы сохранения (инварианты)" — что нельзя нарушить. 4. "Оператор эволюции (Runtime)" — что синхронно изменяет оба потока во времени.
У себя сделал одно изменение по сравнению с тем, что строил раньше. Раньше рассматривали "Mission" как верхнюю сущность. Теперь можно утверждать, что выше Mission существует ещё более фундаментальное понятие. Закон сохранения. Именно он является первичным.
Миссия уже выбирается "внутри допустимого множества", определённого законами сохранения. В организме нельзя поставить миссию "жить без энергии". В автомобиле нельзя поставить миссию "ехать без топлива". В инвестиционной системе нельзя поставить миссию "удвоить капитал за секунду без принятия риска". То есть миссия не может противоречить фундаментальным ограничениям системы. Это очень хорошо согласуется исходной идеей: > "«Первичен не объект, а закон сохранения.»"
В торговой системе это означает принципиальный сдвиг, перестаём строить систему вокруг стратегии.
Стратегия становится лишь одной из реализаций миссии, миссия ограничивается инвариантами, а инварианты являются конкретным выражением фундаментальных законов сохранения капитала, риска, ликвидности и согласованности состояний.
На мой взгляд, именно здесь заканчивается этап поиска архитектуры и начинается этап построения "формальной аксиоматики MEO".
Если сформулировать 5–10 базовых аксиом (аналогично аксиомам механики или теории автоматов), то все остальные модули — Runtime, Observer, Policy, Allocation, OMS, RiskManager, EventStore — будут выводиться из них как теоремы, а не проектироваться независимо. Это и станет настоящим фундаментом не только всей системы, но и законом проектирования автоматических систем, отвечающих принципам живого организма. Это тот момент, где архитектура может стать значительно проще и математически красивее, а главное проектируемой сверху вниз.