💻CONDITION MANAGER

Code Zero Visual Trading for TradingView

CONDITION MANAGER - это ключевой модуль комплекса, который позволяет вам мастерски сочетать различные внешние индикаторы для формирования торговых сигналов или вычисления констант. Благодаря его мощности, вы можете построить большинство своих торговых стратегий, используя лишь CONDITION MANAGER, словно это ваш швейцарский армейский нож в мире трейдинга.

Блоки модуля:

Ассоциация

Этот модуль реализует ваши идеи, показывает сигналы на истории и организует алго-трейдинг.

Общее описание индикатора

CONDITION MANAGER - настоящий помощник для трейдера, который хочет самостоятельно управлять своими торговыми стратегиями. Он позволяет выбрать необходимые данные для анализа, такие как цены на акции, объемы торгов или показатели из других индикаторов. На базе этих данных можно создать правила (RULE), которые будут основой стратегии.

Каждое правило можно настроить с помощью математических расчетов, логических условий и специальных функций для сведения данных. Это позволяет точно анализировать ситуацию на рынке и принимать продуманные решения.

Для более сложных стратегий, правила можно группировать (GROUP). Имеем четыре группы, каждая из которых может содержать набор правил, объединенных логическими операторами "И" (AND) или "ИЛИ" (OR). Группы также можно соединять между собой по тем же принципам, создавая сложные комбинации условий.

Когда все условия проверены и они соответствуют заданным критериям, индикатор может отправить сигнал во внешнюю систему. Такой сигнал может содержать текстовое сообщение, которое формируется из стандартных переменных TradingView и специальных переменных созданных на значениях из правил и констант.

Что касается констант (CONSTANT), индикатор предоставляет четыре специальные переменные с числовыми значениями, которые можно использовать для передачи параметров в стратегию или как переменные в оповещениях. Эти константы могут иметь как постоянное значение, так и динамическое, изменяющееся со временем, что делает их полезными для адаптации стратегии к изменениям на рынке, например, когда цена достигает верхней границы Боллинджерових каналов.

В результате, этот индикатор дает возможность трейдерам создавать индивидуальные торговые стратегии любой сложности, используя разнообразные данные и условия, и легко интегрировать их с внешними автоматизированными торговыми системами.

Подсказка В каждом индикаторе вверху есть поле "DESCRIPTION", где можно написать любой текст, который поможет промаркировать этот индикатор на графике TradingView.

1. RULE - правила

Этот блок помогает трейдерам выбирать различные типы торговых данных, например цену акций, объем продаж или показатели других индикаторов. На основе этих данных можно создавать специальные правила (RULE), которые будут управлять вашей торговой стратегией.

В каждом таком правиле вы можете применять математические вычисления, использовать логические условия и комбинировать данные с помощью функций-агрегаторов для более точного анализа и принятия решений в торговле.

Описание полей:

N
Название
Действие

1

Переключатель

Включает и выключает это правило.

2

Выбор группы

Группа правил к которой принадлежит именно это правило.

3

Источник данных 1: S1_1

Откуда брать данные для формирования условия.

4

Указатель источника или функция агрегатор

Указывает на то, какой источник мы берем для анализа без модификации (S1_1 или S1_2), или какую функцию мы будем выполнять для модификации источника S1_1.

5

Ручной ввод или параметр для функции: S1_2

Можно ввести значение с которым будут сравниваться другие источники в правиле, или задать параметры для выбранной функции в п.4.

6

Условие

Операция уравнивания двух источников данных.

7

Источник данных 2: S2_1

Откуда брать данные для формирования условия.

8

Указатель источника или функция агрегатор

Указывает на то, какой источник мы берем для анализа без модификации (S2_1 или S2_2), или какую функцию мы будем выполнять для модификации источника S2_1.

9

Ручной ввод или параметр для функции: S2_2

Можно ввести значение с которым будут сравниваться другие источники в правиле, или задать параметры для выбранной функции в п. 8.

Источник данных:

Это поле для выбора источника данных, который будет использован в правиле. Это может быть любая цена или индикатор.

