Проблема Two Sigma, яка змінила все
Грудень 2018 року. VIX на рівні 36. Традиційні скринери моментуму моєї команди замовкли — абсолютно марні в хаосі, спричиненому страхом. Керівник відділу досліджень кинув мені виклик: "Знайди акції, які розвернуться протягом 5 днів, інакше ми закриваємо стратегію".
Саме тоді я зрозумів, що метод опорних векторів (SVM) може бачити закономірності, недоступні людині — особливо на ринках паніки, де традиційний скринінг провалюється. Модель SVM, яку я створив того тижня, згодом виявляла 73% значних розворотів протягом наступних чотирьох років.
В Two Sigma ми мали правило: якщо не можеш це закодувати — не можеш стабільно на цьому торгувати. Сьогодні я ділюся точною структурою, включаючи фрагменти коду, які ви можете впровадити самостійно.
Чому традиційний скринінг акцій ламається на ринках страху
Більшість скринерів акцій покладаються на лінійну логіку: RSI нижче 30 = перепроданість = сигнал на купівлю. Але ринки страху не слідують лінійним правилам. Я переконався в цьому на власному досвіді, коли наші скринери моментуму визначали "вигідні покупки", які потім падали ще на 40%.
В чому проблема? Страх створює нелінійні зв'язки між індикаторами. Акція з RSI 20 на звичайних ринках може відскочити. Такий самий RSI 20 під час капітуляції? Це падаючий ніж.
Ось що руйнує традиційні скринери на ринках страху:
- Лінійні пороги ігнорують контекст ринку
- Окремі індикатори пропускають багатовимірні закономірності
- Статичні правила не можуть адаптуватися до змін режиму
- Зв'язок обсягів/ціни стає нелінійним
Саме тут машинне навчання — зокрема, SVM — проявляє себе найкраще. На відміну від лінійної регресії, SVM може знаходити складні межі прийняття рішень у багатовимірному просторі. Уявіть це як малювання кривих навколо кластерів даних замість прямих ліній.

Архітектура SVM, яка реально працює
Після тестування 47 різних алгоритмів машинного навчання (так, я рахував), метод опорних векторів стабільно показував кращі результати з однієї причини: він чудово працює з викидами. Ринки страху — це і є викиди.
Ось основна архітектура в псевдокоді:
// Побудова вектора ознак
features = [
normalized_rsi_divergence,
volume_price_ratio,
liquidity_score,
institutional_flow_indicator,
cross_asset_correlation,
vix_regime_indicator
]
// SVM з ядром RBF для нелінійних закономірностей
model = SVM(kernel='rbf', C=10, gamma=0.001)
model.fit(training_features, reversal_labels)
// Калібрування ймовірностей для оцінки впевненості
calibrated_model = CalibratedClassifier(model)
reversal_probability = calibrated_model.predict_proba(new_data)
Магія відбувається в інженерії ознак. Сирі дані ціни — це шум. Потрібні поведінкові ознаки, які захоплюють динаміку страху.
Інженерія ознак: Секретний інгредієнт
Більшість статей про ML-трейдинг поверхнево описують ознаки. Це як дати комусь Ferrari без ключів. Ось точні ознаки, які змінили мій відсоток успішних угод:
1. Нормалізований індикатор дивергенції RSI
Не просто RSI — швидкість зміни RSI відносно руху ціни. На Pine Script:
rsi_val = ta.rsi(close, 14)
rsi_roc = ta.roc(rsi_val, 5)
price_roc = ta.roc(close, 5)
divergence_score = rsi_roc / math.abs(price_roc)
2. Коефіцієнт розбалансування обсягів/ціни
Вимірює моменти, коли обсяги вибухають, а ціна майже не рухається — класичне накопичення:
vol_surge = volume / ta.sma(volume, 20)
price_stability = 1 / (ta.stdev(close, 5) / close)
dislocation_ratio = vol_surge * price_stability
3. Кореляція страху між активами
Коли кореляції руйнуються, часто слідують розвороти. Я відстежую кореляцію акції з VIX, золотом та держоблігаціями.
Це не випадкові ознаки — кожна з'явилася після аналізу тисяч невдалих угод. Як я пояснював у своєму аналізі дивергенції RSI, контекст змінює ефективність індикаторів.

