Используйте ИИ как парного разработчика: он формулирует варианты, объясняет ошибки и делает механические правки, а Pine Editor остается компилятором и источником факта. Самая надежная единица работы — одно небольшое изменение с видимым результатом на графике.
С чего не стоит начинать
Запрос «напиши прибыльную стратегию» не содержит проверяемой задачи. Модель вынуждена придумать правила входа, риск, рынок и критерий успеха. Получается правдоподобный код с неявными допущениями.
Перед генерацией запишите контракт:
- индикатор или стратегия;
- Pine Script v6;
- точный рынок и тип данных;
- таймфрейм;
- формула входа и выхода;
- момент подтверждения сигнала;
- размер позиции;
- комиссия и проскальзывание;
- допустимость repainting;
- формат алерта.
Хорошая постановка задачи
Вместо общего запроса дайте спецификацию:
Напиши индикатор Pine Script v6.
Условия:
- EMA 20 и EMA 50 по close;
- long-сигнал только при подтвержденном crossover на закрытии бара;
- сигнал отображается один раз, без переноса назад;
- никаких request.security и нестандартных свечей;
- inputs для обоих периодов;
- alertcondition с JSON-сообщением;
- сначала перечисли допущения, затем дай полный код.
Такой prompt не обещает прибыль, но задает проверяемое поведение.
Делите работу на слои
| Этап | Задача ИИ | Проверка человека |
|---|---|---|
| Спецификация | Найти неоднозначности | Утвердить правила |
| Минимальный код | Создать inputs и plots | Компиляция |
| Сигнал | Добавить condition | Метки на контрольных барах |
| Данные | Настроить request | Момент доступности значений |
| Стратегия | Добавить orders | Исполнение и свойства |
| Алерт | Сформировать JSON | Alert Log и webhook |
| Рефакторинг | Упростить код | Равенство результатов |
Не просите одновременно переписать архитектуру, исправить ошибку и оптимизировать доходность. После большого изменения трудно установить причину расхождения.
Шаг 1. Получите минимальный компилируемый индикатор
Начните с plots без сделок и алертов. Вставьте код в Pine Editor. Если ошибка, скопируйте точное сообщение, номер строки и небольшой релевантный фрагмент.
Официальный Pine Script User Manual — источник синтаксиса. Просите модель опираться на текущую версию, а незнакомую функцию проверяйте по manual.
Плохой цикл:
- модель выдала 200 строк;
- компилятор показал 12 ошибок;
- модель переписала весь файл;
- появились новые ошибки.
Рабочий цикл исправляет первую ошибку, потому что последующие могут быть ее следствием.
Шаг 2. Сделайте промежуточные значения видимыми
ИИ легче помогает, когда проблема наблюдаема. Временно добавляйте:
- plot исходной и преобразованной series;
- plotshape для каждого подусловия;
- bgcolor для режима;
- table с текущими значениями;
- label только на последнем баре для отладки.
Просите объяснить конкретный бар: какие значения участвовали и почему condition стало true. Ответ сверяйте с Data Window.
Шаг 3. Зафиксируйте правила данных
Для каждого request.security() укажите:
- символ и таймфрейм;
- нужен текущий или последний подтвержденный HTF-бар;
- поведение gaps;
- запрет lookahead bias;
- что происходит на realtime-баре.
Фраза «без перерисовки» слишком общая. Лучше: «дневное значение становится доступно только после закрытия дневного бара; на младшем таймфрейме использовать последнее подтвержденное значение».
Официальный раздел Other timeframes and data содержит модели request.*(). Детальный аудит есть в статье почему индикатор перерисовывается.
Шаг 4. Проверьте перерисовку экспериментом
Не принимайте комментарий // non-repainting за доказательство.
- Запишите сигналы на текущих барах.
- Дождитесь закрытия нескольких свечей.
- Перезагрузите индикатор.
- Сравните метки.
- Проверьте HTF-переход.
- Повторите на другом символе и сессии.
Если нужен предварительный сигнал, назовите его preliminary и оформите отдельно от confirmed. ИИ может помочь реализовать оба режима, но выбор должен быть явным.
Шаг 5. Превратите индикатор в стратегию
Сначала утвердите сигналы, затем добавляйте strategy.entry и strategy.exit. Укажите модели:
- разрешены ли повторные входы;
- long, short или оба направления;
- размер и валюта позиции;
- stop и target;
- исполнение по close или следующему бару;
- комиссия, slippage и margin;
- диапазон дат теста.
После генерации проверьте свойства Strategy Tester. Код и UI могут задавать связанные настройки. Системный чек-лист находится в статье ошибки бэктестинга TradingView, а официальная модель — в документации Strategies.
Шаг 6. Просите объяснение, а не только код
Полезные вопросы к модели:
- На каком баре условие впервые может стать истинным?
- Какие значения меняются внутри realtime-бара?
- Есть ли третье состояние, которое потеряется в bool v6?
- Может ли request получить неподтвержденный HTF-бар?
- Что произойдет при
naв первых барах? - Какая заявка исполнится первой, если stop и target в одной свече?
- Какие допущения тестер не моделирует?
Если объяснение расплывчато, код еще рано автоматизировать.
Шаг 7. Создайте стабильный алерт
JSON должен иметь версию, тип события, символ, интервал и время:
{
"version": 1,
"event": "ema_cross_confirmed",
"symbol": "{{exchange}}:{{ticker}}",
"interval": "{{interval}}",
"price": "{{close}}",
"time": "{{time}}"
}
Попросите ИИ проверить схему и перечислить обязательные поля. Затем создайте алерт по закрытию бара и проверьте его в Alert Log. После изменения кода старый алерт нужно пересоздать. Подробности — в материале как работают алерты TradingView.
Как использовать Codex и MCP
Codex может работать с файлами проекта, запускать локальные проверки и подключаться к MCP-серверам. TradingView MCP иногда дает доступ к открытому Pine Editor или скриншоту графика, но остается сторонним кодом.
Безопасный сценарий:
- храните Pine-код в отдельном репозитории;
- попросите Codex изменить одну функцию;
- просмотрите diff;
- вставьте или синхронизируйте код с Pine Editor;
- скомпилируйте;
- верните точную ошибку;
- подтвердите графический результат;
- фиксируйте рабочую версию commit.
Подключение описано в статье TradingView MCP и Codex, а риски — в чек-листе безопасности MCP.
Типовые ошибки ИИ-кода
Смешение версий Pine
Модель использует v4/v5-синтаксис в v6. Указывайте версию и сверяйтесь с migration guide v6.
Несуществующие функции
Попросите ссылку на reference и сигнатуру. Если функции нет в официальном manual, замените ее документированным примитивом.
Скрытая перерисовка
Комментарий обещает non-repainting, а request.security берет текущий HTF. Проверяйте момент доступности данных.
Нереалистичный бэктест
Комиссия ноль, исполнение идеальное, стратегия торгует синтетические свечи. Вводите допущения до оценки результата.
Бесконтрольный рефакторинг
Модель меняет имена, условия и порядок вычислений одновременно. Требуйте минимальный patch и список измененных свойств поведения.
Шаблон запроса на исправление
Pine Script v6. Исправь только указанную ошибку, не меняй торговую логику.
Ошибка компилятора:
<точный текст>
Фрагмент:
<20–40 строк>
Верни:
1. причину;
2. минимальный исправленный фрагмент;
3. изменилось ли поведение на historical/realtime bars;
4. что проверить в Pine Editor.
Такой формат уменьшает вероятность, что небольшая синтаксическая правка незаметно изменит стратегию.
Вывод
ИИ полезен там, где результат быстро проверяется: шаблон, объяснение компилятора, рефакторинг и тестовые сценарии. Он опасен как источник неоспоримой торговой логики. Давайте точный контракт, работайте маленькими изменениями, проверяйте каждую series в Pine Editor и отделяйте компиляцию от честности бэктеста.
