Алготрейдинг: як влаштовані торгові алгоритми і де вони ламаються

Безкоштовний курс з криптовалюти
Рівень 7: Просунуті стратегіїУрок 7.3 · 45 з 698 хв читання

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

Коротко про головне
  • Алгоритм — це стратегія, перекладена в однозначні правила: коли входити, скільки купувати, коли виходити.
  • Якісний бектест враховує комісії, прослизання і перевіряється на даних, які не використовували під час налаштування.
  • Між бектестом і реальними грошима потрібен етап тестової торгівлі і запуск із мінімальним обсягом.
  • Помилки в коді, збої зв’язку і витік API-ключів небезпечні не менше, ніж ринкові ризики.

Що таке торговий алгоритм

Правило «купую, коли ціна здається дешевою» для алгоритму не годиться: комп’ютер не знає, що означає «здається». Потрібні правила без двозначності, наприклад: якщо денна свічка закрилася вище 50-денної ковзної середньої, а RSI нижче заданого рівня, купити на таку суму, щоб ризик до стопу не перевищував обраної частки депозиту.

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

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

Термін · Бектест

Перевірка стратегії на історичних даних: програма «програє» минуле свічка за свічкою і записує, які угоди були б відкриті і з яким результатом.

Основні типи стратегій

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

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

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

Більшість сигналів у таких стратегіях будують на індикаторах на кшталт ковзних середніх, RSI і MACD, а також на рівнях і обсязі. Якщо ви ще невпевнено читаєте ці інструменти вручну, автоматизувати їх зарано: спершу треба розуміти, чому індикатор подає сигнал і за яких умов він бреше.

З чого складається алгоритм

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

Для зв’язку з біржами розробники часто беруть відкриту бібліотеку CCXT: вона дає єдиний інтерфейс до API десятків майданчиків. Ціни в реальному часі зручніше отримувати через WebSocket, ніж опитувати біржу щосекунди: API має ліміти на кількість запитів, і в разі їх перевищення біржа тимчасово блокує доступ.

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

  • Дані: свічки, книга заявок, угоди, фандинг. Їх треба перевіряти на пропуски та аномалії.
  • Сигнал: правила входу і виходу, побудовані, наприклад, на індикаторах чи рівнях.
  • Ризик-модуль: розмір позиції, стоп-лос, ліміт на сумарний ризик і на денний збиток.
  • Виконання: надсилання ордерів, обробка часткового виконання, відмов і помилок API.
  • Моніторинг: журнал дій, сповіщення та аварійний вимикач, який закриває все однією командою.

Важливо · Ключ без права виведення

Алгоритму потрібен доступ до торгівлі, але в жодному разі не до виведення коштів. Прив’яжіть API-ключ до IP-адреси сервера і зберігайте секретний ключ поза кодом. Докладніше — в уроці про безпеку на криптобіржі.

Пастки бектесту

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

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

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

Пастка Як проявляється Як захиститися
Зазирання в майбутнє Сигнал використовує дані, яких на той момент ще не було, наприклад ціну закриття незакритої свічки Ухвалювати рішення лише за закритими свічками і перевіряти зсув даних
Помилка вцілілого У тест потрапляють лише монети, якими торгують сьогодні, а зниклі випадають Використовувати історичні списки активів із делістингами
Перенавчання Параметри ідеально підігнані під минуле і далі не працюють Відкладена вибірка і перевірка на інших періодах і монетах
Нульові витрати Тест без комісій, спреду, прослизання і фандингу Закладати витрати із запасом, особливо для частих угод

Від ідеї до запуску: порядок дій

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

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

  1. Сформулюйте ідею однією фразою і поясніть, чому вона має працювати, тобто чию помилку чи потребу вона використовує.
  2. Перекладіть ідею в однозначні правила входу, виходу і розміру позиції.
  3. Проведіть бектест із реалістичними витратами на одній частині історії.
  4. Перевірте стратегію на відкладеному періоді, який не використовували під час налаштування.
  5. Запустіть тестову торгівлю без реальних грошей на кілька тижнів.
  6. Перейдіть на реальний рахунок із мінімальним обсягом і жорстким денним лімітом збитку.
  7. Збільшуйте обсяг, лише якщо живі результати схожі на тестові.

Приклад · Як витрати змінюють картину

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

Реалістичні очікування

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

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

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

Завдання до уроку

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

Навчайтеся й заробляйтеБезкоштовні турніри щодня — шлях до призів у USDT

Вхід безкоштовний, торгівля на демо-рахунку — власні гроші не потрібні. У безкоштовних турнірах виграють Tour Pass, а з ними заходять у турніри з призами в USDT. Найкращі йдуть далі — до funded-рахунку на $5 000.

Часті запитання

Чи треба вміти програмувати для алготрейдингу?

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

Чому стратегія прибуткова в бектесті і збиткова в реальності?

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

Скільки грошей потрібно для запуску торгового алгоритму?

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

Обговорення

Обговорення цієї статті — у BuyCrypt Live у застосунку. Увійдіть через Google або Apple, і акаунт BuyCrypt створиться автоматично.

Обговорити в застосунку →