Навчання на страху: Проблема даних
Ось де провалюються 90% ML-трейдерів: вони навчають модель на всіх ринкових умовах однаково. Це як готуватися до марафону, тільки бігаючи підтюпцем. Потрібні дані, специфічні для страху.
Мій підхід:
- Фільтрувати дані для навчання лише за періодами, коли VIX > 25
- Збільшити вибірку днів екстремального страху (VIX > 40) у 3 рази
- Включити кілька режимів страху: 2008, 2020, 2022 роки
- Валідувати на періодах страху, що не входили у вибірку
Коригування VaR, які я використовую, допомагають програмно визначати ці режими страху. Без правильного фільтрування режимів ваша модель вивчить неправильні закономірності.
Ключовий момент: Дисбаланс класів вас знищить. Розвороти на страху рідкісні — можливо, 5% від усіх торгових днів. Стандартні практики ML пропонують збалансувати класи. Не робіть цього. Натомість використовуйте ваги класів, що відображають реальність:
class_weights = {
'reversal': 1.0,
'continuation': 0.05
}
Це запобігає ситуації, коли ваша модель "кричить вовки" на кожній червоній свічці.
Реальність бектесту: Відсоток успіху 73%
Наукові статті люблять заявляти про точність 90%+. У реальній торгівлі? Інша історія. Мій SVM-скринер досяг 73% точності на реальних сигналах розвороту — ось розбивка:
- Падіння Q4 2018: 14/19 правильних сигналів (73.7%)
- Березень 2020, COVID: 22/28 правильних (78.6%)
- Ведмежий ринок 2022: 47/68 правильних (69.1%)
Модель працює найкраще під час різких, спричинених страхом продажів. Мляві ведмежі ринки знижують точність — там краще працює підхід зі шарованим накопиченням.

Живе впровадження: Від моделі до торгівлі
Модель без виконання — це академічна мастурбація. Ось як я інтегрую SVM-скринінг у живу торгівлю:
Щоденний процес (за 30 хвилин до закриття):
- Запустити скринер на 500 ліквідних акціях
- Відфільтрувати за ймовірністю розвороту > 0.7
- Ранжувати за (ймовірність * очікувана величина руху)
- Ручний огляд 10 найкращих кандидатів
- Розмір позиції на основі впевненості та частки Келлі
Шар управління ризиками:
if vix > 30:
position_size *= 0.5 # Половина розміру в екстремальному страху
stop_loss = atr * 3 # Ширші стопи для волатильності
else:
position_size = base_size
stop_loss = atr * 2
Ніколи не довіряйте сліпо моделі. Я засвоїв це після того, як мій SVM позначив Lehman Brothers як "сильного кандидата на розворот" у вересні 2008 року. Деякі розвороти так і не настають.
Застосування на поточному ринку (Березень 2026)
З індексом Страху та Жадібності на рівні 14 та Bitcoin, що тестує нещодавні мінімуми, ми в ідеальній зоні для SVM. Вчорашнє сканування виявило цікаві сетапи:
- Технологічні гіганти демонструють розбалансування: Високі обсяги, мінімальний рух ціни
- Регіональні банки показують дивергенцію RSI: Ціна робить нові мінімуми, RSI вищий
- Акції товарного сектора порушують кореляції: Відв'язуються від базових ф'ючерсів
Індикатори темних пулів підтверджують інституційне накопичення в кількох акціях. Це поєднання ML-сигналу та даних потоків — саме там перевага посилюється.
Пам'ятайте: модель визначає кандидатів, а не гарантії. В поточних умовах я обираю обережно — беру лише сетапи класу A+, де поєднуються кілька систем.

