rss

Профиль компании

Финансовые компании

Блог компании OsEngine | Промпты для создания индикаторов. Вайбкодинг в трейдинге #6

Всем привет!

Шестая статья в серии про ИИ-вайбкодинг. Сегодня о Промптах для индикаторов.

Если робот — это стратегия, то индикатор — её глаза. В OsEngine уже больше сотни готовых индикаторов. Но иногда нужен свой, который считает именно то, что нужно Вам.

ИИ пишет индикаторы быстро, но для этого ему нужен Промпт. Разберёмся, как составлять.

Промпты для создания индикаторов. Вайбкодинг в трейдинге #6 

ВАЖНО! Внизу представлены Промпты, которые собираются современными моделями с первого раза и без ошибок. Готовые индикаторы по ним можно тут же запускать в тестере и в реале. Если у Вас проблемы, используйте хорошую модель.

 

## Сначала подаём в чат с ИИ контекст

Не забываем, перед тем, как просить ИИ написать робота, надо скормить ему контекст. Мы это уже обсуждали в этой серии, но важно повториться. Без этого мало что получится даже с таким хорошим ИИ как Kimi k2.7.

Пишем в чат с ИИ, чтобы очень подробно прочитал контекст в папке проекта.

Выглядеть в чате это может так:

Промпты для создания индикаторов. Вайбкодинг в трейдинге #6 

 

## Структура промпта на индикатор

В отличие от робота у индикатора нет «табов» и «точек входа». Структура проще.

 

**1. Идея индикатора**

Одно-два предложения. Что считаем и зачем.

 

**2. Встроенные индикаторы (если композитный)**

Какие готовые индикаторы OsEngine используем внутри. Например: EMA, MACD, RSI, ATR.

 

**3. Параметры**

Периоды, множители, типы цен. Со значениями по умолчанию.

 

**4. Выходные данные (серии)**

Что рисуем на графике:

— Линии — цвет, толщина;

— Гистограммы — цвета положительных/отрицательных столбцов;

— Уровни — пунктирные линии (перекупленность, ноль, центр);

— Тип отрисовки: Line, Column, Point.

 

**5. Логика расчёта**

Формула или алгоритм. Чётко, по шагам. Можно математикой, можно словами.

 

**6. Примеры для заимствования**

Из `CONTEXT_INDICATORS.md` берём похожий индикатор и говорим: «Сделай как KeltnerChannel, но вместо EMA+ATR используй свою формулу».

 

**7. Особыеслучаи**

— Проверка индекса: `if (index < Period) { _series.Values[index] = 0; return; }`

— Защита от деления на ноль;

— `OnProcess` вызывается для каждой свечи — не использовать `source[source.Count — 1]`

— Перерисовка истории: `_series.CanReBuildHistoricalValues = true` если нужно.

 

## Пример 1. ПРОМПТ на композитный индикатор

Идея индикатора: Делаем Trend Confirmation Index — индекс подтверждения тренда. Композитный индикатор, который агрегирует сигналы от трёх трендовых индикаторов в одно значение 0-100. 0 = все медвежьи, 100 = все бычьи, 50 = нейтраль.

 

Встроенные индикаторы:

— EMA (период 9) — быстрая скользящая

— EMA (период 21) — медленная скользящая

— MACD (Fast=12, Slow=26, Signal=9) — для импульса

— RSI (период 14) — для перекупленности/перепроданности

 

Параметры:

— EmaFastPeriod (9)

— EmaSlowPeriod (21)

— MacdFast (12)

— MacdSlow (26)

— MacdSignal (9)

— RsiPeriod (14)

— WeightEma (1.0) — вес EMA-сигнала

— WeightMacd (1.0) — вес MACD-сигнала

— WeightRsi (1.0) — вес RSI-сигнала

 

Выходные данные:

— TCI Line — основная линия (синий, Line), диапазон 0-100

— Level70 — уровень перекупленности (красный, пунктир)

— Level30 — уровень перепроданности (зелёный, пунктир)

— Level50 — центральная линия (серый, пунктир)

 

