build 039: complete Quotes Feed migration foundation
This commit is contained in:
395
docs/reference_model/knowledge_architecture_charter_v1.1.md
Normal file
395
docs/reference_model/knowledge_architecture_charter_v1.1.md
Normal file
@@ -0,0 +1,395 @@
|
||||
# Dzentra Knowledge Architecture Charter
|
||||
|
||||
**Версия:** 1.1\
|
||||
**Статус:** Release\
|
||||
**Проект:** Dzentra\
|
||||
**Подсистема:** Market Intelligence
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
# Цель
|
||||
|
||||
Настоящий документ определяет фундаментальные принципы разработки
|
||||
Knowledge Architecture проекта Dzentra.
|
||||
|
||||
Knowledge Architecture определяет правила построения моделей знаний,
|
||||
архитектурных стандартов и инженерной документации проекта Dzentra.
|
||||
|
||||
Все последующие архитектурные решения, документы, спецификации, Engine и
|
||||
программный код должны соответствовать настоящему Charter.
|
||||
|
||||
При возникновении противоречий настоящий документ имеет наивысший
|
||||
приоритет среди документов Knowledge Architecture.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
# 1. Главная цель Dzentra
|
||||
|
||||
Главная задача Dzentra --- не предсказывать рынок.
|
||||
|
||||
Главная задача Dzentra --- максимально достоверно моделировать текущее
|
||||
состояние наблюдаемого рынка.
|
||||
|
||||
Торговое решение является следствием качества этой модели, а не целью
|
||||
самой модели.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
# 2. Главная философия
|
||||
|
||||
Dzentra не является системой, принимающей решения на основании отдельных
|
||||
индикаторов.
|
||||
|
||||
Dzentra является системой построения модели рынка.
|
||||
|
||||
Переход осуществляется от подхода:
|
||||
|
||||
``` text
|
||||
Индикатор
|
||||
↓
|
||||
Сигнал
|
||||
↓
|
||||
Сделка
|
||||
```
|
||||
|
||||
к подходу:
|
||||
|
||||
``` text
|
||||
Наблюдение
|
||||
↓
|
||||
Свойства
|
||||
↓
|
||||
Состояния
|
||||
↓
|
||||
Контекст
|
||||
↓
|
||||
Модель рынка
|
||||
↓
|
||||
Decision
|
||||
↓
|
||||
Execution
|
||||
```
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
# 3. Архитектура платформы
|
||||
|
||||
Утверждённая архитектура верхнего уровня:
|
||||
|
||||
``` text
|
||||
Market Data
|
||||
│
|
||||
▼
|
||||
Market Intelligence
|
||||
│
|
||||
▼
|
||||
Decision
|
||||
│
|
||||
▼
|
||||
Execution
|
||||
│
|
||||
▼
|
||||
Exchange
|
||||
```
|
||||
|
||||
Данная архитектура не пересматривается без выпуска новой версии
|
||||
архитектурного стандарта.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
# 4. Разделение ответственности
|
||||
|
||||
- **Market Intelligence** отвечает исключительно за построение модели
|
||||
наблюдаемого рынка.
|
||||
- **Decision** отвечает исключительно за принятие торгового решения.
|
||||
- **Execution** отвечает исключительно за исполнение принятого
|
||||
решения.
|
||||
|
||||
Никакой слой не должен выполнять функции другого слоя.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
# 5. Архитектура знаний
|
||||
|
||||
Разработка начинается с предметной области.
|
||||
|
||||
Обязательная последовательность:
|
||||
|
||||
``` text
|
||||
Предметная область
|
||||
↓
|
||||
Reference Model
|
||||
↓
|
||||
Knowledge References
|
||||
↓
|
||||
Engine Specifications
|
||||
↓
|
||||
Runtime Contracts
|
||||
↓
|
||||
Build Tasks
|
||||
↓
|
||||
Code
|
||||
↓
|
||||
Tests
|
||||
```
|
||||
|
||||
Ни один этап не должен пропускаться.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
# 6. Документация определяет код
|
||||
|
||||
Документация является единственным источником истины.
|
||||
|
||||
Код является реализацией документации.
|
||||
|
||||
Если код противоречит документации, код приводится в соответствие с
|
||||
документацией.
|
||||
|
||||
Документация не изменяется ради существующей реализации.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
# 7. Принципы построения документации
|
||||
|
||||
Документы Knowledge Architecture являются инженерными стандартами.
|
||||
|
||||
Документация должна быть:
|
||||
|
||||
- нормативной;
|
||||
- однозначной;
|
||||
- самодостаточной;
|
||||
- внутренне непротиворечивой;
|
||||
- независимой от реализации.
|
||||
|
||||
Каждое утверждение включается только в том случае, если оно необходимо
|
||||
для дальнейшего проектирования системы.
|
||||
|
||||
## Принцип читаемости
|
||||
|
||||
Документы разрабатываются по принципам инженерных стандартов, но пишутся
|
||||
простым профессиональным языком.
|
||||
|
||||
Текст должен быть:
|
||||
|
||||
- точным;
|
||||
- логически последовательным;
|
||||
- понятным специалисту предметной области;
|
||||
- свободным от излишнего канцелярита.
|
||||
|
||||
Строгость не должна ухудшать читаемость.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
# 8. Reference Model
|
||||
|
||||
Reference Model описывает исключительно предметную область.
|
||||
|
||||
Reference Model:
|
||||
|
||||
- описывает знания о рынке;
|
||||
- не описывает программную реализацию;
|
||||
- не описывает алгоритмы;
|
||||
- не описывает конкретные индикаторы;
|
||||
- не определяет распределение ответственности между Engine;
|
||||
- не определяет способы вычислений.
|
||||
|
||||
Reference Model отвечает на вопрос:
|
||||
|
||||
> Что существует в предметной области и какие знания могут быть
|
||||
> получены?
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
# 9. Принцип проектирования
|
||||
|
||||
Сначала определяется:
|
||||
|
||||
1. что существует;
|
||||
2. какие знания можно получить;
|
||||
3. как знания связаны;
|
||||
4. какой Engine отвечает за конкретный домен;
|
||||
5. как реализовать систему.
|
||||
|
||||
Никогда наоборот.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
# 10. Engine
|
||||
|
||||
Каждый Engine отвечает только за один домен знаний.
|
||||
|
||||
Engine никогда не принимает торговых решений.
|
||||
|
||||
Engine возвращает исключительно знания.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
# 11. Decision
|
||||
|
||||
Decision объединяет результаты Engine и формирует торговое решение.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
# 12. Execution
|
||||
|
||||
Execution не анализирует рынок.
|
||||
|
||||
Execution выполняет принятое решение.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
# 13. Терминология
|
||||
|
||||
Каждый термин имеет одно официальное определение.
|
||||
|
||||
Использование нескольких терминов для обозначения одного понятия не
|
||||
допускается.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
# 14. Принцип последовательности
|
||||
|
||||
Любое понятие может использовать только термины, определённые ранее.
|
||||
|
||||
Использование неопределённых понятий запрещается.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
# 15. Иерархия знаний
|
||||
|
||||
``` text
|
||||
Рынок
|
||||
↓
|
||||
Наблюдение
|
||||
↓
|
||||
Свойство
|
||||
↓
|
||||
Состояние
|
||||
↓
|
||||
Контекст
|
||||
↓
|
||||
Оценка
|
||||
↓
|
||||
Решение
|
||||
```
|
||||
|
||||
Переход между уровнями является односторонним.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
# 16. Принцип объективности
|
||||
|
||||
Reference Model описывает рынок независимо от наблюдателя.
|
||||
|
||||
Market Intelligence строит внутреннюю модель наблюдаемого рынка.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
# 17. Независимость предметной области
|
||||
|
||||
Определения предметной области не должны зависеть от:
|
||||
|
||||
- формата данных;
|
||||
- биржи;
|
||||
- таймфрейма;
|
||||
- языка программирования;
|
||||
- способов реализации.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
# 18. Наблюдаемость
|
||||
|
||||
Любое знание должно быть основано:
|
||||
|
||||
- на наблюдаемых свойствах рынка;
|
||||
- либо на логически выводимых следствиях.
|
||||
|
||||
Предположения о намерениях участников рынка не входят в модель знаний.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
# 19. Академическая строгость
|
||||
|
||||
Необходимо различать:
|
||||
|
||||
- наблюдения;
|
||||
- свойства;
|
||||
- состояния;
|
||||
- контекст;
|
||||
- вероятностные оценки;
|
||||
- торговые решения.
|
||||
|
||||
Эти уровни не смешиваются.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
# 20. Независимость от школ анализа
|
||||
|
||||
Dzentra может использовать идеи различных профессиональных подходов при
|
||||
условии их рациональной и наблюдаемой обоснованности.
|
||||
|
||||
Ни одна школа анализа не является официальной моделью Dzentra.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
# 21. Жизненный цикл документации
|
||||
|
||||
Каждый документ проходит стадии:
|
||||
|
||||
``` text
|
||||
Draft
|
||||
↓
|
||||
Review
|
||||
↓
|
||||
Release
|
||||
↓
|
||||
Evolution
|
||||
```
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
# 22. Методология разработки документов
|
||||
|
||||
Сначала проектируется структура документа.
|
||||
|
||||
После утверждения структуры главы разрабатываются последовательно и
|
||||
проходят архитектурную проверку до утверждения.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
# 23. Главный принцип проекта
|
||||
|
||||
> Документация Dzentra не описывает код. Документация Dzentra определяет
|
||||
> код.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
# 24. Методологический приоритет
|
||||
|
||||
Приоритеты Knowledge Architecture:
|
||||
|
||||
1. Архитектурная целостность.
|
||||
2. Корректность модели предметной области.
|
||||
3. Масштабируемость.
|
||||
4. Простота реализации.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
# 25. Цель Knowledge Architecture
|
||||
|
||||
Создать формальную, внутренне непротиворечивую и масштабируемую модель
|
||||
знаний о рынке, которая станет фундаментом всех будущих компонентов
|
||||
Dzentra независимо от языка программирования, реализации и алгоритмов.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
# 26. Эволюция Charter
|
||||
|
||||
Настоящий Charter является конституцией Knowledge Architecture.
|
||||
|
||||
В него включаются только универсальные принципы, сохраняющие
|
||||
актуальность независимо от этапа разработки и конкретной реализации.
|
||||
|
||||
Изменение Charter допускается только после архитектурного обсуждения и
|
||||
выпуска новой версии.
|
||||
Reference in New Issue
Block a user