Як налаштувати бота OKX для сигнальної торгівлі на TradingView
Із запуском продукту «Сигнальні боти» користувачі TradingView і постачальники сигналів тепер можуть публікувати сигнального бота зі своїми сигналами TradingView та змінювати його параметри. Дотримуючись наведеної далі покрокової інструкції, ви зможете почати торгувати з сигналами на OKX.
У розділі Специфікації оповіщень наведено вичерпний посібник з детальним описом технічних характеристик текстових оповіщень.
Якщо у вас виникнуть труднощі, знайдіть у посібнику список поширених запитань у розділі FAQ. Цей ресурс покликаний допомогти вам усунути проблеми, що можуть виникати в процесі використання продукту.
Крок 1. Перехід до сигнального бота
Увійдіть в акаунт OKX, перейдіть до розділу Торгівля -> Торговий бот -> Ринок.
Далі виберіть підвкладку «Сигнальний бот» і натисніть «Створити».
Крок 2. Створення сигналу
Ви побачите кнопку для створення власного сигналу. Натисніть «Додати власний сигнал», щоб розпочати.
Ми спростили цей процес, щоб користувачі могли швидко налаштувати сигнали TradingView. На першому кроці ви можете назвати сигнал і вставити його опис (до 500 символів; необов'язково). Коли все буде готово, натисніть «Створити сигнал», щоб перейти до наступного кроку.
Після натискання «Створити» відкриється наступна сторінка, на якій вам буде запропоновано додати URL-адресу вебхука та специфікацію AlertMsg, яку автоматично формує OKX. Звідси ви налаштовуватимете push-сповіщення сигналу на TradingView. Врахуйте, що оповіщення можна налаштувати двома різними способами:
«TradingView»: призначено для користувачів, які використовують скрипти стратегії TradingView, особливо для тих, хто використовує функції strategy.*() для передавання сигналів;
«Індивідуальний»: призначено для ширшого кола користувачів, зокрема тих, хто використовує індикатори TradingView, оповіщення на графіку, а також постачальників, які працюють зі сторонніми програмами.
Короткий огляд Pine Script™: «Стратегія» чи «Індикатор»
Стратегія TradingView
Стратегії Pine Script™ призначені для тестування на історичних даних, а також тестування в реальних ринкових умовах. Поряд з розрахунками індикаторів стратегії містять виклики функцій strategy.*(), які передають торгові ордери в емулятор брокера Pine Script™. Потім цей емулятор може імітувати виконання цих ордерів. Результати тестування на історичних даних візуалізуються на вкладці «Тестувальник стратегій», розташованій у нижній частині графіка поруч з вкладкою «Редактор Pine Script™».
Якщо ви використовуєте скрипти стратегії TradingView з функціями strategy.*()**, перейдіть одразу до пункту «Крок 3.1. Функції TradingView strategy.*()» для початку роботи.
Індикатор TradingView
З іншого боку, індикатори Pine Script™ також передбачають розрахунки, але вони не призначені для використання в рамках тестування на історичних даних. Завдяки незалежності від емулятора брокера індикатори споживають менше ресурсів і виконуються швидше. Крім того, у PineScript™ v4 вони також відомі як навчальні скрипти, а не індикатори.
Користувачам, які використовують індикатори/навчальні скрипти та сторонні програми, можна перейти до Кроку 3.2, Кроку 3.3 або Кроку 3.4 залежно від конкретного випадку використання. Цей розділ присвячений більш загальним випадкам використання та розрахований на користувачів, які працюють з індикаторами TradingView, оповіщеннями на графіках, а також на постачальників, які працюють зі сторонніми програмами.
Крок 3. Налаштування оповіщень TradingView
У розділі «Специфікації оповіщень» наведено вичерпний посібник з детальним описом технічних характеристик текстових оповіщень.
Для початку відкрийте TradingView і виберіть торгову пару, з якою ви хочете працювати. (Переконайтеся, що вибрано потрібний безстроковий своповий контракт.)
Безстрокові свопи, що підтримуються на OKX, можна переглянути у списку вибору пари на сторінці «Торгівля».
Крок 3.1【Інструкція з використання скриптів стратегії TradingView】: для розробників стратегій Pinescript™, які користуються функціями strategy.*()
Крок 1. Налаштуйте скрипт стратегії в редакторі Pine і натисніть «Зберегти» й «Додати на графік». Якщо у вас уже є скрипт стратегії, ви можете додати його на графік.
Крок 2. Натисніть значок шестерні навпроти стратегії, яку ви додали до графіка. Змініть властивості стратегії, як-от розмір ордера, відповідно до потреб. Коли все буде готово, натисніть «OK», щоб завершити налаштування.
Як синхронізувати налаштування ордерів стратегії TradingView з OKX?
У стратегії TradingView у вас є три способи налаштування параметрів ордера: ви можете визначити «розмір ордера» в USDT, кількості контрактів або відсотках від капіталу на основі початкового капіталу. Хоча в кінцевому підсумку всі ці способи можна пристосувати під використання на OKX, важливо чітко розуміти, як кожен спосіб працює на TradingView і як усе переноситься на платформу OKX. Тут ви знайдете стислий огляд різних сценаріїв реалізації цього процесу.
1. Розмір ордера: USDT
Цей підхід простий і зручний для користувача. Ви вводите розмір ордера безпосередньо в абсолютному вираженні, у валюті котирування — USDT. Під час тестування на історичних даних на TradingView ця величина слугуватиме основою для розміщення всіх ваших ордерів.
Щоб забезпечити бездоганну сумісність з OKX, не забудьте встановити для параметра investmentType значення base, а для amount — {{strategy.order.contracts}}. Якщо ці вимоги виконано, ордер на OKX чітко відповідатиме вашій стратегії TradingView.
{
"id": "{{strategy.order.id}}",
"action": "{{strategy.order.action}}",
"marketPosition": "{{strategy.market_position}}",
"prevMarketPosition": "{{strategy.prev_market_position}}",
"instrument": "{{ticker}}",
"signalToken": "********", //введіть signalToken для свого сигналу
"timestamp": "{{timenow}}",
"maxLag": "60",
"investmentType": "base",
"amount": "{{strategy.order.contracts}}"
}
2. Розмір ордера: контракти
Важливо розуміти таку ключову відмінність: поняття «контракт» визначається на платформах TradingView та OKX по-різному. На TradingView контракт — це одна одиниця безстрокового свопу за переважною ціною (еквівалент однієї одиниці базової валюти, тобто один контракт безстрокового контракту BTCUSDT еквівалентний купівлі 1 BTC). А на OKX «розмір контракту» є унікальним для кожного безстрокового свопового контракту (наприклад, один безстроковий контракт BTCUSDT еквівалентний купівлі на суму 0,01 BTC). Вичерпну інформацію про розміри контрактів OKX можна знайти тут: https://www.okx.com/trade-market/info/swap.
Щоб забезпечити безпроблемну синхронізацію з OKX, важливо встановити для параметра investmentType значення base, а для amount — {{strategy.order.contracts}}. Примітно, що на TradingView заповнювач "{{strategy.order.contracts}}" фактично відповідає сумі в базовій валюті. Встановлення значення base для параметра investmentType забезпечує пряму сумісність. Дотримання цих вимог гарантує, що ордери на OKX ідеально відповідатимуть вашій стратегії TradingView.
{
"id": "{{strategy.order.id}}",
"action": "{{strategy.order.action}}",
"marketPosition": "{{strategy.market_position}}",
"prevMarketPosition": "{{strategy.prev_market_position}}",
"instrument": "{{ticker}}",
"signalToken": "********", //введіть signalToken для свого сигналу
"timestamp": "{{timenow}}",
"maxLag": "60",
"investmentType": "base",
"amount": "{{strategy.order.contracts}}"
}
3. Розмір ордера: % від капіталу
При використанні параметра «% від капіталу» важливо розуміти, що ваш капітал базується на величині, яку ви вказуєте як початковий капітал. Потім ваш капітал визначається та оцінюється за результатами тестування на історичних даних на TradingView.
Хоча це можна емулювати, задавши значення base для параметра investmentType і значення "{{strategy.order.contracts}}" для параметра amount (як показано нижче), важливо враховувати, що величини, отримані таким способом, значною мірою залежать від розрахунків за результатами тестування на історичних даних. У реальному сценарії між тестуванням на історичних даних і торгівлею в реальному часі можуть виникнути розбіжності, оскільки таке тестування призначене для орієнтовних оцінок, а не для точного виконання ордерів. Тому рекомендується встановлювати визначення розміру ордера у USDT або контрактах на TradingView.
{
"id": "{{strategy.order.id}}",
"action": "{{strategy.order.action}}",
"marketPosition": "{{strategy.market_position}}",
"prevMarketPosition": "{{strategy.prev_market_position}}",
"instrument": "{{ticker}}",
"signalToken": "********", //введіть signalToken для свого сигналу
"timestamp": "{{timenow}}",
"maxLag": "60",
"investmentType": "base",
"amount": "{{strategy.order.contracts}}"
}
Крок 3. Натисніть «Оповіщення» на верхній панелі інструментів і змініть «Умова» на скрипт, щойно доданий на графік з параметром «Тільки виконання ордерів». Експірацію також можна вибрати як «Безстрокове оповіщення» для зручності.
Крок 4. Отримайте шаблон текстового оповіщення з вкладки TradingView у специфікації оповіщень OKX на сигналі OKX. Потім вставте цей шаблон у розділ «Повідомлення» оповіщення TradingView і вкажіть відповідну назву оповіщення.
Якщо в рекомендований шаблон оповіщення потрібно внести зміни, ви можете це зробити, але переконайтеся, що вони відповідають специфікаціям оповіщень, наведеним тут.
Крок 5. Виберіть розділ «URL-адреса вебхука»* у меню «Повідомлення». Вставте URL-адресу вебхука, скопійовану з OKX, у TradingView, а потім натисніть «Створити».
Будь ласка, зверніть увагу, вам знадобиться платна підписка TradingView, щоб мати доступ до цієї функції
Крок 3.2【Індикатор/Навчальний посібник TradingView】 для розробників індикаторів / навчальних скриптів Pinescript™
Крок 1. Налаштуйте скрипт у редакторі Pine і натисніть «Зберегти» й «Додати на графік».
Крок 2. Натисніть «Оповіщення» на верхній панелі інструментів і змініть «Умова» на скрипт, щойно доданий на графік з відповідною умовою AlertCondition. У цьому випадку Золотий хрест MACD використовується разом із Шаблоном повідомлення ENTER_LONG. Експірацію також можна вибрати як «Безстрокове оповіщення» для зручності.
Нарешті, отримайте шаблон текстового оповіщення з вкладки «Індивідуальний» у специфікації оповіщень OKX на сигналі OKX. Потім вставте цей шаблон у розділ «Повідомлення» оповіщення TradingView і вкажіть відповідну назву оповіщення.
Якщо в рекомендований шаблон оповіщення потрібно внести зміни, ви можете це зробити, але переконайтеся, що вони відповідають специфікаціям оповіщень, наведеним тут.
*ВАЖЛИВО. Компанія OKX надала 4 повідомлення різного змісту з різними діями (наприклад, ENTER_LONG, EXIT_LONG, ENTER_SHORT, EXIT_SHORT). Під час налаштування оповіщення виберіть потрібне залежно від торгової логіки.
Крок 3. Виберіть «URL-адреса вебхука»* у меню «Повідомлення». Вставте URL-адресу вебхука, скопійовану з OKX, у TradingView, а потім натисніть «Створити».
Крок 3.3【Інструкція з графічного аналізу】 для трейдерів, які користуються засобами графічного аналізу й/або базовими лінями індикаторів
Крок 1. Натисніть кнопку «Оповіщення» на верхній панелі інструментів і встановіть умову на основі того, як ви зазвичай торгуєте (наприклад, RSI-14 перетинає 30 догори).
Потім вставте специфікації OKX AlertMsg у розділ «Повідомлення». Детальніше про специфікації OKX AlertMsg можна дізнатися тут.
*ВАЖЛИВО. Ми підтримуємо 4 повідомлення різного змісту з різними діями (наприклад, ENTER_LONG, EXIT_LONG, ENTER_SHORT, EXIT_SHORT). Під час налаштування оповіщення виберіть потрібне залежно від торгової логіки.
Крок 2. Виберіть «URL-адреса вебхука»* у меню «Повідомлення». Вставте URL-адресу вебхука, скопійовану з OKX, у TradingView, а потім натисніть «Створити».
Крок 3. Щоб переглянути створене оповіщення, натисніть вкладку «Оповіщення» й виберіть потрібне.
Крок 3.4【Інструкція з використання сторонніх програм】 для постачальників сигналів, які передають повідомлення з власних програм
Для конфігурації запиту з використанням Python скористайтеся Додатком B: Приклад запиту вебхука на Python.
Необхідно враховувати таке: якщо ви маєте намір надсилати запит зі сторонньої фіксованої IP-адреси до OKX, зверніться до нашої команди з обслуговування клієнтів з відповідними поясненнями. Це забезпечить належне опрацювання запиту нашою спеціальною командою. Якщо цей канал не залучено, усі зовнішні сигнали за умовчанням вважатимуться недійсними.
Крок 4. Налаштуйте сигнального бота
Після публікації сигналу на OKX пора підключити його до нашого сигнального бота! Для початку торкніться «Створити бота». Ви перейдете на сторінку створення сигнального бота.
Для початку потрібно задати боту мінімально необхідні параметри, а саме потрібні торгові пари, коефіцієнт кредитного плеча й суму коштів (маржу), яку ви плануєте інвестувати.
Вкрай важливо вибрати правильну торгову пару, щоб бот міг визначати відповідні можливості: просто вкажіть торгові пари, яка відповідають вашій торговій стратегії. Далі задайте коефіцієнт кредитного плеча, який ви хотіли б застосувати щодо своїх угод. Зверніть увагу, що використання кредитного плеча може збільшити потенційний прибуток, але й водночас пов'язане з підвищеним ризиком. Важливо вибирати коефіцієнт, який відповідає вашому рівню прийнятного ризику й торговим цілям. Після визначення торгових пар і коефіцієнта кредитного плеча потрібно визначитися з сумою коштів, які ви готові інвестувати в бота.
Крім базових параметрів бот пропонує розширені налаштування для уточнення торгових параметрів.
Наприклад, ви можете вибирати один з різних типів ордера, як от маркет або лімітний. Маркет ордер виконується відразу за актуальною ринковою ціною, тоді як лімітний ордер дає вам змогу виставити конкретні цінові рівні, на яких ордер має бути виконано.
Крім того, у параметрах входу можна визначити суму інвестування на ордер, яка визначає частку коштів, виділену на кожну угоду. Частка коштів, що виділяється на кожну угоду, налаштовується. Її можна задати у вираженні абсолютному (наприклад, 1000 USDT) або відсотковому (наприклад, 10% від доступного балансу), що дає вам гнучкість у визначенні розміру позиції. Зміненням цього параметра ви можете контролювати ризики й розмір позиції відповідно до торгової стратегії.
Крім того, ви можете встановити рівні тейк-профіту (TP) і стоп-лосу (SL) у налаштуваннях виходу. Тейк-профітом виставляється рівень ціни, на якому бот автоматично закриває угоду для фіксування прибутку, а стоп-лосом — рівень ціни, на якому бот виходить з угоди, щоб відрізати потенційні збитки.
Кожен з цих додаткових параметрів (крім TP і SL) ви можете безпосередньо задавати на рівні бота або отримувати ці параметри через оповіщення TradingView. Завдяки такій гнучкості ви можете вибрати спосіб, який найкраще підходить для вашого торгового стилю й робочого процесу.
Після внесення потрібних параметрів бота натисніть «Підтвердити», щоб завершити створення сигнального бота.
Крок 5. Відстежуйте нового сигнального бота й керуйте його роботою
Вітаємо! Ви успішно створили сигнального бота. Цей потужний інструмент тепер отримуватиме сигнали з вибраного вами джерела сигналів і миттєво виконуватиме угоди в режимі реального часу, що виведе вашу торгівлю на новий рівень.
Ви повністю контролюєте свого сигнального бота й маєте всю інформацію про нього. Ви можете стежити за його роботою й отримувати детальну інформацію в розділі «Деталі». Просто натисніть на показаний нижче значок.
Це вичерпне подання дає вам змогу відстежувати історію результативності, переглядати список активних позицій, відстежувати відкриті ордери, а також досліджувати позиції та історію сигналів і не тільки.
А ще ви можете переглянути журнали історії сигналів і відповідних дій з ними. Це цінний ресурс, що дозволяє аналізувати успіхи й невдачі, а відтак вдосконалювати ваш підхід і приймати виважені рішення щодо ф'ючерсних угод.
Крім того, у вас є можливість, за потреби, виконувати дії вручну. Так, ви можете коригувати маржу, виділену на бота, вручну розміщувати ордери з конкретних причин, супроводжувати активні позиції, а також вручну закривати чи скорочувати відкриті позиції. Завдяки такому рівні контролю ви можете чітко налаштувати свою торгову стратегію на основі актуальних ринкових умов і власного аналізу.
1. Налаштування (додавання/вилучення) маржі бота
У розділі «Відомості про бота» ви можете за потреби легко додати або вилучити виділену на бота маржу. Тобто тут ви можете внести додаткові кошти для бота, коли це потрібно, або забрати частину коштів, коли досягнуто значний прибуток від інвестицій (ROI).
2. Розміщення ордера вручну
По-друге, ви можете вільно розміщувати ордери вручну для бота незалежно від вхідних сигналів. Ця можливість дозволяє вручну додавати ордери для будь-якої торгової пари відповідно до специфічних потреб. В інтуїтивно зрозумілому спливному вікні можна задати параметри ордера, зокрема його тип, суму й напрямок. За допомогою цієї функції ви можете ініціювати нову позицію, збільшити або скоротити наявну чи повністю закрити відкриту позицію. Це надає вам широкі можливості у веденні активної позиції, зокрема з внесення потрібних корективів.
3. Миттєве закриття відкритих позицій
Ще одна зручність полягає в тому, що ви можете не тільки переглядати відкриті позиції, але й безпосередньо закривати їх на певній торговій парі, просто натиснувши одну кнопку. Так ви можете повністю закрити позиції в цій парі за переважною ринковою ціною. Коли ви натискаєте кнопку закриття, з'являється запит на підтвердження, щоб усе було зроблено правильно. Усе дуже просто — натисніть для підтвердження, і все готово.
4. Припинення роботи сигнального бота
Коли ви припиняєте роботу бота, система закриває всі відкриті позиції та скасовує всі відкладені ордери на нього. Залишок активів за цими ордерами повертається вам на торговий акаунт. Під час припинення роботи сигнального бота у вас є дві можливості.
1. Відомості про бота
Перейдіть на сторінку «Відомості про бота» та виберіть «Зупинити» у верхньому правому куті.
2. Вкладка «Ордери бота»
Перейдіть на вкладку «Ордери бота» зі сторінки «Торгівля», яка знаходиться внизу сторінки.
Вітаємо з успішним налаштуванням сигнального бота на сигнали TradingView! Це є важливим досягненням на шляху оптимізації ваших торгових стратегій і має всі шанси підвищити вашу прибутковість. Скористайтеся цією нагодою, щоб впевнено працювати на криптовалютному ринку й уповні розкрити свій торговий потенціал. Бажаємо вам якнайбільших успіхів на торговому шляху. Бажаєте дізнатися більше про сигнальну торгівлю? Натисніть тут.
Додаток
A. Приклад ситуації 1. Скрипт MACD з alertcondition( ) + ручне налаштування оповіщень
Щоб створити оповіщення, вам потрібно визначити умову, яка його запускає. В основу умови можна покласти різні фактори, такі як ціна, індикатори або користувацька логіка. У PineScript™ нижче для прикладу взято технічний індикатор MACD.
//@version=5
indicator('MACD Sample Script 1', overlay=true)
// Розраховуємо MACD
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
// Визначаємо умову Золотого хреста
goldenCross = ta.crossover(macdLine, signalLine)
// Визначаємо умову Хреста смерті
deathCross = ta.crossunder(macdLine, signalLine)
// За допомогою функції alertcondition генеруємо оповіщення
alertcondition(condition=goldenCross, title="MACD Golden Cross", message="")
alertcondition(condition=deathCross, title="MACD Death Cross", message="")
У цьому прикладі ми спершу обчислюємо MACD за допомогою функції macd, яка бере вхідний ряд (у нашому випадку ціни закриття) і параметри MACD (12, 26, 9). Потім задаємо умови Золотого хреста і Хреста смерті функціями crossover і crossunder, відповідно. Золотий хрест виникає, коли лінія MACD перетинає сигнальну лінію догори, а Хрест смерті виникає, коли лінія MACD перетинає сигнальну лінію донизу.
Процес налаштування оповіщень вручну детально описаний у розділі 3 (Спосіб В). Однак, з метою швидкого огляду, ви могли б розпочати налаштування, натиснувши кнопку «Оповіщення» на TradingView. Там індикатор можна вибрати разом із відповідною умовою. Наступний крок передбачає копіювання та вставлення відповідного оповіщення й URL-адреси вебхука з вашого сигналу на OKX.
B. Приклад ситуації 2. Приклад запиту вебхука на Python
``` python
import datetime
import time
import requests
import datetime
import json
import log
symbol = 'BTC-USDT-SWAP'
# входимо довгою позицією на демо, використовуючи 100% доступного балансу
signaldata_enterlong = {
"action":"ENTER_LONG",
"instrument":symbol,
"signalToken":"your signaltoken",
"timestamp":datetime.datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%S.%fZ'),
"maxLag":"2000",
"orderType":"market",
"orderPriceOffset":"0.1",
"investmentType":"percentage_balance",
"amount":"100"
}
# входимо короткою позицією на демо, використовуючи 100% доступного балансу
signaldata_entershort = {
"action":"ENTER_SHORT",
"instrument":symbol,
"signalToken":"your signaltoken",
"timestamp":datetime.datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%S.%fZ'),
"maxLag":"2000",
"orderType":"market",
"orderPriceOffset":"0.1",
"investmentType":"percentage_balance",
"amount":"100"
}
# виходимо короткою позицією на демо, закриваючи відкриту позицію на 100%
signaldata_exitshort = {
"action":"EXIT_SHORT",
"instrument":symbol,
"signalToken":"your signaltoken",
"timestamp":datetime.datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%S.%fZ'),
"maxLag":"2000",
"orderType":"market",
"orderPriceOffset":"0.1",
"investmentType":"percentage_position",
"amount":"100"
}
# виходимо довгою позицією на демо, закриваючи відкриту позицію на 100%
signaldata_exitlong = {
"action":"EXIT_LONG",
"instrument":symbol,
"signalToken":"your signaltoken",
"timestamp":datetime.datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%S.%fZ'),
"maxLag":"2000",
"orderType":"market",
"orderPriceOffset":"0.1",
"investmentType":"percentage_position",
"amount":"100"
}
demo_trading_url = 'https://www.okx.com/pap/algo/signal/trigger'
live_trading_url = 'https://www.okx.com/algo/signal/trigger'
# Вводимо сигнал запитом POST
response = requests.post(live_trading_url, data=json.dumps(signaldata_enterlong))
# Переглядаємо код статусу відповіді
if response.status_code == 200:
log.info('trigger signal successful')
else:
log.info('trigger sitgnal failed')
```
C. Зразки скриптів OKX TradingView
[Скрипт стратегії TradingView для початківців] Стратегія RSI: https://www.tradingview.com/script/3Is1tjRU-OKX-Signal-Bot-Beginner-s-Guide-RSI-Strategy/
[Скрипт індикатора TradingView для досвідчених] Правила торгівлі від «Черепашок»: https://www.tradingview.com/script/UUKKgHCB-OKX-Signal-Bot-Turtle-Trading-Rules/
Специфікації оповіщень
Більше про специфікації оповіщень OKX можна дізнатись у цій статті.
Поширені запитання
Якщо у вас виникли питання про стратегії формування сигналів, шукайте відповіді на них у цій статті.