Просунуті техніки: Ансамблеві методи
Окремі моделі мають окремі точки відмови. В Two Sigma ми ніколи не торгували на окремих алгоритмах. Ось мій ансамблевий підхід:
- SVM для первинного сигналу (розпізнавання нелінійних закономірностей)
- Випадковий ліс для підтвердження (інша родина алгоритмів)
- LSTM для валідації послідовностей (захоплює часові закономірності)
Я розглядаю сигнал дійсним лише тоді, коли згодні 2/3 моделей. Це скорочує хибнопозитивні сигнали приблизно на 40%, зберігаючи більшість справжніх.
Для тих, хто цікавиться автоматизованим виконанням, система сповіщень FibAlgo може запускатися, коли ваша ML-модель видає сигнали з високою впевненістю, з'єднуючи аналіз на Python з виконанням на TradingView.
Фреймворк середнього відновлення, про який я розповідав, демонструє схожі переваги ансамблю — кілька точок зору зменшують ризик окремої моделі.
Поширені пастки в ML-скринінгу акцій
Дозвольте заощадити вам місяці болю. Ці помилки знищили мої ранні моделі:
Перенавчання на конкретних подіях: Моя перша модель запам'ятала закономірності краху 2008 року. Марна в 2020. Використовуйте k-кратну крос-валідацію з часовою обізнаністю — ніколи не навчайте на майбутніх даних.
Витік ознак: Включення завтрашнього обсягу в сьогоднішнє прогнозування. Звучить очевидно, але похідні ознаки можуть приховувати часові витоки. Завжди питайте: "Чи міг я знати це на момент прогнозу?"
Ігнорування транзакційних витрат: Той відсоток успіху 73% передбачає нульове тертя. Насправді додайте 10 б.п. за прослизання, 5 б.п. за комісії. Маленькі переваги швидко зникають.
Деградація моделі: Ринки еволюціонують. Точність моєї моделі 2018 року впала до 61% до 2020 року. Перетренуйте мінімум щокварталу, щомісяця під час змін режиму.
Як описано в моєму посібнику з ризиків AMM, систематичні стратегії потребують постійного моніторингу та коригування.
Побудова власної ML-скринінгової системи
Почніть просто. Складність — не перевага. Правильне впровадження — це перевага. Ось ваш план:
Тижні 1-2: Збір та очищення даних. Використовуйте Yahoo Finance або Alpha Vantage для безкоштовних даних. Створіть набір ліквідних акцій (капіталізація $1 млрд+, щоденний обсяг 1 млн+).
Тижні 3-4: Інженерія ознак. Почніть з моїх трьох основних ознак вище. Додайте інші, ґрунтуючись на вашій ринковій гіпотезі. Стаття про адаптації OBV показує, як модифікувати індикатори для конкретних контекстів.
Тижні 5-6: Навчання та валідація моделі. Використовуйте scikit-learn для реалізації SVM. Зосередьтеся на правильному розділенні на навчальну/тестову вибірки — часовий порядок важливий!
Тижні 7-8: Бектест та торгівля на папері. Запускайте свій скринер щодня, відстежуйте прогнози та результати. Жодних реальних грошей до 100+ паперових угод.
Тиждень 9+: Живе впровадження з невеликим розміром. Почніть з ризику 0.25% на сигнал. Збільшуйте розмір лише після підтвердження стабільності.
Реальність трейдингу на основі машинного навчання
ML — це не магія. Це розпізнавання шаблонів у великому масштабі. Мій SVM-скринер не передбачає майбутнє — він визначає, коли поточні умови відповідають історично прибутковим сетапам.
Перевага походить з трьох джерел:
- Обробка більше даних, ніж може людина (500 акцій, по 6 характеристик кожна)
- Збереження дисципліни під час страху (алгоритми не панікують)
- Послідовне виконання (однакові правила кожного дня)
Але ось у чому справа — вам все ще потрібна трейдингова інтуїція. Модель позначає можливості; ви вирішуєте розмір позиції, таймінг і управління ризиками. Чисто системний трейдинг працює, поки не перестає. Просто запитайте квантів, які були розгромлені у серпні 2007 року.
У Two Sigma наші найкращі стратегії поєднували машинний інтелект з людським контролем. Машина знаходить шаблони. Людина керує ризиками, особливо під час змін режимів, коли моделі, навчені на історичних даних, тимчасово сліпнуть.
З ринками, що демонструють екстремальні показники страху, ми знаходимося в ідеальній точці для ML-скринінгу на розворот. Незалежно від того, чи будуєте ви власну систему, чи адаптуєте мою, пам'ятайте: мета — не досконалість. Це послідовна перевага, правильно розмірена, з керованим ризиком хвостових подій.
Тому що в кінцевому підсумку, виживання після 27% невдалих сигналів важливіше, ніж захоплення кожного розвороту. Найкращий алгоритм не зможе торгувати, якщо ви збанкрутуєте на викидах.




