Комментарии пользователя DSTprincipium

Мои комментарии:в блогах в форуме
Ответы мне:в блогах в форуме
Все комментарии: к моим постам
Архипов Владимир, Полный список 28 признаков вектора F (в порядке добавления)
Группа 1: Базовые характеристики свечи (5 признаков)

    ret1: Доходность текущей свечи к предыдущей (Close[t] / Close[t-1] — 1.0). Зажимается в диапазон [-0.2, 0.2].

    range: Относительный диапазон свечи (High — Low) / Close. Показатель волатильности за 1 минуту. Зажимается в [0, 0.5].

    body: Относительный размер тела свечи |Close — Open| / Close. Показывает силу покупателей/продавцов. Зажимается в [0, 0.5].

    vLog: Логарифм объема log(Volume + 1). Приводится к масштабу, сопоставимому с другими признаками, делением на 20 и зажимается в [-5, 5].

    vChg: Изменение объема относительно предыдущей свечи (Volume[t] / Volume[t-1] — 1.0). Зажимается в [-5, 5].

Группа 2: Технические индикаторы и моментум (5 признаков)

    rsiVal / 100.0: Значение RSI(14), нормализованное к диапазону [0, 1].

    (ema9 — ema21) / Close: Относительное расстояние между быстрой и медленной EMA. Показывает силу тренда. Зажимается в [-0.1, 0.1].

    Math.Abs(ret1): Абсолютное значение доходности к предыдущей свече (еще раз, как дополнительный признак волатильности). Зажимается в [0, 0.2].

    range (дубль): Признак №9 дублирует признак №2. Это не ошибка, а сознательное усиление веса волатильности. Она добавляется еще раз в этой группе.

    div: Признак дивергенции. Равен 1.0, если за последние 5 свечей направление изменения цены и RSI противоположны. Сигнал о возможном развороте.

Группа 3: Временные и циклические признаки (6 признаков)

    sin(ang): Синус угла, соответствующего минуте текущего торгового дня. (ang = 2 * PI * minuteOfDay / 1440).

    cos(ang): Косинус угла минуты дня. (В паре с синусом позволяет модели понять точное время суток).

    minuteIndexScaled: Порядковый номер минуты с начала сегодняшней торговой сессии, масштабированный делением на 1000. Зажимается в [0, 2].

    sin(dowAng): Синус угла, соответствующего дню недели. (dowAng = 2 * PI * DayOfWeek / 7).

    cos(dowAng): Косинус угла дня недели. (Позволяет модели учитывать день недели).

    Math.Abs(ret1) (дубль): Еще одно дублирование признака ret1, но на этот раз в группе временных признаков. Код просто перечисляет его здесь еще раз, увеличивая его вес в общей сумме.

Группа 4: Признаки на основе скользящих значений (5 признаков)

    ret1m1: Доходность предыдущей свечи (Close[t-1] / Close[t-2] — 1.0). Зажимается в [-0.2, 0.2].

    ret1m2: Доходность позапрошлой свечи (Close[t-2] / Close[t-3] — 1.0). Зажимается в [-0.2, 0.2].

    ret5: Доходность за 5 свечей (Close[t] / Close[t-5] — 1.0). Зажимается в [-0.5, 0.5].

    upperW: Относительный размер верхней тени (High — max(Open, Close)) / Close. Зажимается в [0, 0.5].

    lowerW: Относительный размер нижней тени (min(Open, Close) — Low) / Close. Зажимается в [0, 0.5].

Группа 5: Производные от RSI (5 признаков)

    rsiZ: Z-оценка RSI (RSI — 50) / 15. Показывает, насколько RSI далек от нейтрального уровня. Зажимается в [-5, 5].

    rsiExtreme: Бинарный признак экстремума: +1 если RSI <= 30 (перепроданность), -1 если RSI >= 70 (перекупленность), иначе 0.

    rsiDelta1 / 10.0: Изменение RSI за одну свечу. Зажимается в [-5, 5].

    div (дубль): Признак дивергенции из группы 2 дублируется и здесь.

Группа 6: Долгосрочные и экстремальные признаки (3 признака)

    np1Scaled: Нормализованная цена от DailyBandNormalizer с периодом 30 дней. Показывает, насколько текущая цена отклонилась от средней точки за последний месяц. (Price / 30d_mid — 1). Зажимается в [-2.0, 2.0]. Это уровень перекупленности/перепроданности на месячном горизонте.

    np2Scaled: То же самое, но с периодом 180 дней (полгода). (Price / 180d_mid — 1). Глобальный уровень.

    extPctScaled: Признак недавнего экстремума. Показывает, насколько текущая цена отклонилась от максимума или минимума за последние extWindowMinutes (полтора от торгового горизонта). (Peak_or_Trough_Price / Current_Price — 1). Зажимается в [-2.0, 2.0].

        Важно: в коде за этим признаком должны следовать extT01 и extVolScaled, но они, судя по индексации, не включены в итоговый массив X[t] в функции BuildSlidingDatasetNormalized. Это потенциальный момент для проверки, но вопрос был именно про F, который сейчас равен 28.

Итоговая структура вектора F

В итоге, модель получает на вход «мгновенный снимок» рынка, описываемый 28 числами, которые кодируют:

    Текущую волатильность и объем (признаки 1-5, 8-9, 20-21).

    Краткосрочный тренд и импульс (признаки 6-7, 10, 17-19, 25).

    Время и циклические закономерности (признаки 11-16).

    Состояние перекупленности/перепроданности (признаки 22-24, 26-28).

Это не просто сырые данные, а тщательно сконструированный (feature-engineered) вектор, который позволяет модели искать сложные, многомерные паттерны, ведущие к прибыльному движению цены через заданный горизонт.
avatar
  • 01 марта 2026, 11:26
  • Еще
Выберите надежного брокера, чтобы начать зарабатывать на бирже:
....все тэги
UPDONW
Новый дизайн