Перевірте стратегії торгівлі за допомогою довгострокового збереження Amazon Kinesis Data Streams і Amazon SageMaker

Вихідний вузол: 1883045

Статистика в реальному часі має вирішальне значення, коли мова йде про побудову торгових стратегій. Будь-яка затримка в аналізі даних може коштувати багато грошей трейдерам. Часто вам потрібно дивитися на історичні тенденції ринку, щоб передбачити модель майбутньої торгівлі та зробити правильну ставку. Чим більше історичних даних ви аналізуєте, тим краще прогнозування торгівлі. Відстеження потокових даних може бути складним, оскільки для цього потрібні складні механізми зберігання та аналізу.

Потоки даних Amazon Kinesis дозволяє нашим клієнтам зберігати потокові дані до одного року. Довгострокове збереження потоків даних Amazon Kinesis (LTR) потокових даних дає змогу використовувати ту саму платформу як для даних у реальному часі, так і для старих даних, які зберігаються в Amazon Kinesis Data Streams. Наприклад, можна тренувати алгоритми машинного навчання для фінансової торгівлі, персоналізації маркетингу та рекомендаційних моделей, не переміщаючи дані в інше сховище даних або не створюючи новий додаток. Клієнти також можуть задовольнити певні правила збереження даних, зокрема згідно з HIPAA та FedRAMP, використовуючи довгострокове збереження. Таким чином, це спрощує архітектуру прийому даних для нашого торгового випадку, який ми обговоримо в цій публікації.

У пості Створення алгоритмічних торгових стратегій за допомогою Amazon SageMaker, ми продемонстрували, як тестувати торгові стратегії за допомогою Amazon SageMaker з історичними даними про ціну акцій, що зберігаються в Служба простого зберігання Amazon (Amazon S3). У цій публікації ми розширюємо це рішення для потокової передачі даних і описуємо, як його використовувати Амазонський кінезіс.

Крім того, ми хочемо використовувати Автоматична настройка Amazon SageMaker щоб знайти оптимальну конфігурацію для стратегії кросовера ковзної середньої. У цій стратегії розраховуються дві ковзні середні для повільного і швидкого періоду часу, і торгівля виконується, коли відбувається кросовер. Якщо швидка ковзна середня перетинає повільну ковзну середню, стратегія розміщує довгу торгівлю, інакше стратегія стає короткою. Ми знаходимо оптимальну довжину періоду для цих ковзних середніх, запустивши кілька тестів з різною довжиною для історичного набору даних.

Нарешті, ми запускаємо оптимальну конфігурацію для цієї стратегії перехресного ковзного середнього на різних тестових даних і аналізуємо результати продуктивності. Якщо результати, виміряні в прибутках і збитках (P&L), позитивні за період тестування, ми можемо розглянути цю торгову стратегію для форвардного тесту.

Щоб продемонструвати вам, наскільки легко та швидко розпочати роботу з AWS, ми надаємо розгорнуте рішення для тестування торгівлі одним кліком, яке використовує довгострокове збереження Kinesis для потокових даних.

Огляд рішення

Ми використовуємо Kinesis Data Streams для зберігання потокової передачі в реальному часі, а також історичних ринкових даних. Ми використовуємо блокноти Jupyter як наш центральний інтерфейс для вивчення та тестування нових торгових стратегій. SageMaker дозволяє налаштувати блокноти Jupyter та інтегрувати їх з ними Комісія AWS зберігати різні версії стратегій та ділитися ними з іншими членами команди.

Ми використовуємо Amazon S3 для зберігання артефактів моделі та результатів тестування.

Для наших торгових стратегій ми створюємо контейнери Docker, які містять необхідні бібліотеки для тестування та саму стратегію. Ці контейнери відповідають структурі контейнерів SageMaker Docker, щоб запустити їх усередині SageMaker. Додаткову інформацію про структуру контейнерів SageMaker див Використання інструментів для навчання та висновків SageMaker.

Наступна схема ілюструє цю архітектуру.

Ми запускаємо етап підготовки даних із блокнота SageMaker. Це копіює історичні ринкові дані в сегмент S3.

Ми використовуємо Служба міграції даних AWS (AWS DMS), щоб завантажити ринкові дані в потік даних. The

Блокнот SageMaker підключається до Kinesis Data Streams і запускає алгоритм торгової стратегії за допомогою навчального завдання SageMaker. Алгоритм використовує частину даних для навчання, щоб знайти оптимальну конфігурацію стратегії.

Нарешті, ми запускаємо торговельну стратегію, використовуючи попередньо визначену конфігурацію на тестовому наборі даних.

Передумови

Перш ніж почати, ми налаштували наші ресурси. У цій публікації ми використовуємо us-east-2 Регіон як приклад.

  1. Розгорніть ресурси AWS за допомогою наданого AWS CloudFormation шаблон
  2. для Назва стека, введіть назву для свого стека.
  3. Надайте існуючу назву сегмента S3 для зберігання історичних ринкових даних.

Дані завантажуються в Kinesis Data Streams з цього сегмента S3. Ваше відро має бути в тому самому регіоні, де налаштовано ваш стек.

  1. Прийміть усі значення за замовчуванням і виберіть МАЙБУТНІ.
  2. Визнайте, що AWS CloudFormation може створити Управління ідентифікацією та доступом AWS (IAM) ресурси зі користувацькими іменами.
  3. Вибирати Створити стек.

Це створює всі необхідні ресурси.

Завантаження даних у Kinesis Data Streams

Щоб виконати завантаження даних, виконайте такі дії:

  1. На консолі SageMaker під ноутбук на панелі навігації виберіть Екземпляри ноутбуків.
  2. Знайдіть екземпляр блокнота AlgorithmicTradingInstance-*.
  3. Вибирати Відкрийте Юпітер для цього прикладу.
  4. Перейти до algorithmic-trading->4_Kinesis і виберіть Strategy_Kinesis_EMA_HPO.pynb.

Тепер ви запускаєте етап підготовки даних у блокноті.

  1. Завантажте набір даних.

Вкажіть існуючий сегмент, де зберігаються тестові дані. Переконайтеся, що тестовий сегмент знаходиться в тому самому регіоні, де ви налаштували стек.

  1. Виконайте всі кроки в зошиті до Крок 2 Підготовка даних.
  2. На консолі AWS DMS виберіть Завдання міграції бази даних.
  3. Виберіть завдання AWS DMS dmsreplicationtask-*.
  4. на Дії меню, виберіть Перезапустити/Відновити.

Це починає завантаження даних із сегмента S3 до потоку даних.

Зачекайте, поки завдання реплікації не покаже статус Load complete.

  1. Продовжте кроки в блокноті Jupyter.

Читання даних із тривалого збереження Kinesis

Ми щодня зчитуємо дані про відкриття, високі, найнижчі ціни, закриття та обсяги з довгострокового збереження потоку за допомогою AWS SDK для Python (Boto3).

Хоча ми не використовуємо розширений вентилятор (EFO) у цій публікації, може бути доцільно зробити, щоб існуюча програма вже зчитувала з потоку. Таким чином, ця програма для тестування не заважає існуючій програмі.

Ви можете візуалізувати свої дані, як показано на наступному знімку екрана.

Визначте свою торгову стратегію

На цьому кроці ми визначаємо нашу стратегію перехресної торгівлі ковзною середньою.

Створіть образ Docker

Ми створюємо нашу роботу бектестування як образ Docker і натискаємо на нього Amazon ECR.

Оптимізація гіперпараметрів за допомогою SageMaker для даних навчання

Для стратегії перехресної торгівлі ковзної середньої ми хочемо знайти оптимальний швидкий і повільний період цієї стратегії, і ми пропонуємо діапазон днів для пошуку.

Ми використовуємо прибуток і збитки (P&L) стратегії як метрику для пошуку оптимізованих гіперпараметрів.

Ви можете побачити рекомендоване значення 7 та 21 день для швидкого та повільного періоду для цієї торговельної стратегії з урахуванням набору навчальних даних.

Запустіть стратегію з оптимальними гіперпараметрами на тестових даних

Тепер ми запускаємо цю стратегію з оптимальними гіперпараметрами на даних тесту.

Коли завдання завершено, результати продуктивності зберігаються в Amazon S3, і ви можете переглянути показники продуктивності на діаграмі та проаналізувати замовлення на купівлю та продаж для своєї стратегії.

Висновок

У цій публікації ми описали, як використовувати функцію довгострокового збереження Kinesis Data Streams для зберігання історичних даних про курси акцій і як використовувати потокові дані для тестування торгової стратегії за допомогою SageMaker.

Довгострокове збереження потокових даних дозволяє використовувати ту саму платформу як для даних в реальному часі, так і для старих даних, які зберігаються в Kinesis Data Streams. Це дозволяє вам використовувати цей потік даних для фінансових випадків, таких як тестування або машинне навчання, не переміщаючи дані в інше сховище даних або не створюючи нову програму. Ви також можете задовольнити певні правила збереження даних, зокрема згідно з HIPAA та FedRAMP, використовуючи довгострокове збереження. Додаткову інформацію див Amazon Kinesis Data Streams дозволяє зберігати потік даних до одного року.

Відмова від ризику

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


Про авторів

Сачин Тхаккар є старшим архітектором рішень у Amazon Web Services, співпрацюючи з провідним глобальним системним інтегратором (GSI). Він має понад 22-річний досвід роботи в якості ІТ-архітектора та консультанта з технологій для великих установ. Його напрямок діяльності – дані та аналітика. Sachin надає архітектурні вказівки та підтримує партнера GSI у створенні стратегічних галузевих рішень на AWS

Амог Гайквад є розробником рішень у команді прототипування. Він спеціалізується на машинному навчанні та аналітиці та має великий досвід розробки моделей машинного навчання в реальних середовищах та інтеграції AI/ML та інших служб AWS у великомасштабні виробничі програми. До роботи в Amazon він працював розробником програмного забезпечення, розробляючи корпоративні додатки, зосереджені на плануванні ресурсів підприємства (ERP) та управлінні ланцюгом постачання (SCM). Амог отримав ступінь магістра комп’ютерних наук, спеціалізується на аналітиці великих даних та машинному навчанні.

Дхірадж Тхакур є архітектором рішень із Amazon Web Services. Він працює з клієнтами та партнерами AWS, щоб надати рекомендації щодо впровадження корпоративної хмари, міграції та стратегії. Він захоплений технологіями та любить створювати й експериментувати в аналітиці та просторі AI/ML.

Олівер Стеффман є архітектором корпоративних рішень у AWS у Нью-Йорку. Він має понад 18-річний досвід роботи в якості ІТ-архітектора, менеджера з розробки програмного забезпечення та консультанта з управління міжнародними фінансовими установами. Під час роботи в якості консультанта він використав свої широкі знання з великих даних, машинного навчання та хмарних технологій, щоб допомогти своїм клієнтам розпочати цифрову трансформацію. До цього він очолював технологію муніципальної торгівлі в інвестиційному банку першого рівня в Нью-Йорку, а розпочав кар’єру у власному стартапі в Німеччині.

Джерело: https://aws.amazon.com/blogs/big-data/backtest-trading-strategies-with-amazon-kinesis-data-streams-long-term-retention-and-amazon-sagemaker/

Часова мітка:

Більше від AWS