Настройка секретов в проекте
Прежде чем TradingView сможет отправлять сигналы, нужно задать секрет в backend (Lovable Cloud).
1.1. Создай TV_WEBHOOK_SECRET
- Открой настройки проекта → Secrets / Environment Variables
- Добавь секрет с именем
TV_WEBHOOK_SECRET - Значение — любая строка минимум 8 символов, например:
MySuperSecret123
1.2. (Опционально) Telegram-уведомления
Если хочешь получать сигналы в Telegram:
| Секрет | Откуда взять |
|---|---|
| TELEGRAM_API_KEY | У BotFather создай бота → скопируй токен |
| TELEGRAM_CHAT_ID | Напиши боту @userinfobot или ID группы |
| LOVABLE_API_KEY | В настройках проекта → Lovable API Key |
Загрузка Pine-скрипта в TradingView
2.1. Скачай скрипт
Скачай файл ict_pro_signals_v6.pine с дашборда или из корня проекта.
2.2. Создай индикатор
- Открой график любой валютной пары (рекомендуется EURUSD, GBPUSD, XAUUSD)
- Внизу графика нажми Pine Editor (или </>)
- Удали всё, что есть в редакторе, и вставь скопированный скрипт
- Нажми «Добавить в график» или Ctrl+Enter
2.3. Настрой входные параметры
Правый клик по названию индикатора → Settings:
| Параметр | Значение | Описание |
|---|---|---|
| Webhook Secret | MySuperSecret123 | Тот же секрет, что в Step 1 |
| Mode | live | live = реальная торговля, backtest = тесты |
| HTF Bias TF | 60 | Таймфрейм тренда (H1 = 60 мин) |
| HTF EMA length | 50 | Период EMA тренда |
| Swing length | 10 | Период свингов |
| ATR length | 14 | Период ATR для SL/TP |
| ATR x SL | 1.5 | Множитель ATR для стопа |
| TP1 R multiple | 1.0 | Первый тейк (1R) |
| TP2 R multiple | 2.0 | Второй тейк (2R) |
| Show FVG / OB | ☑ | Fair Value Gaps и Order Blocks |
Настройка Alert в TradingView
3.1. Создание алерта
- Справа на графике нажми Alert (🔔) или Alt+A
- В поле Condition выбери:
ICT Pro Signals v6Any alert() function call
- В поле Message вставь ровно:
{{message}} - В поле Webhook URL вставь:
https://telegram-enchanter.lovable.app/api/public/tv-webhook - Expiration → выбери Open-ended (бессрочный)
- Нажми Create
ICT Pro Signals v6 (...)). Если оставить — сервер получит мусор вместо JSON и ответит ошибкой 400.3.2. Повтори для каждого символа
Создай отдельный алерт для каждой пары и таймфрейма:
- EURUSD / M5
- GBPUSD / M5
- XAUUSD / M15
Проверка Webhook
4.1. Проверь что проект опубликован
Открой URL:
https://telegram-enchanter.lovable.appЕсли страница загружается — всё ок. Если 404 — нужно нажать Publish в Lovable.
4.2. Простой тест через curl
curl -X POST https://telegram-enchanter.lovable.app/api/public/tv-webhook \
-H "Content-Type: application/json" \
-d '{
"secret": "MySuperSecret123",
"mode": "backtest",
"symbol": "EURUSD",
"timeframe": "5",
"pattern": "test",
"side": "long",
"price": 1.0850,
"stop_loss": 1.0800,
"take_profit": 1.0900,
"time": "2024-01-01T12:00:00Z"
}'Ожидаемый ответ:
{\n "ok": true,\n "mtf_confluence": false,\n "correlation_aligned": false,\n "killzone": "ny_am"\n}mode: "backtest" обходит live-фильтры (killzone, cooldown, лимиты) и позволяет просто проверить что webhook работает.4.3. Проверка через Pine Script (визуально)
- Дождись появления стрелки LONG (▲ зелёная) или SHORT (▼ красная)
- Если алерт настроен правильно — в правом нижнем углу TradingView появится значок сработавшего алерта
- Проверь в проекте: новый сигнал должен появиться на дашборде
4.4. Где смотреть логи
- DevTools → Network в браузере (если тестишь через UI)
- Логи backend в Lovable → Logs
- Убедись что
TV_WEBHOOK_SECRETв Pine-скрипте точно совпадает с секретом в проекте
Структура JSON от Pine-скрипта
{
"secret": "MySuperSecret123",
"mode": "live",
"symbol": "EURUSD",
"timeframe": "5",
"pattern": "sweep_ssl_long",
"side": "long",
"price": 1.08500,
"stop_loss": 1.08000,
"take_profit": 1.09000,
"take_profit_2": 1.09500,
"risk_reward": 2.0,
"htf_bias": "bullish",
"atr": 0.00350,
"displacement": true,
"sweep_validated": true,
"confidence": 75,
"daily_seq": 1,
"time": "2024-01-15T12:30:00Z",
"note": "killzone:ny_am"
}MTF и корреляция
MTF Confluence: Если на том же символе за последние 6 часов был сигнал в ту же сторону на большем таймфрейме (например, M15 или H1, когда текущий M5), сигнал помечается mtf_confluence: true.
Корреляция пар:
| Символ | Коррелирует с |
|---|---|
| EURUSD | GBPUSD |
| GBPUSD | EURUSD |
| AUDUSD | NZDUSD |
| NZDUSD | AUDUSD |
| USDCHF | USDJPY |
| USDJPY | USDCHF |
| XAUUSD | XAGUSD |
| XAGUSD | XAUUSD |
Если коррелирующая пара недавно дала противоположный сигнал → текущий блокируется (дивергенция). Если тот же сигнал → помечается correlation_aligned: true.
Telegram-уведомления
Если настроены секреты TELEGRAM_API_KEY, TELEGRAM_CHAT_ID и LOVABLE_API_KEY, каждый live-сигнал автоматически дублируется в Telegram:
🟢 LONG EURUSD M5
Pattern: sweep_ssl_long
Session: NY AM
Entry: 1.08500
SL: 1.08000
TP1: 1.09000
HTF: bullish
Confidence: 75%Troubleshooting
| Проблема | Решение |
|---|---|
| «Unauthorized» 401 | Проверь что secret в JSON точно совпадает с TV_WEBHOOK_SECRET в проекте. Проверь регистр и пробелы. |
| «Invalid request» 400 | В Message алерта должно быть ровно {{message}}, не дефолтный текст TradingView. |
| Сигнал приходит, но не записывается | Проверь таблицу signals в backend. Возможно, сигнал был отфильтрован (см. причину в signal_skips). |
| Нет сигналов на графике | Проверь что скрипт добавлен, график обновляется, и текущее время попадает в killzone. |
| Webhook URL not reachable | Убедись что проект опубликован (не preview). TradingView не может достучаться до preview-ссылок. |
| Cooldown — сигнал пропущен | На один символ действует cooldown 30 минут. Это нормально. |
| Нет Telegram-уведомлений | Проверь что все 3 секрета заполнены и бот имеет право писать в чат/группу. |