Логика расчёта:

  1. EMA-сигнал: если Close > EMA9 > EMA21 → +1 (бычий). Если Close < EMA9 < EMA21 → -1 (медвежий). Иначе 0
  2. MACD-сигнал: если MACD Histogram > 0 → +1, если < 0 → -1. Если Histogram растёт (больше предыдущего) → добавляем +0.5. Если падает → -0.5. Итого диапазон -1.5… +1.5
  3. RSI-сигнал: если RSI > 60 → +1. Если RSI < 40 → -1. Иначе 0
  4. Взвешенная сумма: (EMA_Signal × WeightEma + MACD_Signal × WeightMacd + RSI_Signal × WeightRsi)
  5. Нормировка к 0-100: находим минимум и максимум возможной суммы (при текущих весах), линейно растягиваем в диапазон 0-100. Если все веса равны 1 — минимум = -3.5, максимум = +3.5. Формула: (Sum + MaxPossible) / (2 × MaxPossible) × 100

 

Пример для заимствования:

Сделай по структуре MACD из CONTEXT_INDICATORS.md — используй встроенные индикаторы через CreateIndicator, но вместо MACD-логики используй формулу TCI выше.

 

Особые случаи:

— Проверка индекса: пока свечей меньше максимального периода (max(EmaSlowPeriod, MacdSlow, RsiPeriod)) — значение 50

— Защита от деления на ноль при нормировке: если сумма весов = 0 — вернуть 50

— Не использовать source[source.Count — 1] в OnProcess — только source[index]

— Параметры встроенных индикаторов синхронизировать через Bind() с родительскими параметрами

 

## Пример 2. ПРОМПТ на осциллятор

Идея индикатора: Volatility-Adjusted Momentum — импульс, нормированный на волатильность. Показывает, насколько цена сдвинулась относительно своей обычной волатильности. Если VAM = 2 — цена прошла расстояние в 2 ATR за период. Помогает сравнивать импульс на разных инструментах и таймфреймах.

 

Встроенные индикаторы:

— Momentum (период 10) — импульс цены

— ATR (период 14) — волатильность

 

Параметры:

— MomentumPeriod (10) — период импульса

— AtrPeriod (14) — период ATR

— Smoothing (3) — период сглаживания результата (SMA), 1 = без сглаживания

 

Выходные данные:

— VAM Line — основная линия (синий, Line)

— ZeroLine — нулевой уровень (серый, пунктир)

— PlusTwo — уровень +2 (зелёный, пунктир)

— MinusTwo — уровень -2 (красный, пунктир)

 

Логикарасчёта:

  1. Momentum = (Close[index] — Close[index — MomentumPeriod]) / Close[index — MomentumPeriod] × 100. Результат в процентах
  2. ATR = значение ATR(Period) на текущей свече
  3. Нормализованная волатильность = ATR / Close[index] × 100. Сколько процентов составляет ATR от цены.
  4. VAM = Momentum / NormalizedVolatility. То есть импульс в единицах «своей волатильности».
  5. Если Smoothing > 1 — сглаживаем результат простой скользящей средней (SMA) за Smoothing периодов.

 

Пример для заимствования:

Сделай по структуре Momentum из CONTEXT_INDICATORS.md, но добавь встроенный ATR и нормируй результат. Или используй KeltnerChannel как пример работы с двумя встроенными индикаторами.

 

Особые случаи:

— Проверка индекса: пока свечей меньше max(MomentumPeriod, AtrPeriod, Smoothing) — значение 0

— Защита от деления на ноль: если ATR = 0 или NormalizedVolatility = 0 — вернуть 0

— Не использовать source[source.Count — 1] в OnProcess

 

## Итого

Используйте эти документы как заготовки, при создании индикаторов. Не торопитесь.

Удачных алгоритмов!

Комментарии открыты для друзей, добавляйтесь!

Промпты для создания индикаторов. Вайбкодинг в трейдинге #6
https://smart-lab.ru/company/os_engine/blog/1024149.php

Скачать OsEngine: https://github.com/AlexWan/OsEngine
Официальная поддержка OsEngine в MAX: https://max
Канал Научный трейдинг в MAX: https://max.ru/

Поддержка OsEngine в Телеграм: https://t.me/osengine_official_support 
Канал Научный трейдинг (Bad Quant) в Телеграм: https://t.me/bad_quant

Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
1.1К | ★1
#65 по плюсам

теги блога Алексей Ван <o-s-a.net>

....все тэги



UPDONW
Новый дизайн