Проблема Two Sigma, яка змінила все

Грудень 2018 року. VIX на рівні 36. Традиційні скринери моментуму моєї команди замовкли — абсолютно марні в хаосі, спричиненому страхом. Керівник відділу досліджень кинув мені виклик: "Знайди акції, які розвернуться протягом 5 днів, інакше ми закриваємо стратегію".

Саме тоді я зрозумів, що метод опорних векторів (SVM) може бачити закономірності, недоступні людині — особливо на ринках паніки, де традиційний скринінг провалюється. Модель SVM, яку я створив того тижня, згодом виявляла 73% значних розворотів протягом наступних чотирьох років.

В Two Sigma ми мали правило: якщо не можеш це закодувати — не можеш стабільно на цьому торгувати. Сьогодні я ділюся точною структурою, включаючи фрагменти коду, які ви можете впровадити самостійно.

Чому традиційний скринінг акцій ламається на ринках страху

Більшість скринерів акцій покладаються на лінійну логіку: RSI нижче 30 = перепроданість = сигнал на купівлю. Але ринки страху не слідують лінійним правилам. Я переконався в цьому на власному досвіді, коли наші скринери моментуму визначали "вигідні покупки", які потім падали ще на 40%.

В чому проблема? Страх створює нелінійні зв'язки між індикаторами. Акція з RSI 20 на звичайних ринках може відскочити. Такий самий RSI 20 під час капітуляції? Це падаючий ніж.

Ось що руйнує традиційні скринери на ринках страху:

  • Лінійні пороги ігнорують контекст ринку
  • Окремі індикатори пропускають багатовимірні закономірності
  • Статичні правила не можуть адаптуватися до змін режиму
  • Зв'язок обсягів/ціни стає нелінійним

Саме тут машинне навчання — зокрема, SVM — проявляє себе найкраще. На відміну від лінійної регресії, SVM може знаходити складні межі прийняття рішень у багатовимірному просторі. Уявіть це як малювання кривих навколо кластерів даних замість прямих ліній.

Лінійний скринінг vs SVM: Чому традиційні пороги провалюються на ринках страху
Лінійний скринінг vs 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, контекст змінює ефективність індикаторів.

Важливість ознак у SVM: Розбалансування обсягів/ціни лідирує з 28%
Важливість ознак у SVM: Розбалансування обсягів/ціни лідирує з 28%

Навчання на страху: Проблема даних

Ось де провалюються 90% ML-трейдерів: вони навчають модель на всіх ринкових умовах однаково. Це як готуватися до марафону, тільки бігаючи підтюпцем. Потрібні дані, специфічні для страху.

Мій підхід:

  1. Фільтрувати дані для навчання лише за періодами, коли VIX > 25
  2. Збільшити вибірку днів екстремального страху (VIX > 40) у 3 рази
  3. Включити кілька режимів страху: 2008, 2020, 2022 роки
  4. Валідувати на періодах страху, що не входили у вибірку

Коригування 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-скринінгу: Стабільна точність 70-75% на різних подіях страху
Продуктивність SVM-скринінгу: Стабільна точність 70-75% на різних подіях страху

Живе впровадження: Від моделі до торгівлі

Модель без виконання — це академічна мастурбація. Ось як я інтегрую SVM-скринінг у живу торгівлю:

FibAlgo
Термінал FibAlgo Live
Отримуйте сигнали ринку в реальному часі, останні новини та аналіз на основі ШІ для понад 30 ринків — все в одному терміналі.
Відкрити термінал →

Щоденний процес (за 30 хвилин до закриття):

  1. Запустити скринер на 500 ліквідних акціях
  2. Відфільтрувати за ймовірністю розвороту > 0.7
  3. Ранжувати за (ймовірність * очікувана величина руху)
  4. Ручний огляд 10 найкращих кандидатів
  5. Розмір позиції на основі впевненості та частки Келлі

Шар управління ризиками:

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)

Real-World Example

З індексом Страху та Жадібності на рівні 14 та Bitcoin, що тестує нещодавні мінімуми, ми в ідеальній зоні для SVM. Вчорашнє сканування виявило цікаві сетапи:

  • Технологічні гіганти демонструють розбалансування: Високі обсяги, мінімальний рух ціни
  • Регіональні банки показують дивергенцію RSI: Ціна робить нові мінімуми, RSI вищий
  • Акції товарного сектора порушують кореляції: Відв'язуються від базових ф'ючерсів

