Setup Guide

TradingView → Webhook → Telegram

Webhook endpoint работает только на опубликованном (published) домене. Preview-ссылка не доступна извне.
1

Настройка секретов в проекте

Прежде чем TradingView сможет отправлять сигналы, нужно задать секрет в backend (Lovable Cloud).

1.1. Создай TV_WEBHOOK_SECRET

  1. Открой настройки проекта → Secrets / Environment Variables
  2. Добавь секрет с именем TV_WEBHOOK_SECRET
  3. Значение — любая строка минимум 8 символов, например:
    MySuperSecret123
Запомни это значение — оно понадобится в Pine-скрипте.

1.2. (Опционально) Telegram-уведомления

Если хочешь получать сигналы в Telegram:

СекретОткуда взять
TELEGRAM_API_KEYУ BotFather создай бота → скопируй токен
TELEGRAM_CHAT_IDНапиши боту @userinfobot или ID группы
LOVABLE_API_KEYВ настройках проекта → Lovable API Key
2

Загрузка Pine-скрипта в TradingView

2.1. Скачай скрипт

Скачай файл ict_pro_signals_v6.pine с дашборда или из корня проекта.

2.2. Создай индикатор

  1. Открой график любой валютной пары (рекомендуется EURUSD, GBPUSD, XAUUSD)
  2. Внизу графика нажми Pine Editor (или </>)
  3. Удали всё, что есть в редакторе, и вставь скопированный скрипт
  4. Нажми «Добавить в график» или Ctrl+Enter

2.3. Настрой входные параметры

Правый клик по названию индикатора → Settings:

ПараметрЗначениеОписание
Webhook SecretMySuperSecret123Тот же секрет, что в Step 1
Modelivelive = реальная торговля, backtest = тесты
HTF Bias TF60Таймфрейм тренда (H1 = 60 мин)
HTF EMA length50Период EMA тренда
Swing length10Период свингов
ATR length14Период ATR для SL/TP
ATR x SL1.5Множитель ATR для стопа
TP1 R multiple1.0Первый тейк (1R)
TP2 R multiple2.0Второй тейк (2R)
Show FVG / OBFair Value Gaps и Order Blocks
Tip: Чтобы в шапке графика не отображались значения параметров: в настройках индикатора → вкладка Style → сними галочки «Values in status line» и «Arguments».
3

Настройка Alert в TradingView

3.1. Создание алерта

  1. Справа на графике нажми Alert (🔔) или Alt+A
  2. В поле Condition выбери:
    • ICT Pro Signals v6
    • Any alert() function call
  3. В поле Message вставь ровно:
    {{message}}
  4. В поле Webhook URL вставь:
    https://telegram-enchanter.lovable.app/api/public/tv-webhook
  5. Expiration → выбери Open-ended (бессрочный)
  6. Нажми Create
Важно: Не оставляй дефолтный текст TradingView (ICT Pro Signals v6 (...)). Если оставить — сервер получит мусор вместо JSON и ответит ошибкой 400.

3.2. Повтори для каждого символа

Создай отдельный алерт для каждой пары и таймфрейма:

  • EURUSD / M5
  • GBPUSD / M5
  • XAUUSD / M15
TradingView позволяет создать несколько вебхук-алертов на один сигнал. Можно параллельно отправлять в Make/Zapier + в этот проект.
4

Проверка 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 (визуально)

  1. Дождись появления стрелки LONG (▲ зелёная) или SHORT (▼ красная)
  2. Если алерт настроен правильно — в правом нижнем углу TradingView появится значок сработавшего алерта
  3. Проверь в проекте: новый сигнал должен появиться на дашборде

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.

Корреляция пар:

СимволКоррелирует с
EURUSDGBPUSD
GBPUSDEURUSD
AUDUSDNZDUSD
NZDUSDAUDUSD
USDCHFUSDJPY
USDJPYUSDCHF
XAUUSDXAGUSD
XAGUSDXAUUSD

Если коррелирующая пара недавно дала противоположный сигнал → текущий блокируется (дивергенция). Если тот же сигнал → помечается 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 секрета заполнены и бот имеет право писать в чат/группу.