> For the complete documentation index, see [llms.txt](https://docs.cdzv.com/code-zero-visual-trading_ru/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.cdzv.com/code-zero-visual-trading_ru/cdzv-toolkit/strategii/condition-manager-strategy.md).

# CONDITION MANAGER STRATEGY

{% hint style="success" %}
**Ассоциация**

Это модуль-бэктестер стратегий, который тестирует ваши идеи на истории и отправляет торговые сигналы для  алго-трейдинга.
{% endhint %}

**CONDITION MANAGER STRATEGY** - это модуль на *TradingView*, который позволяет вам тестировать свои торговые идеи без написания кода.

Все, что вам нужно сделать, это задать сигналы для покупки и продажи, а также настроить желаемые цены для взятия прибыли (*Take/Profit*) и минимизации убытков (*Stop/Loss*). После этого, модуль покажет, как ваша стратегия могла бы работать в прошлом, и вы сможете сразу же внести коррективы или настроить отправку сигналов для торговли.

## 1️⃣ Backtesting

Для того чтобы проверить на истории вашу торговую идею, которую вы создали с помощью модулей комплекса [**CDZV**](/code-zero-visual-trading_ru/obshie-svedeniya/o-komplekse.md), необходимо настроить параметры универсальной стратегии-бєктестера **CONDITION MANAGER STRATEGY**, которая все сделает для вас без необходимости написания ни одной строчки кода.

### ***И так, начнем настраивать стратегию шаг за шагом.***

1. Выбираем режим работы **Backtesting**.

<figure><img src="/files/qj9a4kOt1m67dhYy7HT6" alt="" width="341"><figcaption></figcaption></figure>

2. Выбираем период за который вы хотите протестировать стратегию. Примите во внимание ограничения на глубину исторических данных платформы *TradingView* - чем выше таймфрейм тем больший период вы сможете протестировать.<br>

<figure><img src="/files/gpE7XWgwzNCEWjZS0k48" alt="" width="563"><figcaption></figcaption></figure>

<table><thead><tr><th width="228" align="center">Параметры</th><th>Описание</th></tr></thead><tbody><tr><td align="center"><strong>Start date</strong></td><td>Дата/время начала периода бэктестинга.</td></tr><tr><td align="center"><strong>End date</strong></td><td>Дата/время конца периода бэктестинга.</td></tr><tr><td align="center"><strong>Close open trades on the end date</strong></td><td>Если данный параметр активирован, тогда открытые сделки будут принудительно закрыты по окончании периода бэктестинга.<br>Эта опция больше всего подходит для инвестиционных стратегий, когда необходимо оценить состояние портфеля за конкретный период времени.</td></tr></tbody></table>

3. Настраиваем начальный капитал и риск в одной сделке <br>

   <figure><img src="/files/oFuaONOKWED3uZ8wR1Ru" alt="" width="563"><figcaption><p>начальный капитал</p></figcaption></figure>

   <figure><img src="/files/EbkUIydAN9homX9oKUwf" alt="" width="554"><figcaption><p>как делать расчет размера ордера</p></figcaption></figure>

<table><thead><tr><th width="228" align="center">Параметры</th><th>Описание</th></tr></thead><tbody><tr><td align="center"><strong>Order size</strong></td><td>Как будет рассчитываться размер ордера при входе в сделку:<br><br><strong>AMOUNT_IN_USD</strong> - укажите размер ордера в USD<br><br><strong>RISK_%_OF_EQUITY</strong> - какой максимальный риск в сделке может быть в процентах от капитала (работает только в режиме 🍎 Stop Loss (SL)). Укажите % риска.<br><br><strong>RISK_IN_USD</strong> - какой максимальный риск в сделке может быть в USD (работает только в режиме 🍎 Stop Loss (SL)). Укажите размер риска в USD.</td></tr><tr><td align="center"><strong>Use Leverage</strong></td><td>Может ли размер ордера быть больше капитала?<br><br>Если <strong>да</strong>, то мы используем кредитное плечо.<br><br>Если <strong>нет</strong>, то максимальный размер ордера ограничен суммой капитала.</td></tr></tbody></table>

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

<figure><img src="/files/9lxs3Vpmmx0RdfI7eiMq" alt="" width="563"><figcaption></figcaption></figure>

5. Выбираем режим закрытия сделки.

<figure><img src="/files/vJgTEBD3HxE0XdiIiFQw" alt="" width="563"><figcaption></figcaption></figure>

<table><thead><tr><th width="176">Closing Mode</th><th>Описание</th></tr></thead><tbody><tr><td><strong>SIGNAL</strong></td><td>Закрытие сделки <strong>по сигналу</strong> от индикатора (поле раздела настроек <strong>CLOSE SIGNAL </strong><mark style="color:red;"><strong>обязательно для заполнения</strong></mark>)</td></tr><tr><td><strong>TP/SL</strong></td><td>Закрытие сделки <strong>по достижению цены</strong> <em>TakeProfit</em> или <em>StopLoss</em>. <strong>Обратите внимание</strong>, что ниже будут описаны режимы фиксированной цены (лимитный ордер) и динамической цены (пересечение канала и т.д.) (поле раздела настроек <strong>CLOSE SIGNAL</strong> <mark style="color:red;"><strong>игнорируется</strong></mark>).</td></tr><tr><td><strong>SIGNAL+TP/SL</strong></td><td>Смешанный режим закрытия сделки. Сделка закрывается <strong>по той ситуации на рынке, которая наступит быстре</strong>е (стратегия получит сигнал на закрытие, или будет пересечение цен).</td></tr></tbody></table>

6. Выбираем алгоритм расчета прибыли в открытой позиции.

<figure><img src="/files/aF1W7nDtBE9kXX0J7VhO" alt="" width="563"><figcaption></figcaption></figure>

<table><thead><tr><th width="151">Алгоритм</th><th>Описание</th></tr></thead><tbody><tr><td><strong>PRICE</strong></td><td>Прибыль, которая считается как разница между средней ценой входа в сделку и текущей ценой актива.</td></tr><tr><td><strong>OPEN PNL</strong></td><td>Прибыль в открытой позиции с учетом объема входа в сделку и комиссионных.</td></tr></tbody></table>

7. Выбираем источник/индикатор, который генерирует сигнал на открытие сделки (<mark style="color:red;">**обязателен к заполнению**</mark>), а также настраиваем дополнительные параметры.

<figure><img src="/files/M1qXEiV2AavLhbIYTiHn" alt="" width="563"><figcaption></figcaption></figure>

<table><thead><tr><th width="177">Параметры</th><th>Описание</th></tr></thead><tbody><tr><td><strong>BUY SIGNAL</strong></td><td>Источник сигнала для открытия сделки на покупку (сигнал - это значение равное 1)</td></tr><tr><td><strong>SELL SIGNAL</strong></td><td>Источник сигнала для открытия сделки на продажу (сигнал - это значение равное 1)</td></tr><tr><td><strong>Bars to wait after trade</strong></td><td>Сколько баров нужно подождать после закрытия сделки, чтобы войти в новую сделку.</td></tr><tr><td><strong>After how many bars to close a trade</strong></td><td>Через сколько баров после открытия сделки принудительно закрыть ее.</td></tr></tbody></table>

8. Выбираем источник/индикатор, который генерирует сигнал на закрытие сделки (работает только в режимах: **SIGNAL** и **SIGNAL+TP/SL**)

<figure><img src="/files/JSliSi0GVrc5Fv7tIsTM" alt="" width="563"><figcaption></figcaption></figure>

<table><thead><tr><th width="156">Параметры</th><th>Описание</th></tr></thead><tbody><tr><td><strong>CLOSE BUY</strong></td><td>Источник сигнала для закрытия сделки на покупку (сигнал - это значение равное 1)</td></tr><tr><td><strong>CLOSE SELL</strong></td><td>Источник сигнала для закрытия сделки на продажу (сигнал - это значение равное 1)</td></tr></tbody></table>

9. Настраиваем *Take/Profit* (**T/P**)  (работает только в режимах CLOSING MODE: **TP/SL** и **SIGNAL+TP/SL**)\
   \
   При необходимости вы можете не задействовать этот режим закрытия сделки, выключив переключатель **Enable.**

<figure><img src="/files/agK735wSWBLUpF7Xbx9U" alt="" width="563"><figcaption></figcaption></figure>

<table><thead><tr><th width="130">Источник</th><th>Описание</th></tr></thead><tbody><tr><td> <strong>BUY</strong></td><td>Источник цены закрытия сделки на покупку (это источник, который передает цену закрытия сделки).</td></tr><tr><td> <strong>SELL</strong></td><td>Источник цены закрытия сделки на продажу (это источник, который передает цену закрытия сделки).</td></tr></tbody></table>

\
*Режим работы фиксированной цены* (лимитный ордер) и *динамической цены* (пересечение скользящей, канала и т.д. и закрытие по маркету) задается параметром "**Remember the price when entering a trade**":

<table><thead><tr><th width="200" align="center"> Режим работы </th><th>Описание</th></tr></thead><tbody><tr><td align="center"><a data-footnote-ref href="#user-content-fn-1"><strong>Enable</strong></a></td><td>Значение будет запоминаться при открытии сделки, а T/P будет фиксированным (для лучшего понимание  - это лимитный ордер на закрытие)  (<em>кроме режима Pyramiding - смотрите далее</em>).</td></tr><tr><td align="center"><strong>Disable</strong></td><td>Значение будет динамическим и может меняться на каждом баре. Например, если источник входа является скользящей или границей канала, по пересечению которого с текущей ценой нужно закрыть ордер.</td></tr></tbody></table>

<table><thead><tr><th width="200">Параметр</th><th>Описание</th></tr></thead><tbody><tr><td><strong>Min T/P for entry, %</strong></td><td>Пропустите вход в сделку, если ее ожидаемый T/P меньше заданного процента. Работает только если включена опция "<strong>Remember the price when entering a trade"</strong>. <br>Например, не входить в сделку, если прибыль в сделке ожидается менее 3%.</td></tr></tbody></table>

10. Настраиваем *Stop/Loss* (**S/L**)  (работает только в режиме CLOSING MODE:  **TP/SL** и **SIGNAL+TP/SL**)

При необходимости вы можете не задействовать этот режим закрытия сделки, выключив переключатель **Enable**.

<figure><img src="/files/2MXdocENAI86hEsLQ5nT" alt="" width="563"><figcaption></figcaption></figure>

<table><thead><tr><th width="193">Источник</th><th>Описание</th></tr></thead><tbody><tr><td> <strong>BUY</strong></td><td>Источник цены закрытия сделки на покупку (это источник, который передает цену закрытия сделки).</td></tr><tr><td> <strong>SELL</strong></td><td>Источник цены закрытия сделки на продажу (это источник, который передает цену закрытия сделки).</td></tr></tbody></table>

\
Режим работы *фиксированной цены* (лимитная цена) и динамической цены (пересечение канала и т.д.) задается параметром "**Remember value when opening**".

<table><thead><tr><th width="207" align="center"> Режим работы </th><th>Описание</th></tr></thead><tbody><tr><td align="center"><a data-footnote-ref href="#user-content-fn-1"><strong>Enable</strong></a></td><td>Значение будет запоминаться при открытии сделки, а S/L будет фиксированным (для лучшего понимание  - это лимитный ордер на закрытие)  (<em>кроме режима Pyramiding - смотрите далее</em>).</td></tr><tr><td align="center"><strong>Disable</strong></td><td>Значение будет динамическим и может меняться на каждом баре. Например, если источник входа является скользящей или границей канала, по пересечению которого с текущей ценой нужно закрыть ордер.</td></tr></tbody></table>

<table><thead><tr><th width="205">Параметр</th><th>Описание</th></tr></thead><tbody><tr><td><strong>Max S/L for entry, %</strong></td><td>Пропустите вход в сделку, если ее ожидаемый S/L больше заданного процента. Работает только если включена опция "<strong>Remember the price when entering a trade"</strong>. <br>Например, не входить в сделку, если потеря  в сделке ожидается более 5%.</td></tr></tbody></table>

Если необходимо настроить режим автоматического перевода **Stop/Loss в без убыток** (**Breakeven**), для этого существует соответствующий раздел настроек стратегии, который можно включить с помощью переключателя **Enable**.

<figure><img src="/files/vryh3Plc2818fFpCY5xb" alt="" width="563"><figcaption></figcaption></figure>

Режимы включения **Breakeven:**

<table><thead><tr><th width="228" align="center">MODE</th><th>Описание</th></tr></thead><tbody><tr><td align="center">1️⃣ <strong>ABSOLUTE</strong></td><td><p>Режим перевода сделки в без убыток включается тогда, когда позиция начинает генерировать указанную в процентах прибыль в открытой сделке. </p><p>Например, если позиция генерирует прибыль в 1%, тогда S/L переносится в без убыток.</p></td></tr><tr><td align="center">2️⃣ <strong>FROM TP</strong></td><td><p>Режим перевода сделки в без убыток включается тогда, когда прибыль в открытой позиции достигает указанного в процентах значения от ожидаемой прибыли в этой позиции . </p><p>Например, при достижении прибыли в открытой позиции 25% от ожидаемой прибыли в этой позиции, тогда S/L переносится в без убыток.</p></td></tr></tbody></table>

<table><thead><tr><th width="234" align="center">Параметры</th><th>Описание</th></tr></thead><tbody><tr><td align="center"><strong>1️⃣ Profit from entry, %</strong></td><td>Параметр для режима работы: 1️⃣ <strong>ABSOLUTE</strong>.<br>Сколько должна генерировать открытая позиция прибыли для перевода уровня S/L в без убыток.</td></tr><tr><td align="center"><strong>2️⃣ Profit from full T/P, %</strong></td><td>Параметр для режима работы: 2️⃣ <strong>FROM TP</strong><br>Сколько должна генерировать открытая позиция прибыли в процентах от значения ожидаемой прибыли в этой позиции для перевода уровня S/L в без убыток.</td></tr><tr><td align="center"><strong>Shift from entry price, %</strong></td><td>Отступ от цены без убытка (цены входа в сделку) в %. Например, цена входа в сделку 100, смещение указано 0.5%. Тогда фактическая точка без убытка будет 100.50.</td></tr></tbody></table>

11. При необходимости включаем режим **Pyramiding**, который можно включить с помощью переключателя **Enable**. При его активации входной сигнал будет инициировать повторный вход в сделку даже тогда, когда сделка уже открыта. Например, если сделка уже была открыта (1 ордер), то при поступлении нового сигнала будет дополнительно увеличена позиция на сумму начального ордера (будет уже 2 ордера), при следующем сигнале позиция снова будет увеличена на размер начального ордера (будет уже 3 ордера).

<figure><img src="/files/YXvZ7gAjyRepeRxdXNLC" alt="" width="563"><figcaption></figcaption></figure>

В этом режиме работы особое внимание необходимо уделить значениям *Take/Profit* и *Stop/Loss* в режимах работы **TP/SL** и **SIGNAL+TP/SL**.

<table><thead><tr><th width="240" align="center">Кто инициирует TP/SL</th><th>Описание</th></tr></thead><tbody><tr><td align="center"><strong>FIRST</strong></td><td>Если включен режим запоминания "<strong>Remember the price when entering a trade"</strong>, тогда при открытии первой сделки запоминаются значения <em>T/P</em> и <em>S/L</em> и все остальные ордера в режиме <strong>Pyramiding</strong> не меняют эти значения до закрытия всей сделки.</td></tr><tr><td align="center"><strong>LAST</strong></td><td>Каждый новый вход в сделку изменяет значения <em>T/P</em> и <em>S/L.</em></td></tr></tbody></table>

12. При желании можно изменить параметры стратегии (вкладка ***Properties***), которые используются платформой *TradingView* для тестирования на истории.

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

<figure><img src="/files/JaveinwSm09418y1hMyL" alt="" width="375"><figcaption></figcaption></figure>

Кроме встроенных в платформу TradingView отчетов модуль **CONDITION MANAGER STRATEGY** имеет дополнительные отчеты, которые можно включить или выключить с помощью переключателя **Enable**.

В правом верхнем углу графика Вы увидите **информационный блок**, информирующий Вас о:

\- минимальном кредитном плече, с которым следует торговать по этой стратегии

\- максимальная просадка в одной сделке

\- максимальная убыточная серия сделок

\- максимальный Stop-Loss, который был в убыточных сделках

<figure><img src="/files/ifJEFXUxSgZoSXeLWEJY" alt="" width="563"><figcaption></figcaption></figure>

В нижнем правом углу графика появиться таблица с группировкой по годам и месяцам, которая информирует вас об эффективности стратегии от месяца к месяцу. Есть два типа отчетов.&#x20;

<figure><img src="/files/gfmUf1lj5iDAa0rBgBSL" alt="" width="563"><figcaption></figcaption></figure>

<table><thead><tr><th width="243" align="center">Тип отчета</th><th>Описание</th></tr></thead><tbody><tr><td align="center"><strong>From the initial position</strong></td><td><p>Отчет показывает, как менялся начальный капитал (в процентах), выделенный для стратегии, от месяца к месяцу (рисунок 1 смотрите ниже).<br></p><p><strong>Зеленый цвет</strong> - капитал увеличился.</p><p><strong>Желтый цвет</strong> - капитал уменьшился, но находится выше, чем начальный капитал.</p><p><strong>Красный цвет</strong> - капитал ниже, чем начальный капитал.</p></td></tr><tr><td align="center"><strong>Monthly balance changes</strong></td><td><p>Отчет показывает, как менялась сумма средств на торговом счете (в процентах) по сравнению с предыдущим месяцем. Учитываются открытые сделки (рисунок 2 смотрите ниже).<br></p><p><strong>Зеленый цвет</strong> - баланс увеличился.</p><p><strong>Красный цвет</strong> - баланс уменьшился.</p><p><strong>Синий цвет</strong> - изменений нет (сделок не было).</p></td></tr></tbody></table>

<figure><img src="/files/KLuNFsRiX31ewpL7VSee" alt=""><figcaption><p>1 - <strong>From the initial position</strong></p></figcaption></figure>

<figure><img src="/files/0Fwtugw65BHojn4Jd4WN" alt=""><figcaption><p>2 - <strong>Monthly balance changes</strong></p></figcaption></figure>

## 2️⃣ Trading

После проведения бэк-тестирования у вас есть возможность настроить и запустить стратегию отправлять торговые сигналы с помощью Webhook-сообщений. Для этого  необходимо включить режим работы **Trading** и настроить параметры **риск-менеджмента**, что бы стратегия автоматически остановилась при выходе ее параметров из рамок бэк-тестинга.

<figure><img src="/files/8j1E6ntyZfTcyzcfkTZT" alt="" width="365"><figcaption></figcaption></figure>

настраиваем Risk-Management

<figure><img src="/files/ElWWIhoFm708Sjf9x8U1" alt="" width="563"><figcaption></figcaption></figure>

<table><thead><tr><th width="240" align="center">Параметры</th><th>Описание</th></tr></thead><tbody><tr><td align="center"><strong>Max losing series</strong></td><td>Количество убыточных сделок подряд, после которых стратегия перестанет открывать новые сделки.</td></tr><tr><td align="center"><strong>Max drawdown, %</strong></td><td>Максимально возможная просадка капитала, выделенного на эту стратегию, в %, после которой стратегия перестанет открывать новые сделки.</td></tr></tbody></table>

В случае срабатывания подсистемы риск-менеджмента стратегия сгенерирует алерт с заданным сообщением, которое можно задать в поле «**Alert message, when Risk Management is triggered**».В этом сообщении можно использовать специальные переменные-заменители, которые могут предоставить дополнительную информацию о причинах срабатывания подсистемы риск-менеджмента.

<table><thead><tr><th width="278" align="center">Переменная</th><th>Описание</th></tr></thead><tbody><tr><td align="center">{{RISK_MANAGMENT_STOP}}</td><td>Возвращает значение 1 - если сработала подсистема риск-менеджмента и стратегия была остановлена.</td></tr><tr><td align="center">{{STOP_MAX_LOSS_TRADES}}</td><td>Возвращает значение 1 - если сработала подсистема риск-менеджмента и она была остановлена из-за превышения максимально возможной убыточной серии.</td></tr><tr><td align="center">{{STOP_MAX_DRAWDOWN}}</td><td>Возвращает значение 1 - если сработала подсистема риск-менеджмента и она была остановлена из-за превышения максимально возможного проседания капитала, выделенного на эту стратегию.</td></tr></tbody></table>

{% hint style="warning" %}
С параметрами стратегии **необходимо ознакомиться** на самой платформе *TradingView*:\
[*https://www.tradingview.com/support/solutions/43000628599-strategy-properties/*](https://www.tradingview.com/support/solutions/43000628599-strategy-properties/)
{% endhint %}

{% hint style="info" %}
**Информация**

Ниже вы можете ознакомится с обучающим видео от команды *TradingView* о том, как анализировать стратегию и результат ее работы, а полное описание находится здесь:<https://www.tradingview.com/support/solutions/43000562362/>
{% endhint %}

{% embed url="<https://www.youtube.com/watch?v=FKICHC0kF3o>" %}

[^1]:
