сучасний метод машинного навчання – GAM (Generalized Additive Model), тобто узагальнена адитивна модель

Що таке модель GAM і як її застосовувати

Аналіз та прогнозування криптовалют – завдання не з простих. Ринок дуже волатильний, а поведінка цін може змінюватися під впливом безлічі факторів. У нашій платформі для кількісного аналізу присутній сучасний метод машинного навчання – GAM (Generalized Additive Model), тобто узагальнена адитивна модель.

Звучить на перший погляд складно, але я спробую пояснити людською мовою, що це означає і як з цим працювати. Ми розглянемо, що таке модель GAM, як вона використовується для прогнозування криптовалют, та як налаштування моделі впливають на результат.

А також, ви дізнаєтесь основи використання цієї моделі у платформі та зможете впевненіше експериментувати з цим інструментом для отримання кращих прогнозів.

Що таке ця узагальнена адитивна модель? Generalized Additive Model (GAM) – це тип моделі машинного навчання, яка прогнозує цільову змінну (в нашому випадку, майбутню ціну) як суму впливів кількох факторів. Ключове слово – адитивна, тобто результат моделі складається з декількох компонент, кожна з яких відповідає окремому вхідному параметру (фактору). На відміну від простої лінійної моделі, де вплив кожного фактору є лінійним, GAM дозволяє кожному фактору впливати нелінійно – тобто за допомогою гнучкої кривої.

Уявімо простіше: скажімо, ми хочемо прогнозувати ціну біткоїна на основі його історичної ціни, об’єму торгів та, наприклад, відкритого інтересу ф’ючерсів. Модель GAM побудує окремо:

  • криву, що описує, як історична ціна впливає на майбутню ціну (це може виявити, наприклад, трендові ефекти чи цикли);
  • криву для об’єму торгів, що показує, як об’єм сприяє росту чи падінню ціни;
  • криву для відкритого інтересу, що характеризує вплив кількості відкритих позицій на динаміку ціни.

Потім модель складає ці впливи разом, отримуючи фінальний прогноз. Тому GAM може вловлювати досить складні нелінійні закономірності.

Звісно, GAM – не магія. Вона не враховує автоматично взаємодію між факторами, оскільки вона адитивна: кожен фактор впливає окремо. Але зате вона добре підходить, коли ви припускаєте, що кожен із факторів має свій власний внесок у рух ціни, і хочете цей внесок побачити та використати для прогнозу. Для ринку криптовалют це корисно: можна розділити, скажімо, вплив загального цінового тренду і вплив об’єму, який часто сигналізує силу руху ринку.

платформі Quantitative Research Lab блок “GAM” дає можливість налаштувати цю модель під ваш аналіз

Давайте розглянемо налаштування GAM на нашій платформі. У платформі Quantitative Research Lab блок “GAM” дає можливість налаштувати цю модель під ваш аналіз. Тому, розберемо основні параметри і як вони впливають на результати прогнозу.

Активувати GAM: Спершу, щоб модель GAM взагалі використовувалася, треба поставити галочку «Задіяти GAM в аналізі» у відповідному блоці налаштувань. Без цього платформа не використовує цю модель.

щоб модель GAM взагалі використовувалася, треба поставити галочку «Задіяти GAM в аналізі»

Довжина вектору це– скільки останніх значень ціни (і інших показників, якщо вони використовуються) враховуються, щоб спрогнозувати майбутнє. Наприклад, довжина вектору 100 означає, що модель дивиться на останні 100 даних, що передбачити наступну ціну  (наприклад, 100 годин якщо годинний таймфрейм, або 100 днів на денному графіку).

На що вливає довжина вектору: короткий вектор (скажімо, 30-50 точок) зробить модель дуже чутливою до найсвіжіших змін, але вона може не помітити довгострокових закономірностей. Довгий вектор (наприклад, 2000-5000 точок) дозволяє врахувати більше історії – можливо, вловити якийсь цикл або тренд – але занадто довгий вектор може “розмити” фокус моделі або додати зайвого шуму. Потрібно знаходити баланс. Для початку можна спробувати середнє значення (наприклад, 100 чи 200) і далі експериментувати.

Кількість вхідних даних: Цей параметр визначає довжину вибірки історичних даних, на якій модель навчається. Наприклад, якщо виставити 1000, то модель візьме останні 1000 точок (барів) для навчання своїх параметрів. Тут теж є компроміс: якщо поставити занадто мало даних, модель може не побачити важливих варіацій ринку – прогноз буде ненадійним. Якщо взяти надто багато (наприклад, історію за 5 років), то такі дані з дуже далекого минулого можуть вже не відповідати нинішнім ринковим умовам (ринки змінюються). До того ж навчання на величезному обсязі даних буде працювати значно повільніше. Тому, почніть, наприклад, із тисяч точок, і далі експериментуйте.

