Графики Крестики-нолики (Point and Figure (PNF — P&F) Charts (Точки и фигуры)

график-крестики-нолики
Point and Figure (PNF) или Крестики-нолики — это классический метод графического представления цен, в котором акцент делается на направлении цены и значимых сменах тренда, а временная шкала практически не учитывается. График состоит из столбцов символов: обычно X (вверх) — крестики и нули O (вниз), где каждый символ соответствует фиксированному ценовому шагу (box size). Переход к новому столбцу происходит только при развороте цены на заранее установленное число коробок (reversal), например 3-box reversal. Изначально данный тип графиков был популярен в начале 1900-х, до появления компьютеризированных аналогов.

Пространство, которое занимает каждая из фигур, составляющих столбцы Х и О, называется коробками. Размер коробки задается самим пользователем. Когда цена совершает достаточно сильные движения в том же направлении, что и текущий столбец, в продолжении к нему добавляется новый X или O. Когда цена закрытия уходит достаточно далеко в противоположном направлении, появляется новый столбец с другими фигурами. Величина, на которую должна продвинуться цена, определяется расстоянием разворота. Это значение создается путем умножения размера коробки на другое значение, определяемое пользователем, и называется величиной разворота. Величина разворота — это значение, на которое должна переместиться цена, чтобы появилась новая фигура или столбец. Таким образом, если размер ячейки установлен на 1 (1$), а величина разворота установлена на 3, то для формирования на графике новой фигуры цена должна переместиться на 3$.

Существует два правила касательно фигур и столбцов:
1. Каждый столбец должен состоять только из Х-фигур или О-фигур. Две разные фигуры не могут встречаться в одном столбце.
2. Х-столбцы и О-столбцы должны чередоваться. Два столбца одного типа не могут стоять рядом.

На графике Крестики-нолики могут появиться четыре разных типа баров:
1. Восходящие бары — формируются во время восходящего тренда;
2. Нисходящие бары — формируются во время нисходящего тренда;
3. Проекция восходящего бара — потенциальный восходящий бар, который формируется на основе текущей цены на внутридневном графике (до установления фактической цены закрытия);
4. Проекция нисходящего бара — потенциальный нисходящий бар, который формируется на основе текущей цены на внутридневном графике (до установления фактической цены закрытия).

Основные элементы и параметры
Box size — величина одного «ящика» (в пунктах или процентах), определяющая шаг изменения цены, соответствующий одной точке `X` или `O`.
Reversal (реверс) — количество коробок, на которое цена должна отойти в противоположном направлении, чтобы начался новый столбец (обычно 1, 2 или 3 box reversal; 3 — стандартный для многих трейдеров).
Колонки X и O:
   — Колонка `X` рисуется при последовательных повышениях цены (каждая новая `X` — на box size выше предыдущей).
   — Колонка `O` рисуется при последовательных понижениях цены (каждая `O` — на box size ниже предыдущей).
Нет фиксированного времени: каждая запись появляется при достижении ценового условия; интервалы между точками и колонками могут быть разными по времени.

Правила построения (кратко)
1. Задаются параметры: box_size и reversal.
2. Начинают с первоначальной цены (обычно close) и определяют направление (вверх — `X` или вниз — `O`) на основе последующих ценовых изменений.
3. Для текущего направления добавляют символы (по одному за каждый достигнутый box_size шаг).
4. Если цена разворачивается на величину ≥ reversal * box_size в противоположную сторону, начинают новый столбец с символами противоположного типа.
5. При сильном движении за один тик/бар может быть добавлено несколько `X`/`O` (мульти-бокс добавление).

Преимущества PNF
— Фильтрация шума: устраняет малозначительные флуктуации.
— Ясные уровни поддержки/сопротивления и паттерны (двойные/тройные вершины/дна и прорывы).
— Простота обнаружения трендов и точек прорыва/откатов.
— Нет влияния времени — удобен для фокусировки на ценовых уровнях.

Ограничения и нюансы
— Параметры (box_size, reversal) сильно влияют на вид графика; их выбор должен соответствовать волатильности и таймфрейму.
— Игнорирует временные аспекты (полезно для одних систем, нежелательно для других).
— Менее информативен для отображения внутридневных ценовых микро-структур, если box_size выбран слишком большим.


Формула расчёта Point and Figure (PNF) Charts

Методы определения размера коробки
Существует два различных способа для расчета величины разворота:

1. Средний истинный диапазон (ATR) — использует значения, сгенерированные индикатором Средний истинный диапазон (ATR). Метод ATR позволяет отфильтровать сопутствующую фоновую информацию («шум») и волатильность финансового инструмента. Помимо этого, он автоматически определяет оптимальное значение для величины разворота, а также рассчитывает, каким было бы значение ATR на обычном свечном графике, и задает это значение в качестве величины разворота.
2. Традиционный — использует заданное пользователем абсолютное значение для определения величины разворота. Таким образом, новый бар появится только если ценовое движение будет превышать указанное значение. Данный метод отличается своей простотой и позволяет с легкостью предугадать, где и когда сформируется новая «коробка». Однако подбор правильного значения для конкретного инструмента, вероятней всего, получится не сразу, поэтому вам придется поэкспериментировать.

PNF не имеет одной математической «формулы» — это алгоритм построения на основе двух параметров: box_size и reversal. Ниже описан типичный стандартный алгоритм и псевдокод.

Параметры
box_size — размер одной клетки (в пунктах или процентах). Каждая новая X или O соответствует движению цены на box_size.
reversal — число коробок для разворота (часто 3 — стандартный 3-box reversal). Разворот происходит, когда цена меняется в противоположном направлении минимум на reversal * box_size.

Основная логика
1. Начинают с исходной цены (обычно close) и определяют текущее направление — колонка X(рост) или O (падение).
2. При движении в текущем направлении добавляют символы к текущему столбцу: по одной X/O за каждый пройденный box_size.
3. Если цена изменяется в противоположном направлении на сумму ≥ reversal * box_size, то начинается новый столбец противоположного типа; в этом столбце ставят столько X/O, сколько соответствуют величине отката (обычно начиная с крайнего уровня разворота).
4. При сильном движении за один тик/бар может быть добавлено несколько клеток (мульти-бокс добавление).

Псевдокод

box_size = заданное значение
reversal = заданное целое (например, 3)

# Инициализация
current_column_type = unknown  # "X" или "O"
current_column_top = start_price
current_column_bottom = start_price

for each price P (обычно последовательность закрытий или тиков):
  if current_column_type == "X" or unknown:
    # Возможность расширить колонку X вверх
    while P >= current_column_top + box_size:
      current_column_top += box_size
      add_one_X_at_level(current_column_top)
      current_column_bottom = current_column_top - n_boxes_in_column * box_size

    # Проверка разворота вниз
    if P <= current_column_top - reversal * box_size:
      # Начинаем новую колонку O
      current_column_type = "O"
      # Установить начальный уровень для O: обычно = current_column_top - box_size
      # Добавить столько O, сколько требует откат:
      while P <= new_O_start - box_size:
        add_one_O_at_level(new_O_level)
        new_O_level -= box_size

  else if current_column_type == "O":
    # Расширение колонки O вниз
    while P <= current_column_bottom - box_size:
      current_column_bottom -= box_size
      add_one_O_at_level(current_column_bottom)

    # Проверка разворота вверх
    if P >= current_column_bottom + reversal * box_size:
      # Начать новую колонку X
      current_column_type = "X"
      while P >= new_X_start + box_size:
        add_one_X_at_level(new_X_level)
        new_X_level += box_size

Примечания и вариации
— Источник цен: обычно используются значения `close`, но возможны реализации на `high/low` или тиковых данных. Выбор влияет на детализацию графика.
— Корректное размещение первой клетки разворота: разные реализации могут отличаться в том, с какого уровня начинают новый столбец (например, точка разворота = предыдущий экстремум ± box_size или = текущая цена).


Торговля с графиками Point and Figure (PNF)

Поиск прорывов: пробитие предыдущих вершин колонок `X` даёт сигнал на покупку; пробитие предшествующих низов колонок `O` — на продажу.
Прорывы — возникают, когда бары начинают генерироваться в определенном направлении после периода торговли в пределах диапазона, ограниченного поддержкой и сопротивлением.
Прорывы-крестики-нолики

Паттерны: двойные/тройные вершины/дна, диагональные трендовые линии, восходящие/нисходящие треугольники на PNF.
теханализа-на-графике

Уровни поддержки/сопротивления: легко идентифицируются горизонтальные ряды X или O.
Уровни-поддержки-и-сопротивления-Крестики-нолики

Сигналы по тренду: последовательность колонок `X` указывает на устойчивый бычий тренд; `O` — на медвежий.
Комбинация с объёмом и другими индикаторами: PNF часто используют совместно с объёмом, скользящими средними и осцилляторами для фильтрации ложных сигналов.

паттерны-крестики-нолики

Как было упомянуто ранее, возрастающая популярность графиков «фильтрации шума» (в том числе и Крестиков-ноликов) обусловлена тем, что они не привязаны ко времени и не учитывают незначительные, естественные изменения цен. Сторонники этих типов графиков считают, что данные особенности помогают пользователям в выявлении тенденций и прогнозировании будущих ценовых движений. К примеру, Крестики-нолики отлично подходят для визуализации линий тренда, уровней поддержки и сопротивления, а также прорывов.

Линии трендов — Изначально график Крестики-нолики вручную рисовали на масштабно-координатной бумаге. В силу своей природы линии тренда под углом 45 градусов могут формироваться естественным образом. Эти линии помогают определять общие тренды и могут быть полезны как сами по себе, так и с помощью дополнительных инструментов или индикаторов.
трендов-Крестики-нолики