Если включить переключатель возле иконки картинки, можно отрисовать график источника данных на графике цены (например нарисовать линию EMA).

Указатель источника или функция агрегатор:

Это поле указывает какое из полей данных необходимо использовать для следующего шага правила, или какую функцию-агрегатор необходимо выполнить над S1_1 / S2_1 с параметрами S1_2 / S2_2.

Выбор
Описание

📈

Получить значение выбранного источника S1_1 или S2_1 без обработки (из левого поля).

✒️

Получить введенное пользователем значение (из правого поля).

✒️ BAR_VALUE

Получить предыдущее значение:

Выберите источник, например S1_1 или S2_1, в левом поле, и укажите количество баров назад, в правом поле.

Если выбрать "close" и ввести "1", вы получите цену закрытия одного бара назад.

✒️ MAX_BARS

Получить максимальное значение в прошлом:

Выберите источник, например S1_1 или S2_1, в левом поле, и укажите количество баров назад, в правом поле.

Чтобы найти самую высокую цену за определенный период, выберите источник, например "high", и количество прошлых баров, скажем "5". Таким образом, вы увидите самую высокую цену за последние 5 баров (без учета текущего).

✒️ MIN_BARS

Получить минимальное значение в прошлом:

Выберите источник, например S1_1 или S1_2, в левом поле, и укажите количество баров назад, в правом поле.

Чтобы найти самую низкую цену за определенный период, выберите источник, например "low", и количество прошлых баров, скажем "20". Таким образом, вы увидите самую низкую цену за последние 20 баров (без учета текущего).

✒️ SUM_BARS

Получить суммы значений в прошлом:

Выберите источник, например S1_1 или S2_1, в левом поле, и укажите количество баров назад, в правом поле.

Чтобы найти суммарный объем за определенный период, выберите источник, например "volume", и количество прошлых баров, скажем "24". Таким образом, вы увидите суммарный объем за последние 24 бара (без учета текущего).

✒️ AVG_BARS

Получить среднее значение в прошлом: Выберите источник, например S1_1 или S2_1, в левом поле, и укажите количество баров назад, в правом поле. Чтобы найти среднее значение за определенный период, выберите источник, например "volume", и количество прошлых баров, скажем "24". Таким образом, вы увидите суммарный объем за последние 24 бара (без учета текущего).

✒️ SMA

✒️ EMA

Exponential Moving Average (EMA) https://www.investopedia.com/terms/e/ema.asp

✒️ ATR

✒️ NATR

Normalized Average True Range (NATR) в процентах. Это нормализованный ATR, что означает, что он отображает ATR в процентах, а не абсолютную цену. Например, значение 1 указывает на истинный диапазон в 1% за данный период. Этот индикатор создает скользящее среднее значение волатильности продукта за период.

✒️ RSI

Relative Strength Index (RSI) https://www.investopedia.com/terms/r/rsi.asp

✒️ STOCH

✒️ PRICE_ANGLE

Расчет % изменения цены за период в барах. Считается как % отклонение от Low цены в начале периода и High цены в конце периода.

✒️ Z-SCORE

Z-Score показывает относительное отклонение цены от ее среднего значения.

✒️ HURST

HURST - Простая экспонента Хёрста.

Помогает обнаружить разворот тренда/рынка. Значения от 0,5 до 1 - рынок находится в тренде Значения от 0 до 0,5 - рынок склонен к средней реверсии (флэт).

⤴️ CONSTANT_1 ⤴️

...

⤴️ CONSTANT_6 ⤴️

Специальные переменные-заменители, которые переносят значение которое было рассчитано в соответствующем блоке CONSTANT. Они позволяют настроить условия основываясь на рассчитанных константах этого самого модуля.

Таким образом после выполнения этих действий мы получим исходное значение для проверки условия правила (верхнее значение - S1 и нижнее значение S2).

Условие:

Это поле задает условие или действие по которым мы будем определять выполнение правила.

Условие
Описание

LOWER

S1 меньше S2

GREATER

S1 больше S2