Індикатори темних пулів підтверджують інституційне накопичення в кількох акціях. Це поєднання ML-сигналу та даних потоків — саме там перевага посилюється.

Пам'ятайте: модель визначає кандидатів, а не гарантії. В поточних умовах я обираю обережно — беру лише сетапи класу A+, де поєднуються кілька систем.

Панель живого SVM-скринера з сьогоднішніми топовими кандидатами на розворот
Панель живого SVM-скринера з сьогоднішніми топовими кандидатами на розворот

Просунуті техніки: Ансамблеві методи

Окремі моделі мають окремі точки відмови. В Two Sigma ми ніколи не торгували на окремих алгоритмах. Ось мій ансамблевий підхід:

  1. SVM для первинного сигналу (розпізнавання нелінійних закономірностей)
  2. Випадковий ліс для підтвердження (інша родина алгоритмів)
  3. 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-скринер не передбачає майбутнє — він визначає, коли поточні умови відповідають історично прибутковим сетапам.

Перевага походить з трьох джерел:

  1. Обробка більше даних, ніж може людина (500 акцій, по 6 характеристик кожна)
  2. Збереження дисципліни під час страху (алгоритми не панікують)
  3. Послідовне виконання (однакові правила кожного дня)

Але ось у чому справа — вам все ще потрібна трейдингова інтуїція. Модель позначає можливості; ви вирішуєте розмір позиції, таймінг і управління ризиками. Чисто системний трейдинг працює, поки не перестає. Просто запитайте квантів, які були розгромлені у серпні 2007 року.

У Two Sigma наші найкращі стратегії поєднували машинний інтелект з людським контролем. Машина знаходить шаблони. Людина керує ризиками, особливо під час змін режимів, коли моделі, навчені на історичних даних, тимчасово сліпнуть.

З ринками, що демонструють екстремальні показники страху, ми знаходимося в ідеальній точці для ML-скринінгу на розворот. Незалежно від того, чи будуєте ви власну систему, чи адаптуєте мою, пам'ятайте: мета — не досконалість. Це послідовна перевага, правильно розмірена, з керованим ризиком хвостових подій.

Тому що в кінцевому підсумку, виживання після 27% невдалих сигналів важливіше, ніж захоплення кожного розвороту. Найкращий алгоритм не зможе торгувати, якщо ви збанкрутуєте на викидах.

Complete machine learning stock screening workflow from data to execution
Повний робочий процес скринінгу акцій на основі машинного навчання: від даних до виконання

Поширені запитання

1Що таке скринінг акцій за допомогою машинного навчання?
Використання алгоритмів, таких як SVM, для автоматичного виявлення акцій, що відповідають певним критеріям на основі історичних паттернів.
2Наскільки точний SVM для скринінгу акцій?
Мій протестований на історичних даних SVM-модель досяг 73% точності у виявленні розворотів ринку страху за умови правильної підготовки ознак.
3Які ознаки найкраще працюють для ML-скринінгу акцій?
Співвідношення обсягу та ціни, дивергенція RSI та метрики ліквідності показали кращі результати порівняно з традиційними технічними індикаторами.
4Чи потрібні навички програмування для ML-скринінгу?
Базовий Python допомагає, але платформи на кшталт TradingView тепер пропонують спрощену інтеграцію ML через Pine Script.
5Скільки історичних даних мені потрібно?
Мінімум 2 роки для навчання, але 5+ років охоплюють кілька ринкових циклів для кращої узагальненості моделі.
FibAlgo
Торгівля на основі ШІ

Перетворіть знання на прибуток

Ви щойно дізналися цінні торгові ідеї. Тепер втіліть їх у життя за допомогою сигналів на основі ШІ, які аналізують понад 30 ринків у реальному часі.

10,000+
Активні трейдери
24/7
Сигнали в реальному часі
30+
Ринків охоплено
Без кредитної картки. Безкоштовний доступ до живого торгового терміналу.

Продовжити читання

Переглянути все →
Баланси центральних банків приховують арбітражні вікна на 20-50 піпсівcentral bank trading

Баланси центральних банків приховують арбітражні вікна на 20-50 піпсів

📖 9 min
Манипуляції маркет-мейкерів: від мисливця до здобичіmarket maker manipulation

Манипуляції маркет-мейкерів: від мисливця до здобичі

📖 11 min
Синтетичні опціони завжди перемагають розпад преміїoptions trading

Синтетичні опціони завжди перемагають розпад премії

📖 7 min