pair, base_order_volume, take_profit), и отправляет его на уникальный URL вебхука, предоставленный 3Commas.Исходный код
Представленный ниже Pine Script код демонстрирует, как создать индикатор, который при выполнении заданных условий генерирует JSON-сигнал и отправляет его на вебхук 3Commas. Этот сигнал может быть использован для запуска новой сделки (deal) на существующем DCA боте с настраиваемыми параметрами. В качестве примера условия используется простое пересечение скользящих средних, но вы можете заменить его на любую другую логику, например, на основе Мульти-таймфреймного FVG или других индикаторов.
//@version=5
indicator('3Commas DCA Bot Signal', '3C DCA Signal', overlay=true)
// --- Настройки 3Commas Webhook ---
// ВНИМАНИЕ: Замените 'YOUR_BOT_ID', 'YOUR_API_KEY', 'YOUR_SECRET_KEY' на свои данные.
// Этот URL можно найти в настройках вашего DCA бота на 3Commas, в разделе "Connect a custom signal".
string webhookUrl = input.string('https://api.3commas.io/public/api/v2/bots/YOUR_BOT_ID/start_new_deal_by_signal?api_key=YOUR_API_KEY&secret=YOUR_SECRET_KEY', '3Commas Webhook URL', tooltip='Полный URL вебхука из настроек вашего DCA бота на 3Commas.')
string pair = input.string('USDT_BTC', 'Торговая пара', tooltip='Торговая пара для сделки (например, USDT_BTC).')
float baseOrderVolume = input.float(10.0, 'Объем базового ордера', tooltip='Объем базового ордера в валюте котировки (например, USDT).')
float takeProfit = input.float(1.0, 'Take Profit (%)', tooltip='Процент Take Profit для сделки.')
float safetyOrderVolume = input.float(10.0, 'Объем страховочного ордера', tooltip='Объем каждого страховочного ордера.')
int maxSafetyOrders = input.int(5, 'Макс. страховочных ордеров', tooltip='Максимальное количество страховочных ордеров.')
string strategyType = input.string('long', 'Тип стратегии', options=['long', 'short'], tooltip='Тип стратегии для сделки (long или short).')
// --- Условия для сигнала (пример: EMA crossover) ---
int fastLength = input.int(10, 'Быстрая EMA', minval=1)
int slowLength = input.int(20, 'Медленная EMA', minval=1)
float fastEma = ta.ema(close, fastLength)
float slowEma = ta.ema(close, slowLength)
plot(fastEma, 'Fast EMA', color=color.blue)
plot(slowEma, 'Slow EMA', color=color.red)
bool longCondition = ta.crossover(fastEma, slowEma)
bool shortCondition = ta.crossunder(fastEma, slowEma)
// --- Формирование JSON-сигнала ---
string jsonPayload = str.format(
'{{' +
' "pair": "{0}",' +
' "base_order_volume": "{1}",' +
' "take_profit": "{2}",' +
' "safety_order_volume": "{3}",' +
' "max_safety_orders": {4},' +
' "strategy": "{5}"'
'}}',
pair,
baseOrderVolume,
takeProfit,
safetyOrderVolume,
maxSafetyOrders,
strategyType
)
// --- Отправка сигнала через alert ---
if longCondition
alert(jsonPayload, alert.webhook, webhookUrl)
label.new(bar_index, high, 'LONG Signal', color=color.green, textcolor=color.white)
if shortCondition and strategyType == 'short' // Пример для шорт-сигнала, если стратегия позволяет
alert(jsonPayload, alert.webhook, webhookUrl)
label.new(bar_index, low, 'SHORT Signal', color=color.red, textcolor=color.white)
// --- Визуализация для отладки (необязательно) ---
// table.new(position.top_right, 1, 1, bgcolor=color.rgb(0,0,0,50), border_width=1)
// table.cell(table_id, 0, 0, jsonPayload, text_size=size.small, text_color=color.white)
Разбор параметров
webhookUrl: Полный URL вебхука, который вы получите из настроек вашего DCA бота на 3Commas. Он должен содержатьbot_id,api_keyиsecret.pair: Торговая пара, для которой будет открыта сделка (например,USDT_BTC).baseOrderVolume: Объем базового ордера в валюте котировки (например, в USDT). Для динамического расчета объема позиции вы можете ознакомиться со статьей Динамический Размер Позиции в Pine Script v5: Расчет % от Капитала.takeProfit: Процент Take Profit для сделки.safetyOrderVolume: Объем каждого страховочного ордера.maxSafetyOrders: Максимальное количество страховочных ордеров, которое бот может использовать в сделке.strategyType: Тип стратегии для сделки:long(покупка) илиshort(продажа).fastLength: Период для быстрой скользящей средней (EMA).slowLength: Период для медленной скользящей средней (EMA).
Как запустить
Чтобы успешно интегрировать Pine Script с 3Commas и запустить ваш DCA бот, следуйте этим шагам:
-
Настройка DCA бота в 3Commas:
-
Убедитесь, что у вас есть активный DCA бот на 3Commas. Если нет, создайте его, выбрав нужную биржу, пару и основные настройки.
-
Перейдите в настройки вашего бота.
-
-
Получение Webhook URL из 3Commas:
-
В настройках вашего DCA бота найдите раздел «Connect a custom signal» (или аналогичный).
-
Скопируйте полный URL, который будет выглядеть примерно так:
https://api.3commas.io/public/api/v2/bots/YOUR_BOT_ID/start_new_deal_by_signal?api_key=YOUR_API_KEY&secret=YOUR_SECRET_KEY. Этот URL уже содержит ID вашего бота, а также ваш API ключ и секрет.
-
-
Добавление скрипта в TradingView:
-
Откройте TradingView, перейдите в редактор Pine Script (Pine Editor).
-
Вставьте предоставленный выше код в редактор.
-
Нажмите «Добавить на график» (Add to Chart).
-
-
Настройка параметров скрипта в TradingView:
-
На графике, где добавлен индикатор, откройте его настройки (иконка шестеренки).
-
В поле
3Commas Webhook URLвставьте URL, который вы скопировали из 3Commas на шаге 2. -
Настройте остальные параметры (
Торговая пара,Объем базового ордера,Take Profit (%)и т.д.) в соответствии с вашими предпочтениями и настройками бота на 3Commas. -
Настройте параметры
Быстрая EMAиМедленная EMAдля вашего торгового условия.
-
-
Создание алерта в TradingView:
-
Нажмите правой кнопкой мыши на график или используйте кнопку «Алерт» (Alert) на панели инструментов TradingView.
-
В окне создания алерта:
-
Условие: Выберите ваш индикатор (
3Commas DCA Bot Signal) и установите условиеAny alert() call. -
Частота: Выберите
Once Per Bar Closeдля получения сигнала после закрытия свечи. -
Действия: Установите флажок
Webhook URL. -
Webhook URL: Оставьте это поле пустым, так как URL уже указан в вашем Pine Script коде и передается через функцию
alert(). -
Сообщение: Вставьте
{{alert.message}}. Это гарантирует, что TradingView отправит JSON-строку, сгенерированную вашим Pine Script, на 3Commas. -
Нажмите «Создать» (Create).
-
Теперь, когда условия, заданные в вашем Pine Script, будут выполнены, TradingView отправит кастомный JSON-сигнал на 3Commas, который запустит новую сделку на вашем DCA боте с указанными параметрами.
-