EQUAL

S1 равно S2

NOT EQUAL

S1 не равно S2

CROSSING

S1 пересеклась с S2

CROSSING OVER

S1 пересекает S2 сверху, когда его текущее значение становится выше S2 после того, как ранее было ниже или равно S2.

CROSSING UNDER

S1 пересекает S2 снизу, когда его текущее значение становится меньше S2 после того, как до этого было выше или равно S2.

2. GROUP - группа правил

Группа правил (GROUP) - это как список инструкций для программы, говорящих ей, что делать в определенных ситуациях. Эти инструкции могут быть легкими, как "покупай, когда цена выше прошлого максимума", или сложными со многими деталями. У пользователя есть возможность выбрать четыре такие группы правил: G1, G2, G3, G4.

Представьте, что вы готовите обед и у вас есть рецепты (правила) для салата и супа. Если вы используете "И" (AND), то нужно приготовить и салат, и суп, чтобы обед был готов. Но если вы используете "ИЛИ" (OR), то достаточно приготовить хотя бы одно из них.

Так же и в торговле: если вы хотите, чтобы условия работали вместе ("И"), все они должны произойти, чтобы выполнить действие. Если же вы устанавливаете "ИЛИ", то достаточно, чтобы произошло хотя бы одно условие, и система уже может действовать.

Это дает трейдерам возможность создавать стратегии с различными "сценариями", экспериментируя с различными наборами правил, чтобы увидеть, какие из них работают лучше всего.

В программе есть специальное место, где можно настроить, как правила в группе будут взаимодействовать между собой:

3. Объединение групп

Группы правил (G1, G2, G3, G4) могут быть объединены между собой по той же логике, что и правила в группе (AND или OR).

Представьте себе группы правил как отдельные команды большой футбольной лиги. Каждая команда имеет свою стратегию и тактику, но когда приходит время для чемпионата, они объединяются с помощью "И" (AND) или "ИЛИ" (OR), чтобы достичь общей цели - победы на рынке.

Если вы используете оператор "И" (AND) для объединения групп, это означает, что условия всех групп должны быть выполнены одновременно, чтобы активировать сигнал. Это словно все команды должны выиграть свои матчи, чтобы трейд был совершен. Высокая стратегическая игра, где все должно сойтись идеально!

Но если вы объединяете группы через "ИЛИ" (OR), то выполнения хотя бы одной группы правил достаточно для активации сигнала. То есть, если хоть одна команда побеждает, вы получаете зеленый свет для трейда. Это добавляет гибкости, ведь позволяет реагировать быстрее на изменения условий рынка.

Такой подход позволяет составлять более гибкие и адаптивные стратегии, которые могут реагировать на различные сценарии рыночного поведения, используя комбинации различных групп правил. Это как иметь не одного, а несколько тренеров, каждый из которых предлагает свой план на игру, а вы выбираете лучший вариант для атаки или защиты ваших инвестиций.

4. Константы

ВАЖНО

В блоке констант все вычисления выполняются последовательно, одно за другим, начиная сверху и спускаясь вниз. Не важно, будь то умножение или деление - нет никаких "первоочередных" операций, все идет по очереди, как в списке покупок: сначала покупаем хлеб, потом молоко, и только после этого - шоколад.

Разъяснение:

TakeProfit: close + 1.5 * ATR

нужно считать таким образом:

ATR * 1.5 + close

сначала производится умножение и к результату прибавляется цена закрытия

Разъяснение:

StopLoss:

low - 1.5 * ATR

нужно считать таким образом:

ATR * (-1.5) + low

сначала производится умножение для получения отрицательного значения и к результату прибавляется минимальная цена

Константа - это как калькулятор, позволяющий соединять различные данные, например цены и показатели индикаторов, и делать с ними простые математические операции, такие как сложение или умножение. Вы можете использовать константу, чтобы автоматически рассчитывать важные торговые параметры, такие как цена для взятия прибыли (TakeProfit) или лимит убытков (StopLoss).

Константа (рисунок ниже) имеет 3 блока источников данных (или ввода значений пользователя) которые имеют такую же логику как и в блоке правил (RULE) и так же включается и выключается (блок 1). Между этими блоками можно провести математические операции: суммирование (✚), вычитание (➖), модуль разницы ([]), умножение (✖️) и деление (➗) (блоки 2, 3). Дополнительный режим 'NONE' указывает на то, что не нужно включать следующий источник данных в цепь вычислений. Если мы продолжим нашу аналогию с кулинарией, то это как решить не добавлять соль в блюдо - просто игнорируем этот ингредиент.

Представьте, что вы хотите установить цену TakeProfit на основе текущей цены закрытия плюс полтора раза больше значения ATR (Average True Range - среднего истинного диапазона). Для этого вам просто надо взять последнюю цену закрытия (S3), прибавить к ней результат умножения ATR (S1) на 1.5 (S2), и получите вашу цену TakeProfit: close (S3) ✚ ATR (S1) ✖️1.5 (S2).

5. Оповещения

Оповещения - это встроенная возможность TradingView которую мы расширяем дополнительным функционалом.

Оповещения TradingView - это моментальные уведомления, которые вы получаете, когда ситуация на рынке соответствует заданным вами условиям. Например, "Цена акций Apple поднялась выше 150$". Все пользователи могут получать всплывающие уведомления, звуковые сигналы, email-по-SMS, а также push-уведомления, которые отправляются на телефон. Пользователи с подписками TradingView Essential, Plus и Premium также могут получать Webbhook уведомления при срабатывании уведомлений.

В блоке 'ALERT' нужно задать текст шаблона оповещения которое будет отправляться и частоту его отправки.

Частота отправления
Описание

ALL

Отправляйте уведомления каждый раз, когда они активируются, но будьте осторожны.

Если это случается слишком часто, TradingView может отключить ваши уведомления.

ONCE_PER_BAR

Отправлять уведомление только один раз для каждого бара, когда условие впервые выполняется.

Если уведомление уже отправлено, новое появится только на следующем баре.

ONCE_PER_CLOSE_BAR

Отправлять оповещения только на закрытии бара, независимо от количества выполнений условий в течение этого бара.

Вы можете дополнить стандартные переменные для сообщений на TradingView своими, которые создаете в блоках "Правила" (RULE) и "Константы" (CONSTANT).

Переменная
Описание

{{RULE_1_VALUE_SOURCE_1}} ... {{RULE_8_VALUE_SOURCE_1}}

Значение от источника данных в условии (RULE) сверху

{{RULE_1_VALUE_SOURCE_2}} ... {{RULE_8_VALUE_SOURCE_2}}

Значение от источника данных в условии (RULE) снизу

{{CONSTANT_1}} ... {{CONSTANT_4}}

Значение константы

Совет

Обратите внимание, что оповещения также можно отправлять из модуля "CONDITION MANAGER STRATEGY"

6. Backtesting Line

Визуальная система бэк-тестирования CDZV позволяет вам тестировать стратегии на исторических данных. Это дополнительная система тестирования, которая не имеет отношения к системе бэк-тестирования стратегий на исторических данных платформы TradingView, а дополняет ее.

На графике это выглядит как линия из серых квадратиков на каждом баре, а когда ваша стратегия показывает, что условие выполняется, квадратики становятся синими. Это помогает вам понять, когда стратегия работает, и быстро вносить изменения, если нужно.

Эти синие квадратики - ваши ориентиры на пути к прибыльной стратегии. Они помогают вам определить, в каких точках времени ваш подход был эффективным, и наоборот, когда нужно остановиться и переосмыслить тактику.

Для удобства эту линию бэк-тестирования можно отображать сверху, снизу и отключить.

7. Выходные данные

Индикатор на выходе имеет много значений. Первый выход - это информация о том, выполняются ли условия, а остальные - это значения констант и источников условий (выходы активируются в зависимости от того, включена ли константа: CONSTANT_1, CONSTANT_2, CONSTANT_3, CONSTANT_4, CONSTANT_5, CONSTANT_6.

Last updated