Дуже важливий пункт – як ми подаємо ціновий ряд у модель. В платформі є три варіанти

Формат ціни: Дуже важливий пункт – як ми подаємо ціновий ряд у модель. В платформі є три варіанти:

  • Прямі дані – подаємо ціну як є, в її оригінальному вигляді. Наприклад, якщо біткоїн зараз $100,000, то це значення і йде в модель.
  • Різниця – подаємо зміну ціни, тобто різницю між поточним і попереднім значенням. Якщо ціна була $100 000, а стала $101 000, то модель побачить +1000 (тобто, зростання на 1000).
  • Відношення – подаємо відношення попередньої ціни до поточної. Це фактично відносна зміна. У тому ж випадку з $100 000 до $101 000 відношення = 100 000 /101 000 ≈ 0.99

Формат даних прямо впливає на результат моделі. Чому? Бо набір даних змінюється. Пряма ціна нестаціонарна – вона може мати тренд (наприклад, довгострокове зростання). Натомість різниця або відношення прибирають загальний тренд і показують лише зміни. Це може допомогти моделі навчитися на більш стаціонарному ряді без тренду. Як зазначають фахівці, диференціювання (використання різниць) стабілізує середнє значення ряду, прибираючи зміни рівня, тобто тренд і сезонність. Для нашого випадку: подаючи різницю, модель бачить “як сильно і куди змінилася ціна від попереднього кроку”, а не сам абсолютний рівень ціни. Відношення схоже за сенсом, але в відносних величинах.

Як обрати формат? Загалом, різниця чи відношення можуть покращити прогноз, оскільки модель легше вловить закономірності в змінах, ніж у самій “сирій” ціні з великим масштабом і трендами. Але бувають випадки, коли тренд – це і є корисний сигнал (наприклад, ринок стабільно росте). Тоді прямий формат може дати моделі інформацію про абсолютний рівень. Можете почати з різниці – часто це полегшує роботу моделей. Або спробуйте усі підходи та порівняйте, що дає кращий результат на історичних даних.

Додаткові ознаки: об’єм торгів. Ціна – не єдине, що можна подати в модель. У нашій платформі передбачено, наприклад, використання об’єму: достатньо поставити галочку “Використовувати об’єм”, і модель врахує дані про обсяг торгів при навчанні та прогнозі. До того ж можна вибрати формат об’єму – прямий, різниця чи відношення, за аналогією з ціною.

Навіщо це потрібно? Об’єм торгів часто відображає інтерес і силу ринку, та часто має прямий вплив на ціноутворення. Також, у найближчих оновленнях буде доданий відкритий інтерес, відношення лонг/шорт і інші дані. Можливо, коли ви читаєте цей допис, це вже є у платформі.

Окремо хочу зазначити про аналіз. Перед запуском у автоматичну торгівлю обов’язково протестуйте на історії вашу модель. Перевірте, які дані позитивно впливають, які дають шум, і навпаки, тільки погіршують прогнозування. Тобто, різні комбінації вхідних даних.

Це можна зробити, використовуючи галку «на історії» і вибравши потрібний час. Але робіть кілька аналізів на різних ділянках часу, щоби перевірити достовірність.

Що ще важливо розуміти – машинне навчання, це не «кришталева куля», вона не покаже вам 100% майбутнього, але дасть орієнтовану траєкторію ціни. Також, при тестах уникайте зон високої волатильності – у такі періоди жодний прогноз не зможе спрацювати. У планах є добавити цифровий фільтр по визначенню волатильності, він допоможе прибрати такі ризики під час торгівлі.

Підсумовуючи, модель GAM – це потужний інструмент, який в простій формі дозволяє врахувати кілька факторів одразу і побачити їхній сумарний ефект на ціну криптовалют. Говорячи просто, вона намагається навчитися: “Як минула ціна впливає на майбутню? А як пливає об’єм? Як відкритий інтерес?”, і все це об’єднати для прогнозу.

Надіюсь, цей огляд допоміг вам розібратися з GAM в загальних рисах. Якщо маєте запитання або хочете поділитися результатами – спільнота алготрейдерів завжди відкрита для обговорення.

Корисні посилання по темі:

Відео версія:

 

Про автора

Олександр / AlgoTrading UA

Переглянути усі дописи
0 0 голоси
Рейтинг статті
Підписатися
Сповістити про
guest

0 Коментарі
Найстаріші
Найновіше Найбільше голосів
Зворотній зв'язок в режимі реального часу
Переглянути всі коментарі