Продолжаю разбирать kNN v2. В прошлый раз feature mining не сработал. Теперь проверяю гиперпараметры, но не хаотично, а по одному — с заморозкой всего остального.
Что заморожено: K=75, feature set — текущий кандидат из 10 фич, target = median(fwd_5d), bucket-механика, walk-forward, costs = 0.
N — сколько топ-инструментов берём в портфель на каждый день. Прогнал N ∈ {1, 2, 3, 4, 5, 7, 10}.
| N | IS Score | IS Calmar | IS CAGR | IS MDD | VAL Score |
|---|---|---|---|---|---|
| 1 | 2.1164 | 0.7200 | 58.43% | −81.16% | 2.1805 |
| 2 | 1.9501 | 0.5826 | 46.44% | −79.71% | 2.1683 |
| 3 | 2.3053 | 0.8577 | 45.97% | −53.60% | 2.2966 |
| 4 | 2.3698 | 0.9429 | 43.99% | −46.66% | 2.4222 |
| 5 | 2.0417 | 0.7826 | 36.48% | −46.61% | 2.5191 |
| 7 | 1.9244 | 0.7286 | 33.43% | −45.88% | 2.3967 |
| 10 | 1.7674 | 0.6463 | 30.79% | −47.64% | 2.5893 |
Что видно:
Плато на 3–4. N=3 и N=4 дают близкие IS Score (2.31 и 2.37). Обрыв на N=5.
N=1 и N=2 — высокая доходность, но глубокая просадка. N=1 даёт CAGR 58%, но MDD −81%. Это не торговля, это рулетка.
Привет, Smart-Lab. Я Данил, исследую рынок и торгую то, что наресёрчил. Это первый пост — сразу с материала, без прелюдий.
Задача. Есть kNN-бейзлайн для аллокации по 29 инструментам. Гипотеза: проблема в фичах. Решил прогнать полновесный greedy forward feature selection на 150 фичах. Логика: модель выбирает первую фичу с наибольшим Score, потом с одной фичей идёт по всему списку и выбирает вторую лучшую, и так далее — без предварительного стопа.
Что пошло не так на старте. Грид упал в баг: NaN-скоры для всех инструментов, включая BRENT, где всего 30% NaN. Причина оказалась в обработке состояния: state(t) с −1 либо пропускался, либо давал n_common = 0 при сравнении с аналогами. Починил, но осадок остался.
Результат greedy. 4085 секунд работы. Выбрана одна фича:
| Шаг | Фича | Score |
|---|---|---|
| 1 | VOL_OF_VOL_20 | 1.8090 |
На второй итерации лучшая фича дала improvement −0.0616. Стоп по условию improvement < 0.001. 149 фич прогнаны впустую.
Диагностика. Прогнал распределение корреляций P&L субмоделей. 10878 пар: