How-to: Що потрібно враховувати при розробці стратегії для торгового робота

image

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

Що потрібно враховувати насамперед

Для того, щоб домогтися успіху на фондовому ринку, розробнику алгоритмічної торгової системи необхідно враховувати власні особистісні якості. Алгоритмічна торгівля вимагає великої дисципліни, терпіння і емоційної стійкості. Потрібно пам'ятати, що здійснювати транзакції робот — і потрібно не влазити в його роботу попало (а це може бути нелегко, особливо якщо настав так званий момент «осідання» і алгоритм тимчасово працює в мінус).

Крім особливостей характеру, необхідно враховувати і кілька інших важливих аспектів:

  • Наявність часу — працює майбутній інвестор повний день або віддалено, живе поруч з офісом або змушений витрачати на дорогу декілька годин? Відповіді на ці питання допоможуть визначити частотність» торгової стратегії, яку слід обрати. Очевидно, що люди, які проводять більшу частину дня в дорозі і в офісі, не повинні створювати високочастотні стратегії, тому що не зможуть контролювати роботу робота. Якщо ж інвестор володіє значною кількістю часу, то йому може бути більш цікаво поринути в світ високочастотної торгівлі (HFT)
  • Важливість постійного дослідження ринку — дуже рідко торгові стратегії можуть успішно працювати протягом довгого часу. Як правило в них постійно потрібно вносити зміни, що відображають поточну ситуацію на ринку. Як наслідок цього, творці торгових систем значну частину свого часу присвячують дослідженню ринку і пошуку нових торгових ідей.
  • Обсяг доступних коштів — транзакційні витрати для алгоритмічних торговців можуть бути досить значними (пряме підключення до біржі, оренда серверів для запуску робота, комісії біржі та брокера — тарифи ITinvest за адресою). Вважається, що для алгоритмічної стратегії середньої стартовим капіталом повинно бути приблизно $50 тисяч — такої думки, зокрема, дотримується «квант», розробник і інвестор Майк Халлс-Мур.
  • Вміння програмувати — знання таких мов програмування, C++, C# Java, Python, R (або TradeScriptтут представлені приклади роботів на цьому скриптовом мовою) дозволить створювати всі елементи робота — від торгового движка до системи бэктестинга.
  • Фінансова мета — всупереч поширеному міфу, алгоритмічні торговці не купаються в грошах (принаймні дуже швидко розбагатіти, створивши торгового робота, швидше за все не вийде). Це довга і копітка праця, що необхідно враховувати. Якщо торговець сподівається отримувати стабільний дохід і щомісячного знімати з брокерського рахунку певну суму грошей, то повинен відповідним чином вибирати «частотність» стратегії — необхідність постійно виводити кошти зажадає більш високочастотної стратегії з невеликою волательностью, довгострокові інвестори можуть дозволити собі «спокійну» стратегію поведінки на ринку.

Як шукати ідеї для торгових стратегій

Перш ніж починати роботу по створенню торгової стратегії, необхідно отримати загальні відомості про фондовому ринку (ось наш топ-10 кращих книг для цієї мети), попрацювати на ньому в тестовому режимі (з віртуальними грошима). Згаданий вище Майк Галс-Мур також рекомендує наступні книги (англійською):

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

Потрібно розуміти, що дуже часто трейдери, публікують повідомлення на форумах надто покладаються на технічний аналіз і використання різноманітних індикаторів, які допомагають виявляти тренди і «паттерни розвороту». Це дуже популярний метод, однак професіонали алгоритмічної торгівлі вважають його не найефективнішим (Халлс-Мур називає його «настільки насичена ж ефективним для алготрейдера, як читання гороскопу або ворожіння на кавовій гущі»).

Можна піти далі і зайнятися вивченням так званих «академічних стратегій», які публікуються в наукових журналах — це також дуже корисно і цікаво, проте є і мінуси: для отримання доступу до деяких журналів потрібна підписка, представлені в них стратегії часто застаріли і не завжди детально описані (наприклад, який використовується тип наказів — «по ринку» або «ліміт»?).

