Платформа для кількісного аналізу Quantitative Research Lab призначена для проведення кількісного аналізу криптовалютного ринку та автоматизації торгового процесу на USDT-ф’ючерсах криптобіржі OKX (як автономний торговий бот).
Дана платформа – це продукт, що постійно розвивається і вдосконалюється, постійно додаються нові методи кількісного аналізу, цифрові фільтри та інші засоби для оптимізації кінцевого торгового результату.
Торгова платформа є безкоштовною завдяки підтримці проекту криптобіржою OKX. Підтримка для даного продукту також є безкоштовною.
Платформа доступна для завантаження у чаті спільноти алготрейдерів. Там же відбувається підтримка по даному продукту і публікація усіх оновлень (перелік оновлень у кінці цієї сторінки). Як потрапити у спільноту алготрейдерів.
Платформа є простою у використанню та гнучкою по налаштуванням. Вона призначена для застосування під керуванням ОС Windows, і може працювати як на локальному комп’ютері, так і на віддаленому сервері (VPS).
Для повноцінної роботи 24х7х365 рекомендується запускати на віддаленому сервері (VPS) – це забезпечить безперебійну круглодобову роботу. Якщо у вас немає VPS для платформи, то рекомендую скористатися послугами Zomro. Хороша ціна при найвищій якості (користуюся цим сервісом роками).
Інструкція по роботі із платформою
Для початку роботи із платформою, завантажте її із чату спільноти. Бот зберігається у вигляді ZIP-архіву. Після завантаження торгового боту, розпакуйте вміст архіву у окрему папку.
Якщо при запуску з’являється таке вікно, встановіть .Net 8.0 (детально описано у FAQ):
Для запуску платформи запустіть файл QuantitativeRL.exe . Після цього появиться таке вікно:
У полі “Відкритий АРІ ключ” вводимо відкритий API ключ, який створений на біржі.
У полі “Секретний АРІ ключ” вводимо секретний API ключ, який створений на біржі.
У полі “Пароль до АРІ ключа” вводимо пароль API ключ, який ми вводимо під час створення ключів. Це не пароль від акаунта, а саме від АРІ ключів.
Далі натискаємо кнопку “Запустити” і після перевірки ключів бот запустить основне вікно платформи. При цьому, ключі зберігаються у зашифрованому вигляді і при наступному запуску поля із ключами будуть уже заповненими (не потрібно щоразу вводити їх).
Криптовалютний бот торгує через використання API ключів. Тобто, ви створюєте API ключі на сайті біржі OKX. Якщо ви не знаєте як створити API ключі – у цьому дописі усе детально описано.
Пройдемось по блокам.
Блок “Управління торгівлею“
Цей блок призначений для запуску автоматичної торгівлі платформою, як торговий бот згідно ваших налаштувань (налаштування будуть розглянути нижче).
Для запуску торгового модуля натискаємо кнопку “Старт“, а для зупинки – кнопку “Стоп“.
Блок “Управління аналізом”
Даний блок призначений для проведення аналітичної роботи із прогнозування, без проведення торгових дій.
Натискаючи на кнопку “Прогнозувати” платформа запустить процес прогнозування згідно ваших налаштувань.
Для зупинки прогнозування потрібно натиснути кнопку “Стоп“. Важливо розуміти, що прогнозування не зупиняється моментально, іноді для зупинки прогнозу потрібен час.
Для того, щоби зберегти прогноз (наприклад, щоби у майбутньому перевірити його), потрібно натиснути “Зберегти прогноз“. Після збереження прогнозу ви отримаєте вікно і шляхом до прогнозу і назвою файлу.
Прогнози автоматично зберігаються у папці “ML” у місці розташування бота, і називаються у форматі – назва інструменту_таймфрейм_timestmp.predict.
Щоби завантажити прогноз на поточний графік, натисніть кнопку “Відкрити прогноз” і виберіть потрібний файл прогнозу. При цьому, інструмент і таймфрейм графіка має співпадати із інструментом і таймфреймом прогнозу, що завантажується.
Для того, щоби очистити графік від прогнозів (в тому числі завантажених), натисніть кнопку “Очистити“.
За замовчуванням, платформа прогнозує на самих свіжих даних, але якщо ви хочете запустити на попередніх даних, то натисніть галку “На історії” і в сусідньому полі введіть дату і час закінчення періоду прогнозування. Таким чином, ви побачите одразу і результат прогнозу, і як вела себе ціна фактично.
Блок “Загальні і торгові логи”
Це блок знаходиться у нижній лівій частині інтерфейсу програми. Тут виводиться уся інформація, що робить торгова платформа, за виключенням процесу навчання.
Також, усі ці логи зберігаються у папці “Logs” у папці торгового бота, якщо потрібно повернтутися до аналізу пізніше. Також, в платформі присутній модуль, який видаляє дуже старі логи (щоби не захаращувати диск).
Блок “Логи прогнозування”
У цьому блоці виводиться уся інформація щодо прогнозування. Цей блоки виділений окремо для того, щоби зручніше було проводити аналіз саме прогнозної частини. Вона працює паралельним процесом до торгової частини і загалом бота, тому без окремого виводу усе було б “в перемішку”.
Також, ці логи зберігаються у папці “Logs” і мають закінчення файлу на “_PRED” (скорочено від prediction – прогноз).
Переходим до центрального блоку програми, розглянемо його склад по вкладкам.
Вкладка “Графік”
Дана вкладка складається із двох блоків – безпосередньо графіка (візуальна частина) та списку для вибору інструменту.
Блок “Графік” призначений для візуалізації дій і стану платформи. Тут виводиться поточний графік вибраного інструменту, прогнозу, відкритої позиції, активних ордерів, історії угод, фільтрів і т.п., згідно налаштувань (налаштування будуть розглянуті нижче у описі відповідної вкладки).
Для вибору інструменту використовується список інструментів – блок “Вибрати” (з правої сторони). У цьому переліку знаходяться усі налаштовані інструменти із вкладки “Торгівля/Дані” (налаштування будуть розглянуті нижче у описі відповідної вкладки). Таймфрейм для графіку береться також звідти.
Вкладка “Машинне навчання”
У даній вкладці розташовані методи машинного навчання, які можна налаштувати для використання у прогнозуванні або торгівлі.
Блок “GAM (generalized additive model)” містить налаштування для для даної моделі. Що це за модель, як вона працює і інші деталі скоро будуть добавлені на сайт окремим дописом.
Якщо поставити галку “Задіяти GAM в аналізі“, то платформа буде використовувати дану модель у роботі.
У полі “Довжина вектору” вибирається довжина вектору. Якщо коротко, то це кількість елементів прогнозу, тобто, кількість точок у ряді, які використовуються для навчання (деталі в описі моделі).
У полі “Формат ціни” вказуємо як подавати ціну в модель:
- Прямі дані – формат ціни не міняється, подається в прямому вигляді
- Різниця – подається різниця між попередньою і поточною ціною
- Відношення – подається відношення попередньою ціни до поточної
Формат подачі даних прямо впливає на результат, оскільки міняється набір даних.
Якщо потрібно використовувати об’єм у навчанні і прогнозування, то потрібно поставити галку в полі “Використовувати об’єм“.
Якщо об’єм використовується, то у полі “Формат об’єму” вибираємо формат подачі об’єму – прямий, різниця чи відношення (пояснення аналогічне як і в ціні).
Якщо потрібно використовувати відкритий інтерес у навчанні і прогнозування, то потрібно поставити галку в полі “Використовувати відкритий інтерес“.
Якщо відкритий інтерес використовується, то у полі “Формат інтересу” вибираємо формат подачі відкритого інтересу – прямий, різниця чи відношення (пояснення аналогічне як і в ціні).
Відкритий інтерес (Open Interest) — це загальна кількість відкритих (не закритих і не виконаних) ф’ючерсних контрактів на певний актив у даний момент. Простими словами: це кількість позицій, які все ще існують на ринку.
Якщо потрібно використовувати відношення лонг/шорт у навчанні і прогнозування, то потрібно поставити галку в полі “Використовувати long/short ratio“.
Якщо відношення лонг/шорт використовується, то у полі “Формат відношення” вибираємо формат подачі відношення лонг/шорт – прямий, різниця чи відношення (пояснення аналогічне як і в ціні).
Відношення лонг/шорт — це показник настроїв трейдерів, який показує співвідношення кількості трейдерів із довгими (long) позиціями до кількості трейдерів із короткими (short) позиціями у ф’ючерсах або безтермінових свопах. Це не обсяг позицій, а кількість акаунтів.
Якщо потрібно використовувати різницю угод тейкера (тейкер лонг – тейкер шорт) у навчанні і прогнозування, то потрібно поставити галку в полі “Використовувати taker difference“.
Якщо різниця тейкера використовується, то у полі “Формат Тейкера” вибираємо формат подачі цієї різниці – прямий, різниця чи відношення (пояснення аналогічне як і в ціні).
Різницю угод тейкера показує обсяги угод, ініційованих трейдерами-“тейкерами” (takers) — тобто тими, хто робить ринок (купує або продає за ринковою ціною). І ця різниця, це різниця кількості (не обсягу) угод тейкера на лонг мінус кількість угод тейкера на шорт.
Важливо! Із-за обмеженості запитів на дані по відкритому інтересу, відношенню лонг/шорт і різниці тейкера, максимальна кількість даних рівна 1440 одиниць. Відповідно, якщо кількість вхідних даних більша, то платформа не почне навчання (видасть попередження). Так, відповідно, прогноз на історії теж недоступний по цим даним. І останнє обмеження – мінімальний таймфрейм по цим даним – 5 хвилин.
У полі “К-сть вхідних даних” встановлюємо довжину вибірки, на якій модель буде вчитися.
У полі “К-сть циклів навчання” встановлюємо кількість циклів навчання, які проведе платформа для того, щоби вивести єдиний результат (середнє значення із проведених навчань).
Вкладка “Торгівля/Дані”
Дана вкладка призначена для налаштування даних по прогнозуванню та трейдингу, а також, виводу інформації по позиціям та угодам.
Важливо. Платформа відкриває угоди в односторонньому режимі (не в хедж).
Блок “Налаштування торгівлі і прогнозування” відповідно призначений для налаштування процесу торгівлі та прогнозування. Для зручності, налаштування подані у вигляді таблиці. Розглянемо її:
У полі “Пара” із випадаючого списку вибираємо контракт, який ми хочемо торгувати чи прогнозувати. Контракти посортовані за алфавітом для зручності пошуку.
Поле “Тільки вихід” призначене для того, щоби завершити поточну угоду, і нову не відкривати. Тобто, якщо є відкрита позиція – бот доведе її до завершення згідно налаштувань, а нову відкривати не буде.
Поля “Лонг” і “Шорт” відповідно призначені для дозволу на відкриття позицію у вказану сторону. Наприклад, якщо не стоїть галка на “Лонг”, то торговий бот не буде входити в сторону покупки.
У полі “Таймфрейм” вибираємо робочий таймфрейм для торгівлі та прогнозування.
Далі йде суто торгові налаштування. У полі “Об’єм, %” вказуємо об’єм позиції відносно розміру депозиту на торговому рахунку на ОКХ (кошти на фінансовому та інших рахунках не враховуються). Якщо розрахунковий об’єм вийде меншим за мінімальний (відносно правил біржі), то угода відкриється мінімальним обсягом.
У полі “К-сть усереднень” вказуємо скільки усереднень дозволено зробити торговому боту. Якщо не хочете, щоби бот для трейдингу узагалі робив усереднення – поставте у цьому полі значення “0”.
У полі “Крок усереднення” вказуємо, яким кроком буде проводитися усереднення. Іншими словами, скільки % буде між першим входом та першим усередненням, і між усіма іншими усередненнями.
У полі “Мартін” вказуємо коефіцієнт мартінгейлу для усереднення, тобто, у скільки разів об’єм ордера на усереднення буде більшим за попередній. Наприклад, якщо перша угода вийшла обсягом 5 контрактів і мартінгейл стоїть два, то перше усереднення буде на 10 контрактів (5 х 2), друге – 20 контрактів (10 х 2), третє – 40 контрактів (20 х 2) і т.п. Якщо ви не плануєте використовувати мартінгейл, то установіть у цьому полі значення “1”. Важливо не зловживати даним коефіцієнтом, тут присутній ризик!
У полі “Множник усереднення” ставимо коефіцієнт, у скільки відстань між кожним наступним усередненням буде більшим за попереднє. Наприклад, у нас крок усереднення стоїть 1%, а множник усереднення 2, тоді, перше усереднення буде 1%, наступне буде 2% (крок 1% х множник 2), далі 4% (попереднє усереднення 2% х множник 2), ще далі 8% (попереднє усереднення 4% х множник 2) і т.п. Якщо не хочете, щоби відстань між усередненнями змінювалися, поставте значення 1% у цьому полі.
У полі “Тейк, %” встановлюємо розмір тейк-профіту для позиції (фіксація прибутку). Якщо тейк-профіт не потрібно встановлювати у налаштуваннях, встановіть значення “0” у даному полі.
У полі “Стоп, %” встановлюємо розмір стоп-лоссу для позиції (фіксація збитку). Якщо тейк-профіт не потрібно встановлювати у налаштуваннях, встановіть значення “0” у даному полі.
У полі “Трейл, %” встановлюємо розмір трейлінг-профіту для позиції. У цьому боті використовується саме трейлінг профіт, а не трейлінг-стоп. Тобто, він активується тільки тоді, коли позиція знаходиться у плюсі на розмір цього трейлінгу. Тобто, якщо трейлінг встановлений 3%, то він буде активований коли прибуток по позиції буде 3% і вище, і далі буде трейлити по факту росту прибутку.
У полі “Плече” вказуємо з яким плечем буде відкриватися позиція. Якщо на рахунку є відкриті позиції, плече встановлюватися не буде
Якщо трейлінг-профіт не потрібно встановлювати у налаштуваннях, встановіть значення “0” у даному полі.
Щоби видалити лінійку із налаштуванням, натисніть на кнопку із корзиною.
Якщо потрібно закрити позицію по певному інструменту та відмінити активні ордера, натисніть кнопку із хрестиком.
Щоби добавити лінійку для налаштувань ще одного інструменту, натисніть на саму нижню (не заповнену) лінійку, і введіть там ваші налаштування.
Важливо. Усі поля налаштувань мають бути заповненими.
Коли ви натискаєте кнопку “Старт” або “Прогноз” – таблиця із налаштуваннями зберігається.
У блоці “Відкриті позиції” виводиться інформація про поточні відкриті позиції – інструмент, у якому позиція відкрита, середня ціна позиції, обсяг (якщо зі знаком мінус, значить це шорт) і PnL (прибуток/збиток).
У блоці “Відкриті ордера” виводиться інформація про активні (діючі) відкриті ордера – інструмент, у якому відкритий ордер, сторона ордеру (покупка/продаж), тип (лімітний/умовний), ціна та об’єм ордеру.
Вкладка “Налаштування”
Дана вкладка призначена для налаштування платформи.
Блок “Налаштування прогнозування” призначений відповідно для налаштування прогнозування.
У полі “Довжина прогнозу (барів)” вказуємо довжину прогнозу в барах/свічках на поточному таймфреймі. Потрібно мати на увазі, що чим далі прогноз у часі, тим менша його точність.
Якщо поставити галку у полі “Зберігати скріншоти прогнозів“, то у торговому режимі бот буде зберігати скріни після кожного навчання у папці “Screen” у місці розташування бота.
У полі “Частота прогнозу (секунд)” вказуємо з якою частотою (через скільки часу) повторювати прогнозування. Для великих таймфреймів немає змісту робити це часто (так як не відбувається часто багато змін). Поки попередній прогноз не завершився – новий не почнеться, тому не потрібно переживати, якщо ви поставили малу частоту.
Блок “Налаштування графіку” служить для налаштувань візуальної частини.
Щоби на графіку відображалися відкриті позиції – поставте галку в полі “Відображати відкриту позицію“.
Щоби на графіку відображалися активні ордера – поставте галку в полі “Відображати відкриті ордера“.
Щоби на графіку відображалася історія угод – поставте галку в полі “Відображати закриті угоди“.
У полі “Вигляд графіку” можна вибрати, як вам зручніше бачити графік – свічки, бари чи лінія (по цінам закриття).
У полі “Відображати (барів)” встановлюється скільки барів буде видно на графіку.
Блок “Налаштування торгівлі” служить для налаштувань торгової частини.
У полі “Бар входу (по прогнозу)” вказуємо, на якому барі/свічі вважати сигнал від прогнозу достатнім для входу. Наприклад, ми поставили бар для входу 15, а максимум прогнозу був на значенні 12 – значить є тренд на зниження, і так як пік його в межах 15, то бот може входити в позицію на шорт.
Ось вище схематичне зображення.
Якщо поставити галку у “Вихід по протилежному сигналу“, то бот, при наявній відкритій позиції, закриє її, якщо появиться протилежний сигнал згідно налаштувань платформи.
Якщо поставити галку у “Без навчання”, то торговий бот буде торгувати тільки по фільтрам. У цьому режимі бот не запускає модуль навчання і не використовує прогнозування.
У полі “Частота торг. модуля (сек)” вказується частота запуску торгового модулю. Це корисно, для балансування кількості запитів, особливо, якщо використовується велика кількість даних (щоби не було пауз від біржі, за велику кількість даних за короткий час).
Якщо встановити “Усереднення по сигналу“, то торговий бот перестане усереднювати стандартним способом (лімітками), а перейде на режим, коли кожне наступне усереднення буде виключно по новому сигналу (згідно налаштувань).
У полі “Пауза між сигналам (хв)” вказується мінімальна пауза між усередненнями. Це захист від ситуацій, коли є серія сигналів, що повторюються.
У полі “Мартінгейл усереднення” вказуємо коефіцієнт мартінгейла для кожного наступного усереднення. Тобто, у скільки разів нове усереднення буде більше за обсягом від попереднього.
У полі “Мінімальний тейк профіт, %” вказуємо мінімальне значення для тейк профіту, щоб бот міг закрити угоду (при усередненні по сигналу). Якщо цей параметр не актуальний, то залиште значення 0.
Вкладка “Фільтр”
Дана вкладка призначена для налаштування торгових фільтрів.
Блок “Фільтр волатильності” призначений відповідно для налаштування фільтру волатильності (захист від відкриття угод під час високої волатильності).
Щоби задіяти цей фільтр потрібно натиснути галку “Задіяти фільтр волатильності“.
У полі “Максимальне відношення” вносимо коефіцієнт, який буде обмежувати фільтр. Тобто, якщо тут стоїть, наприклад, 3, і поточна свіча більша за середню у ці 3 рази, то буде діяти заборона на відкриття угод.
У полі “Період для середнього” ставимо період, за який буде визначатися середній розмір свічі (він порівнюється, вище описано).
І у полу “Застосовувати для (барів)” вказуємо, на скільки останніх свічок припадає дія фільтра. Якщо тільки на поточну, то ставимо значення 1. Якщо потрібно, щоби на більшу кількість – вказуємо скільки потрібно.
Блок “Фільтр торгового часу” призначений відповідно для налаштування часових проміжків для торгівлі.
Щоби задіяти цей фільтр потрібно натиснути галку “Задіяти фільтр часу“.
Далі вибираємо формат налаштувань. Якщо в налаштований проміжок часу потрібно, щоби бот торгував, то вибираємо “Дозволити торгувати у вказаний час“. Якщо навпаки, потрібна заброна на торгівлю в налаштований час, то вибираємо “Заборонити торгувати у вказаний час“.
У полях “від часу” і “до часу” налаштовуємо необхідний час. А нижче, галками можна позначити, у які дні має діяти цей фільтр.
Щоби цей фільтр виводився на основний графік, потрібно натиснути галку “Відображати на графіку“.
Блок “Фільтр RSI” призначений відповідно для налаштування можливості відкрити угоду, при наявності сигналу від RSI.
У полі “Період RSI” вказуємо період для індикатору RSI.
У полі “Нижня границя” вказуємо нижню границю, на виході з якої, фільтр дає дозвіл на відкриття угоди на покупку.
У полі “Верхня границя” вказуємо верхню границю, на виході з якої, фільтр дає дозвіл на відкриття угоди на продаж.
Цей фільтр враховує тільки закриті свічі – тобто, поточна, яка ще не закрила таймфрейм, не враховується. Ось приклад, як працює цей фільтр:
Щоби цей фільтр виводився на основний графік, потрібно натиснути галку “Відображати на графіку“.
Блок “Фільтр відкритого інтересу” призначений відповідно для налаштування можливості відкрити угоду, при наявності дозволу від відкритого інтересу.
Фільтр відкритого інтересу вираховується через “індексування”, тобто, будується графік від 0 до 100. Це дозволяє побачити зони, до варто дивитися у сторону покупки, а де у сторону продажу.
Ось як розраховується індекс (тільки там не weeks, а вибраний таймфрейм):
У полі “Період індексування” вибираємо період, згідно якого буде будуватися індекс.
У полі “Нижня границя” вказуємо нижню границю, нижче з якої, фільтр дає дозвіл на відкриття угоди на покупку.
У полі “Верхня границя” вказуємо верхню границю, вище якої, фільтр дає дозвіл на відкриття угоди на продаж.
Ось приклад на скріні:
Щоби цей фільтр виводився на основний графік, потрібно натиснути галку “Відображати на графіку“.
Цей фільтр працює на таймфреймі 5 хвилин і вище (із-за обмежених даних).
Блок “Фільтр лонг/шорт” призначений відповідно для налаштування можливості відкрити угоду, при наявності дозволу від даних по відношенню лонг/шорт.
Цей фільтр будується через побудову конверта. Тобто, по даним відношення лонг/шорт будується ковзаюча середня із вказаним періодом. Потім розраховується щось типу ATR – середня різниця між значеннями. А потім ця різниця множиться на кількість відхилень, і додається (верхня лінія) та віднімається (нижня лінія) від ковзаючої.
Суть знайти відхилення від по індикатору (коли він виходить за межі конверту, тобто, середніх значень) – саме тоді є хороші можливості для угоди. Приклад на скріні:
У полі “Період конверту” вказуємо період для побудови індикатора.
У полі “Відхилення (к-сть ATR)” вказуємо скільки відхилень у значеннях відношення лонг шорт використовувати для побудови конверту (ширина конверту).
Щоби цей фільтр виводився на основний графік, потрібно натиснути галку “Відображати на графіку“.
Цей фільтр працює на таймфреймі 5 хвилин і вище (із-за обмежених даних).
Відео безпосередньо по фільтрам>>>
Хто надає перевагу формату відео інструкції, запрошую до перегляду:
Важливо! Антивіруси та схоже ПЗ може лаятись на криптовалютний робот – це пов’язане із тим, що програма завантажена із інтернету, а Algo Trading UA є невідомим для них видавцем. Тому, якщо не довіряєте торговому боту, запускайте його на віддаленому сервері (я узагалі рекомендую працювати виключно на віддаленому сервері).
Якщо у вас є додаткові питання по платформі, зверніться до розділу частих запитань (FAQ).
Перелік оновлень платформи
У даному підрозділі вказані оновлення платформи із вказанням поточної версії (номер версії знаходиться у квадратних дужках в шапці бота). Завантажити останню версію можна в чаті спільноти.
Версія 1.7.2.4 (від 07.12.2025). Що змінилося:
- Поправлено відображення позиції, ордерів і історії угод на графіку
- Поправлено навчання при наявності кількох інструментів
Версія 1.6.2.4 (від 01.12.2025). Що змінилося:
- Добавлена можливість встановлення мінімального тейк-профіту для режиму виходу по протилежному сигналу
Версія 1.4.2.3 (від 02.11.2025). Що змінилося:
- Добавлена можливість встановлення плеча
- Добавлений метод усереднення через новий сигнал
Версія 1.3.2.3 (від 26.10.2025). Що змінилося:
- Повний перелік змін тут>>>
Версія 1.2.2.3 (від 19.10.2025). Що змінилося:
- Оптимізована робота із отриманням даних
Версія 1.1.2.3 (від 14.10.2025). Що змінилося:
- Поправлена робота фільтру часу
Версія 1.0.2.3 (від 12.10.2025). Що змінилося:
- Повний перелік змін тут>>>
Версія 0.2.2.3 (від 11.09.2025). Що змінилося:
- Змінена обробка API для OKX, таким чином, щоби при додаванні нових контрактів не виникали помилки (нульові специфікації)
- Поправлена робота трейлінг-профіту
- Змінені деякі іконки – на VPS не усі відображалися
- Проведена адаптація зовнішнього вигляду для маленьких екранів (частина кнопок була не доступна)
Версія 0.1.2.2 (від 04.09.2025). Перша версія платформи (MVP – мінімальний життєздатний продукт)