Налагоджений процес моніторингу різноманітних тематичних ресурсів допоможе торговцю створити «машину знань» (визначення засновника Dropbox Дрю Х'юстона) і постійно розширювати свій кругозір і набір торгових стратегій. Однак також очевидно і те, що не всі отримані таким чином стратегії варто навіть намагатися реалізувати в реальному житті.

Оцінка торгової стратегії

Найважливіший момент — необхідно відразу чітко дати собі відповідь на запитання «чи розумію я цю стратегію?». Також потрібно проаналізувати стратегію на предмет її реалістичності (як часто на ринку зустрічаються ситуації, які можуть призвести до описуваних стратегією подій). стійкості (як поведе себе стратегія, якщо з'явиться новий закон, що регулює ринок), наявності в ній складних статистичних і математичних правил, залежить вона від класів фінансових інструментів або фінансових часових рядів. Необхідно вивчити всі ці фактори, інакше великий ризик витратити велику кількість часу на програмування і тестування на історичних даних цілком непрацездатною стратегії.

Після того, як стратегія пройшла первинний фільтр, необхідно ще раз проаналізувати те, наскільки вона підходить конкретному трейдеру за його особистісним якостям. Якщо людині важко буде пережити тривалі осідання депозиту (тобто періоди, коли робота йде «мінус»), які закладені в стратегії, то він може «зірватися» і припинити роботу робота, зафіксувавши збитки рівно перед тим моментом, як стратегія вийшла в плюс. В оцінці стратегії не повинно бути ніяких емоцій, слід використовувати тільки чітко визначені критерії.

image

Ось список деяких з таких критеріїв, запропонованих Майклом Галс-Муром:

Методологія
Наскільки складна стратегія? Як багато параметрів необхідно врахувати для її реалізації (чим їх більше, тим більше імовірність помилок оптимізації»)? Чи зуміє стратегія пережити суттєві зміни на ринку (наприклад, зміна законів або посилення регулювання фінансових ринків)?

Коефіцієнт Шарпа
З допомогою цього коефіцієнта оцінюють ставлення можливого прибутку до ризикованості стратегії. Чим вище коефіцієнт Шарпа, тим краще результати, які показує інвестиційний портфель по відношенню до прийнятих ризиків.

Плече
Чи передбачає стратегія використання «кредитного плеча» (тобто позикових коштів) для успішного здійснення торгівлі? Чи беруть участь в стратегії похідні інструменти, торгуються з плечем (подібні інструменти зазвичай володіють високою волатильністю, що може призводить до маржин коллам)? Чи достатньо у трейдера капіталу, який можна буде донести, щоб уникнути закриття позицій?

Частотність
Більш високочастотні стратегії вимагають більшого капіталу, а також складніше в реалізації, ніж більш «спокійні» стратегії. Однак найчастіше у них вище коефіцієнт Шарпа.

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

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

Максимальна просадка
Величина найбільшого допустимого скорочення капіталу в ході виконання стратегії. «Імпульсні» стратегії (Momentum strategies) характеризуються значними і тривалими періодами осідання депозиту — навіть якщо бэктестинг довів, що подібна поведінка нормально для стратегії і не позначається на її прибутковості, трейдеру буде важко не закрити позиції в момент серйозних збитків.

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

Бенчмарки
Продуктивність більшості стратегій вимірюється у порівнянні з якимось бенчмарком, в ролі якого найчастіше виступає небудь індекс, що характеризує великий сегмент фінансових активів, аналогічних тим, що використані у стратегії. Такими бенчмарками можуть бути індекс S&P 500, в Росії — індекси ММВБ і РТС (ось матеріал про те, навіщо потрібні фондові індекси).

image

Динаміка індексу РТС

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

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

Робота з історичними даними

Перш ніж приступати до тестування на історичних даних необхідно визначити, які дані необхідно отримати, де їх взяти, як і де зберігати, а також зрозуміти, чи не буде це занадто дорого.

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

Новинні дані
Безсумнівно, що новини впливають на фондовий ринок і такий інформації набагато більше. Сюди входять новинні замітки великих і невеликих ЗМІ, пости в блогах і мікроблогах. Для зберігання таких неструктурованих даних добре підходять СУБД NoSQL.

Дані за ціною активів і частотність
До цього типу відносяться верменные серії цін конкретних активів — акцій, бондів, товарів і закордонних фондових індексів. Чим простіше актив (наприклад, акція), тим легше дістати такі дані (часто це можна буде зробити за невелику суму грошей — ось тут представлена інформація про платі для доступу до даних про торгах Московської біржі). Однак обсяги таких даних можуть вимагати значних інвестицій в їх зберігання.

image

Чим вища частотність даних, тим вище їх вартість і вимоги до сховища. Для деяких стратегій потрібні тикові дані і навіть копії так званих «черги заявок» (order book). Робота з такими даними дуже складна технологічно. Крім іншого, описані вище стратегії напевно будуть порівнюватися з бенчмарками (індекс S&P500 і FTSE100), а отже, знадобляться і дані по цих бенчмарками.

Висновок

Як видно з усього описаного вище, для того, щоб створити успішну стратегію, необхідно не тільки вивчити велику кількість самих різних стратегій, але і врахувати велику кількість ризиків та інших параметрів. Крім того, ще до етапу тестування на історичних даних слід задуматися про те, яка конкретно інформація знадобиться для того, щоб отримати несуперечливі і коректні результати, а також скільки доведеться за все це заплатити. Тільки після цього можна переходити до власне тестування — цей процес ми докладно описували тут.

Спасибі за увагу! Будемо раді відповісти на питання в коментарях.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.