Скрипт SmartAlgoNet (Сеточник)
[
скрипт
lua
qlua
квик
quik
сеточник
SmartAlgoNet
]
Скрипт позволяет установить сетку ордеров на вход (выход) в позицию. Работает как с фондовой, так и на срочной, валютной секциях. Скрипт написан на языке LUA. Среда исполнения - торговый терминал Quik.
Видео настроек, работы скрипта
Основные возможности скрипта
Установка сетки ордеров на вход и выход. Динамическая сетка, алгоритмический шаг уровней. Стоп-лосс, контроль прибыли. Оповещения. Журнал сделок.
Скрипт отслеживает установленное соединение с сервером брокера, время торговой сессии по инструменту, исключая подачи команд на сервер брокера в периоды отсутствия соединения с сервером брокера, неторговое время (клиринг, окончание торговой сессии). После восстановления соединения с сервером брокера происходит проверка полученных пакетов (если включена такая настройка), дабы избежать запуска алгоритма на неполных данных. Скрипт корректно отрабатывает закрытие торгового терминал без остановки скрипта. После перезапуска терминала скрипт автоматически запустится, перейдет в период ожидания подключения к серверу брокера, загрузки всех информационных пакетов с сервера брокера.
Для каждого запуска формируется файл лога в каталоге /logs. Если в процессе работы скрипта возникнут ошибки, то будет дополнительно сформирован файл лога ошибок. Если ошибок будет слишком много, то скрипт принудительно остановится.
Основное окно скрипта.
Главное окно содержит колонки вывода и управления информацией:
- […] - Колонка управления строкой. Если строка пустая, то нажатие на данную команду выведет окно выбора инструмента. Если строка уже заполнена, то в данной колонке будет выведена команда удаления строки “Del”.
- state – в данной колонке отображается состояние строки торгуемого инструмента: “Run” - запущен; “Stop” - остановлен
- sec_code - в данной колонке отображается краткое наименование торгуемого инструмента - “+/-“ - в данной колонке отображается команда вызова окна калькулятора по торгуемому инструменту
- account - в данной колонке отображается наименование выбранного счета и субсчета (код клиента) на котором осуществляется торговля
- Set - в данной колонке отображается команда вызова окна настройки параметров торгуемого инструмента
- Position - в данной колонке отображается информация о текущей позиции по торгуемому инструменту на указанном счете/субсчете
- Profit - в данной колонке отображается накопленная прибыль (по закрытым уровням) по инструменту. Также по двойному нажатию по колонке открывается окно сохраненных сделок, если включен журнал сделок.
- Close - команда на закрытие открытой позиции
- xNet- команда на закрытие установленной сетки
- bNet- команда на установку сетки на покупку
- sNet - команда на установку сетки на продажу
- SL TP - в данной колонке отображается текущая информация по установленному стоп-лоссу
-
virtual - включение выключение режима виртуальной торговли - virtual_trade - ВИРУТАЛЬНАЯ ТОРГОВЛЯ - Режим эмуляции торговли. В этом режиме все торговые команды из основного окна скрипта не будут приводить к совершению реальных сделок. Вместо этого сделки будут совершаться “в памяти”. Также будут выводиться метки совершенных сделок на график, если заполнен параметр “Идентификатор графика”. Стоп ордера также будут скрытыми. Этот режим будет полезен для проверки торговых идей в условиях максимально приближенных к реальным.
-
robot_mode - РЕЖИМ РОБОТА - Выбор разрешённого направления торговли. Возможные значения: * ЛОНГ | ШОРТ * ЛОНГ * ШОРТ
- Значения алгоритма - в данной колонке отображается информация алгоритма отслеживания прибыли
-
trade_qty_type - Тип объема входа - Возможные значения: * Qty - количестов лот, контрактов. * Currency – в валюте цены. Для примера, войти на 10000 руб. Объем будет пересчитан на ближайшее целое число лот (контрактов) формирующее указанную сумму сделки. Для срочного рынка в качестве суммы сделки берется суммма ГО (не текущая цена контракта) для указанной цены сделки. * Sum % – процент от суммы. Для примера, войти на 10% от 1 000 000 руб. Объем будет пересчитан на ближайшее целое число лот (контрактов) формирующее указанную сумму сделки. Для срочного рынка в качестве суммы сделки берется суммма ГО (не текущая цена контракта) для указанной цены сделки.
- trade_qty - Полный торговый объем сетки - больше которого не будет устанавливаться уровни.
- init_qty - Первоначальный торговый объем сетки - Торговый объем первоначального построения сетки. При активации сетки будут сразу установлены уровни на этот объем. Остаток до полного торгового объема будет установлен по мере исполнения уровней сетки. Если задно 0, то не учитывается и сетка сразу устанавливается на полный торговый объем.
- avg_close - Закрывать уровни от средней - В этом режиме уровни закрытия будут устанавливаться от текущей средней цены позиции с заданным шагом. Данный режим доступен только если включен режим “Рассчитывать среднюю по активным уровням”. Данный режим недоступен для типа цены шага уровней “Currency”.
- stats - Команада “Открыть статистику” -
- start_price - Цена начала построения уровней - Данная настройка используется для указания вручную цены начала построения уровней. Если значение не задано и используются ручные команды постановки уровней, то будет использована цена последней сделки в момент подачи команды.
- trail - Трейлить ордера ступеней - Включить трейлинг(сдвиг) уровней. При активации режима происходит контроль движения цены. Если цена уходит от сетки, то ордера и уровни будут сдвигаться вслед за ценой.
- Режим ON_DIR - трейл только по направлению сетки.
- Режим BOTH_DIR - трейл в обоих направлениях. Когда цена уходит по направлению, ордера сдвигаются вслед за ценой. Если цена прошла всю сетку и уходит дальше, то сетка будет сдвигаться вслед за ценой, в убыток. Данный режим позволит закрыть уровни с убытком, но при этом сетка будет рядом с ценой и начнет работать, позволяя компенсировать убыток, в отличии от ситуации если бы она осталась на месте. В этом режиме ордера закрытия сдвигаются вне зависимости от настройки “Сдвигать ордера закрытия”.
- stop_loss - Стоп-лосс - Значение стоп-лосса в указанных единицах.
- Message - в данной колонке отображается последнее информационное сообщение по торгуемому инструменту.
Дополнительное окно состояния сетки содержит поля:
- active - Состояние уровня. Можно переключать состояние, тем самым временно снимать ордер открытия уровня.
- block - состояние автоматической блокировки уровня (вне начального торгового объема), ручной блокировки.
- sl_block - состояние блокировки уровня за стоп-ордером.
- dir - направление текущего уровня.
- qty - количество.
- price - цена открытия уровня.
- volume - объём открытой позиции уровня
- dyn_open - динамический уровень открытия (если выбран режим динамической сетки).
- o_state - состояние ордера открытия.
- open_price - реальная цена открытия уровня, исполнения ордера.
- open_type - текущий тип шага открытия уровня
- open_step - значение шага открытия уровня
- close - цена закрытия уровня.
- c_state - состояние ордера закрытия.
- delta - дельта между ценой открытия и закрытия
- dyn_close - динамический уровень закрытия (если выбран режим динамической сетки).
- close_type - текущий тип шага закрытия уровня
- close_step - значение шага закрытия уровня
- c_count - число итераций закрытия уровня.
- profit - накопленный профит на уровне.
- +trail - размер накопленного сдвига уровня по направлению
- -trail - размер накопленного сдвига уровня против направления
Чтобы добавить торгуемый инструмент необходимо выполнить следующие действия:
Если известен код инструмента, допустим SBER (Сбербанк), то необходимо спозиционироваться с помощью указателя в поле sec_code первой пустой строки. Поле окрасится в желтый цвет, тем самым сигнализируя готовность ввода значения. Далее необходимо ввести значение SBER с сохранением регистра, предварительно очистив содержимое поля клавишей “BACKSPACE”.
После необходимо нажать команду “Enter” (Ввод) на клавиатуре, тем самым подтверждая ввод символов.
Если не было ошибок ввода кода инструмента, то произойдет поиск и получение информации по инструменту на серверах брокера. В случае успешного получения информации будет заполнена вся информация по инструменту.
Второй способ ввода инструмента — это выбор команды “[…]” в первой пустой строке. (Здесь и далее по тексту выбор - это двойное нажатие указателем по полю содержащему значение “[…]”. Все поля, содержащие в своем значении текст “[…]” - команды, выбираемые указателем). Появится окно выбора инструмента. Данным способом удобно пользоваться если код торгуемого инструмента неизвестен.
В данном окне можно прямо начать писать текст фильтра (как в данном примере введены фразы “ГА” и “Рос”). Тем самым фильтруя инструменты по имени или по коду. Или просто визуально найти требуемый инструмент. После того как инструмент найден необходимо выбрать его. В результате выбранный инструмент будет добавлен в список инструментов. Если вводится новая строка инструмента, то окно выбора не будет закрыто, что позволит подобрать несколько инструментов за один раз.
Если у Вас открыто несколько счетов/субсчетов, то необходимо выбрать его, выполнив команду выбора в поле “account”. Появится форма выбора счета/субсчета, где необходимо выбрать необходимый счет/субсчет:
ОБЩИЕ ПОЛОЖЕНИЯ
В скрипте (и в окне настроек) действуют следующие правила редактирования значения параметров:
- Все поля, содержащие в своем значении текст “[…]” - это команды, выбираемые указателем (двойное нажатие). При этом двойное нажатие левой клавишей указателя - это изменение значение вправо по списку значений. Двойное нажатие правой клавишей указателя - это изменение значение влево по списку значений. Для примера, набор значений {“Stop+Profit”, “Stop”, “Hidden”, “None”} при выборе левой клавишей мы переходим слева направо по значениям. И обратно для двойного нажатия левой клавишей указателя.
- Все редактируемые (числовые, строковые) поля окрашиваются в желтый цвет. Чтобы начать редактировать поле необходимо выделить необходимое поле. Далее можно привычными командами с клавиатуры ввести необходимое значение показателя. При этом, если это необходимо, удалить старое значение.
- Также числовые поля и поля, содержащие дату (Дата действия заявок, автоматический запуск и остановка), можно изменять с помощью клавиш “стрелка влево” - уменьшить значение, “стрелка вправо” - увеличить значение. Тем самым можно быстро изменить значение, не вводя его с клавиатуры.
- Ввод значения “прямо” с клавиатуры возможно производить только при остановленной торговле по инструменту. Это ограничение введено т.к. при вводе значения можно допустить ошибку ввода.
- Изменение значения через плавное изменение клавишами “стрелка влево” и “стрелка вправо” возможны при работающем роботе, т.к. при таком способе ввода исключается синтаксическая ошибка.
- Часть команд настроек “[…]” доступна при работающем скрипте по инструменту. Допустим, для примера, можно включить и остановить трейлинг стоп-лосса. Можно изменить тип стоп-лосса, тейк-профита при этом произойдет перевыставление ордеров в соответствии с указанными настройками. Допустим, изменив тип тейк-профита со стопа на лимитный ордер, произойдет его перевыставление. Если строка инструмента находится в остановленном состояния, то реакция на изменение настроек произойдет только после запуска торговли по инструменту.
- В поле “Message” выводятся сообщения по строке алгоритма. Если дважды нажать правой клавишей указателя по полю в стоке, то откроется дополнительное окно всех ранее выведенных сообщений по строке.
Скрипт поддерживает горячие клавиши:
- Остановить все строки - Shift + 1
- Запустить все строки - Shift + 2
- Сдвинуть строку вниз - Shift + “-“
- Сдвинуть строку вверх - Shift + “+”
- Скопировать строку - Sift + C. Для корректной работы необходимо выбрать строку не в поле выбора инструмента.
Окно настроек скрипта.
Для настройки торговых параметров по инструменту необходимо выполнить команду “[…]” в поле “Set”. В результате будет показана форма настроек.
Если включить настройку отображения окна настроек с закладками (параметр WINDOW_TABS = 1 в файле ), то окно будет показано в таком виде:
Большинство параметров содержат описание. Его можно вызвать по кнопке “?”.
РАЗДЕЛ: ОБЩИЕ НАСТРОЙКИ
- Идентификатор скрипта - Комментарий, добавляемый к транзакциям. По нему можно будет определить ордера и сделки, совершенные скриптом. Идентификатор должен быть уникальным среди всех скриптов и строк скрипта. При этом необходимо обеспечить уникальность “по вхождению”. Для примера идентификаторы str и str1 не уникальные, т.к. первый входит во второй. А str0 и str1 уже уникальные. Не допускается использовать символы ( ) . % + - * ? [ ^ $
- Запустить при запуске скрипта - Автоматический запуск строк скрипта при запуске скрипта.
- Время автозапуска - Конкретное время для автозапуска. Указывается как строка вида ЧЧ:ММ:СС. Либо ЧЧ:ММ. Если указано, то настройка “Запустить при автозапуске” не работает.
- Время автоостановки - Время остановки сроки скрипта. Указывается как строка вида ЧЧ:ММ:СС. Либо ЧЧ:ММ.
-
Закрывать позицию снимать сетку при автоостановке - Автоматическое закрытие позиции по времени автоостановки. - Заменять инструмент по экспирации - Заменять инструмент на следующий за указанное число дней до экспирации. Важно: происходит только замена инструмента в строке скрипта. Позиция и уже выставленные ордера при этом не затрагиваются.
- Заменять за дней до экспирации -
- Команада “Калькулятор инструмента” - команда вызова окна калькулятора по торгуемому инструменту
- Команада “Настроить позицию” - Необходимо заполнить (отредактировать) уровни входа текущей позиции. Открытая позиция - это одна или несколько сделок в указанных количестве и цене. Исходя из введенных данных рассчитывается среднняя, объем позиции. В процессе работы данные о позиции рассчитываются автоматически, но т.к. скрипт не учитывает сделки, совершенные минуя команды скрипта (т.е. руками через терминал, другими скриптами), то может возникнуть ситуация когда текущая реальная позиция не соответствует той, что помнит скрипт. Или это возможно, когда скрипт был запущен когда позиция уже была сформирована, а сделки (или их часть) отстутствуют в терминале. Допустим, сделки были несколько торговых сессий назад. В этом случае, указывая корретное значение, скрипт сможет правильно установить стоп-лосс и тейк-профит, рассчитать прибыль и т.д.
#### Окно формы редактирования позиции:
-
Команада “Настроить связь с графиком” - настроить вывод меток на график. Выводит настройки разделов:
МЕТКИ ГРАФИКА
- Выводить метки уровней сетки - Если заполнен Идентификатор графика, то можно вывести метки всех уровней.
- Выводить метки заблокированных уровней сетки - Если заполнен Идентификатор графика, то можно вывести метки заблокированных (пропускаемых) уровней.
- Выводить метку позиции - Если заполнен Идентификатор графика, то можно вывести метку средней цены позиции.
- Удалять метки сделок на графике (минут) - Для очистки старых меток сделок на графике можно указать через сколько минут их удалять. Если параметр заполнен, то метки на графике старше чем указано минут, будут удалятся. Если указано 0, то метки не удалются.
ГРАФИК
- Идентификатор графика - куда будут выводиться метки сделок в виртуальном режиме работы. Также метки сделок, скрытых ордеров. Задается в разделе “Дополнительно” свойств цены графика.
РАЗДЕЛ: ТОРГОВЫЕ НАСТРОЙКИ
- ВИРУТАЛЬНАЯ ТОРГОВЛЯ - Режим эмуляции торговли. В этом режиме все торговые команды из основного окна скрипта не будут приводить к совершению реальных сделок. Вместо этого сделки будут совершаться “в памяти”. Также будут выводиться метки совершенных сделок на график, если заполнен параметр “Идентификатор графика”. Стоп ордера также будут скрытыми. Этот режим будет полезен для проверки торговых идей в условиях максимально приближенных к реальным.
- РЕЖИМ РОБОТА - Выбор разрешённого направления торговли. Возможные значения:
-
ЛОНГ ШОРТ - ЛОНГ
- ШОРТ
-
- Полный торговый объем сетки - больше которого не будет устанавливаться уровни.
- Первоначальный торговый объем сетки - Торговый объем первоначального построения сетки. При активации сетки будут сразу установлены уровни на этот объем. Остаток до полного торгового объема будет установлен по мере исполнения уровней сетки. Если задно 0, то не учитывается и сетка сразу устанавливается на полный торговый объем. Т.о. часть уровней будут активны, а остальные будут заблокированы. По мере исполнения уровней они будут разблокироваться.
- Отступ заявки по рынку (шагов) - Величина отступа в шагах цены для выставления рыночной заявки. При подаче заявки по рынку необходимо указать цену, сдвинутую на число шагов от текущей, чтобы она гарантировано исполнилась. Данный параметр важен при торговле на срочном рынке, т.к. от цены заявки зависит расчет ГО. На срочном рынке нет рыночных ордеров. Признак рыночная в терминале - это эмуляция. Заявка отправляется по верхней или нижней границе допустимого ценового диапазона. Но заявки по этим ценам будут иметь повышенное ГО. Поэтому введен параметр, позволяющий задать отступ от текущей цены, который бы гарантированно привел к исполнению ордера, но при этом не было такого ГО как на границах. Также в моменты высокой волатильности данный параметр позволит отрегулировать отступ для рыночной заявки.
- Проверять лимиты - При подаче заявки проверить доступность денежных средств.
- Ожидание сигнала после ошибки (сек.) - Период ожидания (в сек.) обработки нового торгового сигнала в случае прошлой неудачной попытки. Если при обработке торгового сигнала была ошибка (недостаточно средств, отвергнутая заявка и т.д.), то следующий сигнал того же характера будет отработан по истечении периода ожидания.
- Проверять лимиты цен - При установке лимитных ордеров необходимо указывать цену не выходящую за ценовой диапазон.
- Попыток установки лимитного ордера - Если при установке лимитного ордера входа в позицию возникла ошибка, то будет предпринято не более попыток установки. Если задано 0, то число попыток не ограничено.
- Ожидание при сдвиге ордера (сек.) - Если активна возможность сдвига, и если пользователь сдвинул ордер на графике на новый ценовой уровень, то скрипт ждет его появления, прежде чем перевыставить новый ордер, если это требует алгоритм. Период ожидания необходим, т.к. новый ордер регистрируется через некоторое время. Если пользователь просто случайно (по ошибке) снял его, то скрипт через указанной время выставит заново сдвинутый ордер.
- Команада “Забыть открытую позицию” - Данная команда имеет смысл только если выключен режим “Отслеживать ручные сделки”. Данная команда очищает позицию, запомненную скриптом (ВАЖНО. Не закрывает физически, а очищает из памяти). Например: Скрипт открыл позицию, выставил стоп-ордер. Далее скрипт был выключен, позиция была закрыта руками, сработал стоп при выключенном скрипте и т.д. Т.е. произошло изменение позиции, которое скрипт не контролировал. Т.к. выключен режим “Отслеживать ручные сделки”, то скрипт не узнает об этом. В этом случае можно выполнить команду и скрипт забудет информацию по ранее открытой позиции и можно запустить скрипт заново.
РАЗДЕЛ: СТУПЕНИ ВХОДА
ПОДРАЗДЕЛ: РЕЖИМЫ
МОДУЛЬ АКТИВАЦИИ|РАЗВОРОТА СЕТКИ
-
Команада “Выбрать алгоритмы Активиции Разворота сетки” - Режим активации сетки по событиям алгоритма. Если выбраны алгоритмы, то сетка ордеров будет устанавливаться(разворачиваться) автоматически по рассчитанным сигналам. Сигнал - это когда все выбранные алгоритмы выдают сигнал одного направления. Например, выбраны алгоримты MACD, PSAR. Сигнал на ЛОНГ - это когда оба алгоритма переходят в направление ЛОНГ. Переход может быть не одновременным. В данном режиме также можно управлять сеткой ручными командами. Если текущее направление по алгоритмам ЛОНГ, можно открыть сетку в направлении ШОРТ ручной командой. Одновременно можно выбрать несколько алгоритмов.
Виды алгоритмов активации:
- “LEVEL” - Если очередной бар закрывается (уходит цена) за указанным уровнем, то производится активация сетки. Уровни могут быть заданы как конкретные цены, так и в виде отступа от текущей цены.
- “MA” - по скользящей средней
- для варианта алгоритма Тренд: Если значение MA на закрытом баре больше чем значение MA на предыдущем баре, то происходит активация сетки в ЛОНГ. Для ШОРТ наоборот.
- для варианта алгоритма Касание: не лучше средней. Если очередной бар закрывается за MA (Для ЛОНГ - вниз, для ШОРТ - вверх), то происходит активация сетки. Данный режим доступен для режимов торговли “ЛОНГ” и “ШОРТ”.
- “MACD” - если изменяется тренд по MACD последнего закрытого бара, то происходит активация сетки в направлении сигнала.
- “MA_CROSS” - если происходит пересечение линий MA на последнем закрытом баре, то происходит активация сетки в направлении сигнала. Для варианта трех линий, сигнал - это когда формируется порядок линий 1>2>3 или 1<2<3.
- “PSAR” - если Parabolic SAR последнего закрытого бара меняет направление, то происходит активация сетки в направлении сигнала.
- “SAR” - если SAR последнего закрытого бара меняет направление, то происходит активация сетки в направлении сигнала.
- “RSI” - если RSI последнего закрытого бара пересекает уровень, то происходит активация сетки.
- “STOCH” - если STOCH последнего закрытого бара пересекает уровень, то происходит активация сетки.
- “JRSX” - если JRSX последнего закрытого бара пересекает уровень, то происходит активация сетки.
- “REG” - рассчитывается канал регрессии. Доступна Линейная, Парболическая, Кубическая регрессии.
- для варианта алгоритма Тренд: если регрессия меняет направление, то происходит активация сетки.
- для варианта алгоритма Пробой: если бар закрывается за каналом, то происходит активация сетки в направлении пробития.
- для варианта алгоритма Отбой: если сначала бар закрывается за каналом, а потом бар закрывается внутри, то происходит активация сетки в направлении возврата в канал.
- “KREG” - рассчитывается Ядерная регрессия Надарая — Уотсона.
- для варианта алгоритма Тренд: если Ядерная регрессия меняет направление, то происходит активация сетки.
- для варианта алгоритма Пробой: если бар закрывается за каналом, то происходит активация сетки в направлении пробития.
- для варианта алгоритма Отбой: если сначала бар закрывается за каналом, а потом бар закрывается внутри, то происходит активация сетки в направлении возврата в канал.
- “BOL” рассчитывается канал Боллинджера.
- для варианта алгоритма Пробой: если бар закрывается за каналом, то происходит активация сетки в направлении пробития.
- для варианта алгоритма Отбой: если сначала бар закрывается за каналом, а потом бар закрывается внутри, то происходит активация сетки в направлении возврата в канал.
- “KELTNER” - рассчитывается канал вокруг MA +/- k * ATR (канал Кельтнера).
- для варианта алгоритма Пробой: если бар закрывается за каналом, то происходит активация сетки в направлении пробития.
- для варианта алгоритма Отбой: если сначала бар закрывается за каналом, а потом бар закрывается внутри, то происходит активация сетки в направлении возврата в канал.
- “MURR” - Рассчитываются уровни Мюррея. Если очередной бар закрывается за указанным уровнем, то производится активация сетки.
- “Настроить алгоритм активации” - команда для открытия окна настроек выбранного алгоритма активации сетки
Пример окна настроек активации сетки алгоритмов MACD | KELTNER | STOCH: |
В данной форме необходимо указать интервал баров (свечей) для расчета алгоритма, параметры расчета выбранного алгоритма.
- Фиксировать цену начала построения сетки - Если задано фиксировать цену начала построения сетки, то первый уровень всегда будет рассчитан по последнему закрытому бару в момент активации. Возможные значения:
-
High Low - для направления ЛОНГ - Low, для ШОРТ - High - Median - (H+L)/2
- Typical - (H+L+C)/3
- Weighted - (H+L+C+O)/4
-
-
Интервал цены начала построения сетки - Если активирован режим “Фиксировать цену начала построения сетки”, то необходимо указать интервал баров, для определения цены начала построения сетки.
- Всегда снимать(разворачивать) активную сетку при смене направления сигнала алгоритма - При смене направления сигнала алгоритма всегда снимать(разворачивать) активную сетку. Возможные значения:
- OFF - выключено. Сигнал игнорируется. Активная сетка может быть снята руками или исполнена. Т.к. сигнал игнорируется, то открытая позиция также не будет изменена.
- ON - включено. При смене направления всегда снимать(разворачивать) активную сетку (также происходит закрытие позиции). Переворот осуществляется если новое направление разрешено в настройке “ТОРГОВЫЕ НАСТРОЙКИ:РЕЖИМ РОБОТА”
- Всегда закрывать позицию при смене направления сигнала алгоритма - При смене направления сигнала алгоритма всегда закрывать(переворачивать) позицию.
- OFF - выключено. Позиция закроется по стоп-профиту или руками.
- ON - включено. При смене направления всегда закрывать(переворачивать) позицию. Переворот осуществляется если новое направление разрешено в настройке “ТОРГОВЫЕ НАСТРОЙКИ:РЕЖИМ РОБОТА” и разрешен разворот сетки.
- Подавать сигнал по направлению при старте - Подавать сигнал по текущему направлению (если оно определено) в начале нового дня. Данный режим может понадобиться если в прошлую торговую сессию была закрыта сетка, например, по времени, руками, а в следующий торговый день при первом запуске, для восстановления сетки, подавать сигнал по текущему направлению.
-
Команада “Настройки временных интервалов” - Данная настройка позволяет указать временые интервалы, когда алгоритму запрещено контролировать изменения сигналов. Ручные операции остаются доступны. Время указывается как строка вида ЧЧ:ММ:СС. Либо ЧЧ:ММ. Если не указано время начала, то считается что установлено от начала торгового дня. Если не указано время окончания, то считается что установлено до окончания торгового дня. В строке необходимо ввести хотя бы одно значение. Параметр close_net определяет необходимо ли закрыть позицию при наступлении времени запрета.
- Порядок выполнения алгоритма - Если задан разный порядок для алгоритмов, то смена направления - это выполнение условий разных алгороитмов в том порядке, что задан. Например, первый алгоритм - MACD и порядок 1, второй - BOL и порядок 2. Следовательно после смены направления по алгоритму MACD (1-ый), происходит ожидание смены направления BOL. Обратный порядок - сначала BOL, потом MACD не приведет к общей смене направления. Если заданы одинаковые значения, то это обычный режим, когда не важен порядок выполненя.
- Использовать для открытия (разворота) - Возможность указания как использоваь алгоритм. Если указано использование для открытия, то данный сигнал участвует при формировании сигнала на установку новой сетки, разворота существующей по нвоому направлению. Если указано использование для закрытия, то формируется отдельный сигнал на закрытие существующей сетки (позиции), отличный от сигнала на открытие (разворот). Для примера, алгоритм установки сетки - это набор из трёх алгоритмов: MACD, BOL, RSI. Т.о. новый сигнал это когда выполнились условия всех трёх алгоритмов в одном направлении. При этом необходимо, чтобы установленная сетка была снята (закрыта позиция), если выполняется противоположный сигнал только MACD. Такой сигнал вполне может произойти до появления разворотного сигнала на открытие (разворот). Т.о., указав для алгоритма MACD использорвание для закрытия, будет отслеживаться дополнительный сигнал на закрытие. Если выбрано несколько алгоритмов для закрытия, то как и в сигнале на открытие, учитывается порядок выполнения. Если ни один из алгоритмов не указан для закрытия, то закрытие (разворот) будет производится в обычном режиме - при выполнении полного противоположного сигнала на открытие.
-
Использовать для закрытия - Возможность указания как использоваь алгоритм. Если указано использование для открытия, то данный сигнал участвует при формировании сигнала на установку новой сетки, разворота существующей по нвоому направлению. Если указано использование для закрытия, то формируется отдельный сигнал на закрытие существующей сетки (позиции), отличный от сигнала на открытие (разворот). Для примера, алгоритм установки сетки - это набор из трёх алгоритмов: MACD, BOL, RSI. Т.о. новый сигнал это когда выполнились условия всех трёх алгоритмов в одном направлении. При этом необходимо, чтобы установленная сетка была снята (закрыта позиция), если выполняется противоположный сигнал только MACD. Такой сигнал вполне может произойти до появления разворотного сигнала на открытие (разворот). Т.о., указав для алгоритма MACD использорвание для закрытия, будет отслеживаться дополнительный сигнал на закрытие. Если выбрано несколько алгоритмов для закрытия, то как и в сигнале на открытие, учитывается порядок выполнения. Если ни один из алгоритмов не указан для закрытия, то закрытие (разворот) будет производится в обычном режиме - при выполнении полного противоположного сигнала на открытие.
- Запоминать сигнал - Возможность запоминания сигнала между запусками. Например, при переходе через сутки. Т.о. остановив скрипт вечером и запустив его с утра, сигнал, полученный ранее будет запомнен. Данный режим имеет смысл при использовании нескольких алгоритмов активации, чтобы запомненный сигнал был учтён при ожидании следующего алгоритма.
-
Команада “Сбросить запоминенный сигнал” - очищает запомненный сигнал
- В алгоритмах, где можно выбрать метод расчета MA, доступны варианты:
- EMA - Exponential Moving Average
- SMA - Simple Moving Average
- WMA - Weighted by index Moving Average
- VWMA - Volume Adjusted Moving Average
- SMMA - Smoothed Moving Average
- TEMA - The Triple Exponential Moving Average
- DEMA - The Double Exponential Moving Average
- TMA - Triangular (extreme smooth) Moving Average
- WILLMA - William Moving Average
- HMA - Hull Moving Average
- JMA - Jurik Moving Average
- AMA - Kaufman’s Adaptive Moving Average
- ALMA - Arnaud Legoux Moving Average
- THV - THV Coral filter
- VIDYA - Variable Index Dynamic Average
- DSMA - Deviation-Scaled Moving Average by John F. Ehlers
- SSMA - SuperSmoother filter Moving Average by John F. Ehlers
- LSMA - Least Squares MA
Индивидуальные настройки алгоритмов:
НАСТРОЙКИ АКТИВАЦИИ СЕТКИ MA
- Вариант алгоритма - Возможные значения: * Тренд * Касание
- Бар сравнения - Для варианта алгоритма “Тренд” направление определяется как наклон кривой. При этом можно сравнивать значение с прошлым на указанное число бар назад. По умолчания сравнивается с прошлым баром [-1].
НАСТРОЙКИ АКТИВАЦИИ СЕТКИ LEVEL
- Интервал алгоритма активации LEVEL - Интервал баров алгоритма активации LEVEL для расчета событий.
- Вариант контроля - движения цены. Возможные варианты:
- Bar Close - по закрытию бара.
- Price Move - движение текущей цены.
- Перестраивать сетку после закрытия позиции - Если задан тип построения уровней от текущей цены в виде отступа, то после закрытия позиции автоматически пересчитывать уровни от текущей цены и снимать текущую сетку уровней. Т.о. активация установки сетки уровней происходит однократно и работает до закрытия позиции. После рассчитываются новые уровни активации. Если сброс не указан, то уровни работают в обычном режиме - по выполению условия противоположного уровня будет подан противоположный сигнал. Данный режим недоступен для типа цены уровней Currency
-
Тип цены уровней - Уровни активации. Уровни могут быть заданы как конкретные цены, так и в виде отступа от текущей цены. Тип цены расчета уровней. Возможные значения: * Currency - уровень задается в валюте цены инструмента, т.е. конкретное значение уровня. * Steps – шаги цены инструмента от текущей цены. Целое число. Шаг цены инструмента определен его спецификацией. * Pips - пункты цены инструмента от текущей цены. Целое число. Пункт - это минимальное изменение цены валюте цены инструмента. Для примера, цена 90.61 - это 9061 пункт. Изменение 90.61-90.62 - это разница в один пункт. * % (процент) - процент от текущей цены.
- Условие активации покупки - Возможные значения:
- ”>=”
- ”<=”
- Уровень покупки
- Условие активации продажи - Возможные значения:
- ”>=”
- ”<=”
- Уровень продажи
НАСТРОЙКИ АКТИВАЦИИ СЕТКИ MACD
- Вариант расчета тренда:
- MACD - линия MACD пересекает 0.
- Signal - линия Signal пересекает 0.
- MACD-Signal - линия Signal пересекает MACD.
НАСТРОЙКИ АКТИВАЦИИ СЕТКИ REG
- Вариант алгоритма - Возможные значения:
- Тренд
- Пробой
- Отбой
- Вариант направления - алгоритма для режимов “Пробой” или “Отбой”. Возможные варианты:
- По направлению - направление по движению. Например, если пробой верхней границы, то направление ЛОНГ, если отбой от верхней границы, то ШОРТ.
- Против направления - направление против движению. Например, если пробой верхней границы, то направление ШОРТ, если отбой от верхней границы, то ЛОНГ.
- Вариант контроля - движения цены при прорыве канала. Для варианта “Отбой” только пробой, возврат в канал всегда контролируется по закрытию бара. Возможные варианты:
- Bar Close - по закрытию бара.
- Price Move - движение текущей цены.
- Период регрессии
- Тип регрессии - Возможные значения:
- Линейная
- Параболическая
- Кубическая
- Отклонение
- Наклон кривой (%) для тренда - Для определения тренда регрессии вводится параметр наклона. Если регрессия линейная, то это процент отклонения величин в начальной и конечной точки прямой регрессии. Например, текущее значение регрессии 110, в начальной точке 100 - процент отклонения 10% (110-100) * 100/100. Если полученное значение выше порога, то тренд считается по тому, в какую сторону наклон. Если регрессия нелинейна, то рассчитывается первая производная и её среднее значение (по каждой точке за период регрессии). Если значение производной выше порога, то тренд считается по знаку производной. Для производной значения порога должны быть выше, чем процент наклона.
- Нет тренда если % наклона меньше - Определяется так же как и для параметра “Наклон кривой (%) для тренда”. Если задано 0, то игнорируется. Используется для фильтрации ситуаций когда наклон небольшой и необходимо игнорировать такую ситуацию. Если полученное значение ниже порога, то текущий тренд регрессии игнорируется. В основном используется для ситуаций когда тренд завершается и начинается разворот, т.е. наступает неопределенная ситуация. Но также этот параметр будет влиять и на определение тренда совместно с параметром “Наклон кривой (%) для тренда”, т.к. пока наклоне не станет выше обоих порогов тренд не изменится. Например, “Наклон кривой (%) для тренда” задан = 0.05, а “Нет тренда если % наклона меньше” = 0.1. Т.о. если был ранее определен тренд в ЛОНГ, он длился длительно время, но наступает ситуация когда наклон становится меньше 0.1. В этот момент тренд изменяется на Неопределено и т.о. любые сигналы будут проигнорированы, если есть учёт тренда. Если же наклон вернулся за значение 0.1 или развернулся и вышел за 0.1, то он будет установлен в соответствии с наклоном регрессии.
- Пересчитывать при отклонении более - По умолчанию регрессия пересчитывается на каждом баре. Но если задано значение, то пересчет будет осуществлен только если цена зашла за указангое отклонение.
- Учитывать тренд - Если выбран вариант алгоритма “Пробой” или “Отбой”, то можно учитывать тренд регрессии и реагированть на сигнал, если он совпадает с трендом.
НАСТРОЙКИ АКТИВАЦИИ СЕТКИ KREG
- Вариант алгоритма - Возможные значения:
- Тренд
- Пробой
- Отбой
- Вариант направления - алгоритма для режимов “Пробой” или “Отбой”. Возможные варианты:
- По направлению - направление по движению. Например, если пробой верхней границы, то направление ЛОНГ, если отбой от верхней границы, то ШОРТ.
- Против направления - направление против движению. Например, если пробой верхней границы, то направление ШОРТ, если отбой от верхней границы, то ЛОНГ.
- Вариант контроля - движения цены при прорыве канала. Для варианта “Отбой” только пробой, возврат в канал всегда контролируется по закрытию бара. Возможные варианты:
- Bar Close - по закрытию бара.
- Price Move - движение текущей цены.
- Период регрессии -
- Тип ядра - Возможные значения:
- nadaraya_watson
- gaussian
- epanechnikov
- quartic_biweight
- Ширина окна -
- Отклонение -
- Значение 1-ой производной кривой для тренда - Для определения тренда регрессии вводится параметр наклона. Рассчитывается первая прроизводная и её среднее значение (по каждой точке за период регрессии). Если значение производной выше порога, то тренд считается по знаку производной.
- Нет тренда если 1-ая призв. меньше - Определяется так же как и для параметра “Значение 1-ой производной кривой для тренда”. Если задано 0, то игнорируется. Используетсмя для фильтрации ситуаций когда наклон небольшой и необходимо игнорировать такую ситуацию. Если полученное занчение ниже порога, то текущий тренд регрессии игнорируется. В основном используется для ситуаций когда тренд завершается и начинаекктся разворот, т.е. наступает неопределенная ситуация. Но также этот параметр будет влиять и на определение тренда совместо с параметром “Значение 1-ой производной кривой для тренда”, т.к. пока наклоне не станет выше обоих поргов тренд не изменится. Например, “Значение 1-ой производной кривой для тренда” задан = 1, а “Нет тренда если 1-ая призв. меньше” = 2. Т.о. если был ранее определен тренд в ЛОНГ, он длился длительно время, но наступает ситуация когда производная становится меньше 2. В этот момент тренд изменяется на Неопределено и т.о. любые сигналы будут проигнорированы, если есть учёт тренда. Если же наклон вернулся за значение 0.1 или развернулся и вышел за 0.1, то он будет установлен в соответсвии с наклоном регрессии.
- Учитывать тренд - Если выбран вариант алгоритма “Пробой” или “Отбой”, то можно учитывать тренд регрессии и реагированть на сигнал, если он совпадает с трендом.
НАСТРОЙКИ АКТИВАЦИИ СЕТКИ BOL
- Вариант алгоритма - Возможные значения:
- Пробой
- Отбой
- Вариант направления - алгоритма для режимов “Пробой” или “Отбой”. Возможные варианты:
- По направлению - направление по движению. Например, если пробой верхней границы, то направление ЛОНГ, если отбой от верхней границы, то ШОРТ.
- Против направления - направление против движению. Например, если пробой верхней границы, то направление ШОРТ, если отбой от верхней границы, то ЛОНГ.
- Вариант контроля - движения цены при прорыве канала. Для варианта “Отбой” только пробой, возврат в канал всегда контролируется по закрытию бара. Возможные варианты:
- Bar Close - по закрытию бара.
- Price Move - движение текущей цены.
НАСТРОЙКИ АКТИВАЦИИ СЕТКИ KELTNER
- Вариант алгоритма - Возможные значения:
- Пробой
- Отбой
- Вариант направления - алгоритма для режимов “Пробой” или “Отбой”. Возможные варианты:
- По направлению - направление по движению. Например, если пробой верхней границы, то направление ЛОНГ, если отбой от верхней границы, то ШОРТ.
- Против направления - направление против движению. Например, если пробой верхней границы, то направление ШОРТ, если отбой от верхней границы, то ЛОНГ.
- Вариант контроля - движения цены при прорыве канала. Для варианта “Отбой” только пробой, возврат в канал всегда контролируется по закрытию бара. Возможные варианты:
- Bar Close - по закрытию бара.
- Price Move - движение текущей цены.
НАСТРОЙКИ АКТИВАЦИИ СЕТКИ MURR
Уровни Мюррея задаются как дробь -2/8, 0/8, 4/8, +2/8 и т.д.
Для всех осцилляторов и уровней Мюррея вариант условия выбирается:
- Условие пересечения для ЛОНГ - Если последнего закрытого бара поднимется выше(опускается ниже) этого уровня, то происходит активация сетки Лонг. Вариант условия выбирается:
- Cross DW - Пересечение уровня вниз.
- Cross UP - Пересечение уровня вверх.
- Условие пересечения для ШОРТ - Если последнего закрытого бара опускается ниже(поднимется выше) этого уровня, то происходит активация сетки Шорт. Вариант условия выбирается:
- Cross DW - Пересечение уровня вниз.
- Cross UP - Пересечение уровня вверх.
- Уровень для ЛОНГ - Если последнего закрытого бара опускается ниже(поднимется выше) этого уровня, то происходит активация сетки Шорт. Вариант условия выбирается:
- Cross DW - Пересечение уровня вниз.
- Cross UP - Пересечение уровня вверх.
- Уровень для ШОРТ - Если последнего закрытого бара опускается ниже(поднимется выше) этого уровня, то происходит активация сетки Шорт. Вариант условия выбирается:
- Cross DW - Пересечение уровня вниз.
- Cross UP - Пересечение уровня вверх.
- Уровень подтверждения для ЛОНГ - Если последнего закрытого бара опускается ниже(поднимется выше) этого уровня, то происходит активация сетки Шорт. Вариант условия выбирается:
- Cross DW - Пересечение уровня вниз.
- Cross UP - Пересечение уровня вверх.
- Уровень подтверждения для ШОРТ - Если последнего закрытого бара опускается ниже(поднимется выше) этого уровня, то происходит активация сетки Шорт. Вариант условия выбирается:
- Cross DW - Пересечение уровня вниз.
- Cross UP - Пересечение уровня вверх.
- Использовать уровень подтверждения - Если используется уровень подтверждения, то в таком случае сначала необходимо пересечение уровня подтверждения, а потом основного уровня. Для примера, направление ЛОНГ, перечение UP, уровень 30, уровень подтверждения 20: В таком случае необходимо, чтобы сначала бар закрылся за уровнем подтверждения 20, а потом уже пересек уровень 30. Т.о. будут отфильтрованы сигналы пересечения уровня 30, без пересечения уровня 20. Данный режим имеет смысл для сочетаний: Cross UP для ЛОНГ, Cross DW для ШОРТ.
МОДУЛЬ ДИНАМИЧЕСКАЯ СЕТКА
Алгоритм динамических уровней сетки - В данном режиме происходит расчет канала по выбранному алгоритму. Его ширина и одна из границ (для ЛОНГА - нижняя, для ШОРТА - верхняя) - это база расчета. Для ЛОНГА уровень задается как, например, 30% (значение не ограничено, можно вводить и отрицательные значения и значения больше 100) ширины от нижней границы. Т.о. по мере изменения канала будут смещаться ордера и уровни на новую расчетную точку = 30% от ширины. Для ШОРТ, наоборот, от верхней границы. В данном режиме уровни заполняются не в ценах инструмента а в процентах от ширины канала.
- Виды алгоритмов динамической сетки:
- “BOL” - рассчитывается канал Боллинджера. Уровни рассчитываются по границам канала.
- “KELTNER” - рассчитывается канал вокруг MA +/- k*ATR (канал Кельтнера). Уровни рассчитываются по границам канала.
- “REG” - рассчитывается регрессионный канал. Уровни рассчитываются по границам канала.
- “KREG” - рассчитывается Ядерная регрессия Надарая — Уотсона. Уровни рассчитываются по границам канала.
- “MURR” - Рассчитываются уровни Мюррея. Канал рассчитывается по заданным уровням.
- “Настроить алгоритм динамической сетки” - команда вызова окна настройки алгоритма динамической сетки
Пример окна настройки динамических уровней:
- Интервал расчета динамической сетки - Интервал баров алгоритма активации для расчета событий.
- Рассчитывать баров истории - Интервал баров алгоритма активации, для расчета событий.
- Активировать построение сетки по уровню - Если включен режим алгоритмической активации сетки, то включение данного режима, позволит заполнять сетку только после достижения ценой заданного уровня активации. Т.о. если произошло изменение тренда, но при этом цена не достигла уровня активации, сетка не будет заполнена. Это позволит избежать построений сетки при ложных, неподтвержденных сигналах. Для ручных команд данная настройка не контролируется, т.е. командами можно установить сетку при любом положении цены. Уровень активации динамической сетки выражен в % о ширины канала. Уровень отсчитывается от нижней границы канала для направления ЛОНГ, верхней для направления ШОРТ. Достижение уровня это нахождение ценой выше уровня для направления ЛОНГ, ниже для направления ШОРТ.
- Уровень активации ( % от ширины канала) - Если включен параметр “Активировать построение сетки по уровню”. Уровень активации динамической сетки выраженный в % от ширины канала. Уровень отсчитывается от нижней границы канала для направления ЛОНГ, верхней для направления ШОРТ. Достижение уровня это нахождение ценой выше уровня для направления ЛОНГ, ниже для направления ШОРТ.
- Тип цены контроля ширины канала - Тип цены контроля ширины канала. Возможные значения:
- % (процент) - процент.
- Steps – шаги цены инструмента. Целое число. Шаг цены инструмента определен его спецификацией.
- Pips - пункты цены инструмента. Целое число. Пункт - это минимальное изменение цены валюте цены инструмента. Для примера, цена 90.61 - это 9061 пункт. Изменение 90.61-90.62 - это разница в один пункт.
- Минимальная ширина канала для активации - Если включен режим алгоритмической активации сетки, то можно указать минимальную ширину канала для автоматической активации сетки. Т.о. если произошло изменение тренда, но при этом ширина канала меньше минимальной, сетка не будет заполнена. Эт позволит избежать построений сетки при слишком низкой волатильности. Значение 0 означает, что не данный параметр не контролируется. Для ручных команд данная настройка не контролируется, т.е. командами можно установить сетку при любой ширине.
- Максимальная ширина канала для активации - Если включен режим алгоритмической активации сетки, то можно указать максимальную ширину канала, больше которой блокируется автоматическая активация сетки. Т.о. если произошло изменение тренда, но при этом ширина канала больше максимальной сетка не будет заполнена. Это позволит избежать построений сетки при слишком высокой волатильности. Значение 0 означает, что не данный параметр не контролируется. Для ручных команд данная настройка не контролируется, т.е. командами можно установить сетку при любой ширине.
- Фиксировать цену начала построения сетки - Если задано фиксировать цену начала построения сетки, то первый уровень всегда будет рассчитан как % от ширины канала.
- % range начала построения сетки - Если задано фиксировать цену начала построения сетки, то первый уровень всегда будет рассчитан как % от ширины канала. Параметр разрешено изменять при запущенном алгоритме. Изменение доступно через клавиши “стрелка влево” или “Стрелка вправо”
- Тип цены контроля смещения уровня - Тип цены контроля смещения уровня. Возможные значения:
- % (процент) - процент.
- Steps – шаги цены инструмента.
- Pips - пункты цены инструмента.
- % dynamic range - процент ширины динамического канала.
- Мин. смещение цены для сдвига уровня - Данная настройка позволяет указать минимальное движение цены для смещения уровня. Если в результате нового расчета динамического уровня, дельта смещения окажется ниже минимальной, то уровень не будет смещен. Это позволит минимизировать числ транзакций, исключая микросмещения уровней. Параметр разрешено изменять при запущенном алгоритме. Изменение доступно через клавиши “стрелка влево” или “Стрелка вправо”
- Смещать закрытия уровней против сделки - Данная настройка позволит запретить смещение ордера закрытия уровня против сделки. Т.о. при смещении канала против сделки, уже установленные ордера закрытия останутся на своем уровне. Параметр разрешено изменять при запущенном алгоритме.
- Не смещать закрытия уровней хуже уровня открытия - Если разрешено смещение ордера закрытия уровня против сделки, можно запретить смещение дальше его уровня открытия. Параметр разрешено изменять при запущенном алгоритме.
В режиме динамических уровней по умолчанию тип цены закрытия задается как “% dynamic range”. Но также доступны и базовые типы “Steps, %, Pips”. В таком случае, при заполнении уровней, динамический шаг будет рассчитан исходя из заданной величины шага, т.е. обратный расчет. При работе сетки уже будут учитываться только динамические уровни.
В данном режиме недоступен режим трейлинга уровней, режим алгоритмического шага закрытия уровней.
Модуль АЛГОРИТМИЧЕСКИЙ ШАГ УРОВНЯ
- Алгоритм расчета шага уровня. В данном режиме рассчитывается текущая волатильность по выбранному алгоритму. Шаг уровней указаывается как коэффициент от значения волатильности. Т.о. уровни входа указываются в виде конуретных цен, а уровни выхода будут рассчитываться динамически, в зависимости от рассчитанной волатильности. Данный режим недоступен если выбран режим Динамическая сетка.
Возможные значения:
- ATR - шаг уровня кратный ATR.
- STD - шаг уровня кратный стандартному отклонению.
- PRCICE RANGE - шаг уровня кратный ширине ценового канала.
- Команда “Настроить алгоритмы шага уровней” - Если выбран алгоритмический шаг уровня, то необходимо указать параметры расчета алгоритма. Команда доступна при запущенном алгоритме.
Пример окна настройки алгоритмического шага уровня для алгоритма ATR:
- Интервал алгоритма шага уровней - интервал баров алгоритма .
- Тип цены контроля смещения уровня - Тип цены контроля смещения уровня. Возможные значения:
- % (процент) - процент.
- Steps – шаги цены инструмента.
- Pips - пункты цены инструмента.
- Мин. смещение цены для сдвига уровня - Данная настройка позволяет указать минимальное движение цены для смещения уровня. Если в результате нового расчета уровня закрытия, дельта смещения окажется ниже минимальной, то уровень не будет смещен. Это позволит минимизировать число транзакций, исключая микросмещения уровней.
- Смещать закрытия уровней против сделки - Данная настройка позволит запретить смещение ордера закрытия уровня против сделки. Т.о. при смещении против сделки, уже установленные ордера закрытия останутся на своем уровне. Параметр разрешено изменять при запущенном алгоритме.
- Не смещать закрытия уровней хуже уровня открытия - Если разрешено смещение ордера закрытия уровня против сделки, можно запретить смещение дальше его уровня открытия. Параметр разрешено изменять при запущенном алгоритме.
- Минимальное значение шага (Steps) - Данная настройка позволяет указать абсолютное минимальное значение шага. Если в результате нового расчета алгоритма шаг окажется меньше минимального значения, то за шаг будет принято минимальное значение. Это позволит исключить ситуаций когда расчетное значение становится очень малым.
- Максимальное значение шага (Steps) - Данная настройка позволяет указать абсолютное максимальное значение шага. Если в результате нового расчета алгоритма шаг окажется больше максимального значения, то за шаг будет принято максимальное значение. Это позволит исключить ситуаций когда расчетное значение становится очень малым. ————————————————————————————————————————————————
Дополнительный модуль “ТРЕНДОВАЯ СЕТКА”
- При активации режима, введенные шаги открытия становятся отрицательными. Также изменяется направление трейла на противоположный. Также зеркально изменяется активация ордера. Ордера на покупку активируются если текущая цена превышает цену уровня, на продажу - становится ниже. Т.е. режим пробоя. В стандартном режиме ордера работают как лимитные, в этом режиме как стоп-лимитные. В данном режиме ордера устанавливаются в указанном направлении, т.е. по мере движения по направлению будут исполняться ордера. В обычном режиме ордера устанавливаются против выбранного направления в ожидании “отката”. При достижении уровня происходит вход в позицю лонг по рынку. После этого устанавливается ордер на закрытие позиции по направлению движения. Если сетка симметричная (шаг открытия = шаг закрытия), то ордер закрытия будет совпадать с следующим ордером открытия. При этом ордер входа для неактивированных уровней - это скрытый ордер, а ордер закрытия устанавливаются в соответствии с указанным типом, напрмер лимитный.
После активации уровня (т.е. исполнения ордера на вход) последующие уставки ордеров на этом уровне (после исполнения ордера закрытия) будут уже устанавливаться в соответствии с указанным типом, напрмер лимитный. Т.о. если цена пройдет всю сетку по направлению от первого до последнего уровня, сетка станет обычной.
Трейл сетки в таком режиме работает против направления сетки. Для примера, мы установили сетку в лонг, установив ордера, ожидая движения вверх. Но если цена пойдет против, сетка будет смещаться вниз, подтягивая уровни за ценой. И когда нисходящее движения закончится начнут исполняться ордера.
Если заданы настройки для установки стоп-ордера, то после исполнения уровня на открытие позиции будет установлен стоп ордер. Т.о. в таком режиме, если движени не подтвердится, то исполнится стоп-ордера, установленный на объем входа. Т.е. риск в таком режиме меньше чем в обычном, т.к. число исполненных ордерв на вход будет меньше.
Дополнительный модуль “ЗАКРЫВАТЬ УРОВНИ ОТ СРЕДНЕЙ”
- В этом режиме уровни закрытия будут устанавливаться от текущей средней цены позиции с заданным шагом. Данный режим доступен только если включен режим “Рассчитывать среднюю по активным уровням”. Данный режим недоступен для типа цены шага уровней “Currency”.
- Режим работы - Режимы работы расчёта числа уровней закрытия от средней. Возможные варианты:
- Manual - ручное указание числа уровней, которые будут закрывться от средней. Остальные (если их больше) будут иметь индивидуальное закрытие как в обычной сетке.
- Dynamic - в этом режиме число уровней закрытия от средей изменяется по мере исполнения ордеров входа. При этом последний исполненный уровень имеет индивидуальное закрытие. Для примера, исполилось два уровня открытия. Первый закрывается от средней, второй имеет свое закрытие. Т.к. от средней всего один уровень, то это пока обычная сетка. Испоняется третий ордер открытия. Первые два уровня формируют среднюю цену и закрываются от средней. Третий же закрывается индивидуально. Исполняется четвёртый ордер входа - три образуют среднюю, четвёртый - индивидуальное закрытие. И т.д.
- Число уровней закрывать по средней - Число уровней, которые будут закрываться по средней в режиме “Manual”. Остальные будут работать в обычном режиме. Если задано 0, то все уровни.
- Число динамических уровней - режиме “Dynamic”. Для примера, общее число уровней - 5, число динамических уровней - 2. Т.о. после открытия всех уровней, три уровня будут закрываться по средней позиции, а два будут иметь свои закрытия. По умолчанию 1.
- Число уровней для безубытка - Число уровней, после которого перевести закрытие в безубыток. Для примера, общее число уровней - 5, уровень безубытка - 3. Т.о. после открытия 3-его уровня, закрытие для уровней по средней будет установлено по средней позиции. Если задано 0, то не используется.
- Учитывать комиссию для безубытка - При расчёте урованя безубытка можно добавить комиссию закрытия (и открытия) позиции.
- Учитывать накопл. прибыль для безубытка - При расчёте уровня безубытка можно вычесть накопленную прибыль (значение больше 0) текущей сетки.
- Действия если хуже первого уровня - По мере срабатывания большего числа уровней открытия средняя будет идти вслед за ценой. В итоге она может опуститься за первый уровень. Когда произойдет закрытие всех уровней по средней, установка ордера на первый уровень приведет к его исполнению по рынку. В этом случае можно выполнить действия:
- OFF - ничего не делать, ордера исполнятся по ситуации
- Reopen on DIR - закрыть текущую и установить новую сетку от текущей цены в том же направлении.
- Reopen opp DIR - закрыть текущую и установить новую сетку от текущей цены в противоположном направлении.
- Shift NET - сдвинуть текущую сетку до текущей цены с учётом настроек отступа.
- Close NET - снять текущую сетку
- Уровень закрытия уровней от средней - в единицах шага закрытия уровней. Если не задан, то рассчитывается также как и для обычных уровней. Для примера, есть сетка из 10 уровней. Пять из них закрываются от средней. Остальные - обычные уровни. Задача разделить шаги закрытия, от средней 2%, а остальные уровни по 0.5%. Задаём уровень закрытия от средней как 2%. Шаг закрытия уровней сетки 0.5%. Т.о. позиция будет разделена на две части - уровни от средней с большим профитам и уровни с малым шагом.
В обычном режиме для каждого уровня свой уровень закрытия. В режиме закрытия по средней, рассчитывается средняя по открытым уровням и от этой средней устанавливаются уровни закрытия на один и тот же уровень. Т.о. по мере исполнения ордеролв на вход, будет изменяться средняя позиции и выход будет смещаться вместе с ней.
В данном режиме выход из позиции будет происходить быстрее, т.к. выход будет на уровне шага закрытия от средней, который будет выполнять роль единого тейк-профита позиции.
Для примера: Есть 4-е уровня на покупку. При исполнении первого уровня будет установлен ордер на выход 1. При исполнении 2-ого уровня будет установлено два уровня 1+2 на новой средней позции первого и второго уровней. И т.д. пока не будут исполнены все уровня, закрывающиеся от средней.
Если указать число уровней закрытия от средней больше нуля, то только это количество уровней будет закрываться от средней, остальные будут работать в обычном режиме. Например, указано 3 уровня для закрытия по средней, всего уровней 5. Уровни 4, 5 будут закрываться индивидуально, а первые три уровня от средней.
Дополнительный модуль “АВТОМАТИЧЕСКОЕ ЗАКРЫТИЕ УРОВНЕЙ”
При активации режима происходит проверка числа открытых уровней по мере исполнения уровней вглубь сетки. Если их число больше указанного, то происходит блокировка вышестоящих уровней с одновременным закрытием уровней по рынку. При возврате цены к точке восстановления происходит восстановление активности уровня. Т.о. при непрерывном движении цены вглубь сетки и исполнении уровней входа, будет происходит закрытие уровней с убытоком, фиксируя его, тем самым снижая общий текущий убыток если цена продолжит свое движение.
- Число открытых уровней
- Точка восстановления активности уровня (%) - Точка восстановления закрытых уровней. За основу берется цена открытия уровня - это значение 0%. Цена закрытия урованя - это 100%. Т.е. если необходимо, чтобы уровень восстановился при достижении него самого (цены открытия), то указываем 0. Если же необходимо, чтобы уровень восстановился при достижении него цены закрытия, то указываем 100. При указании промежуточных значений уровень будет активирован, если цена дойдет до данной точкит между ценой открытия и закрытия уровня, например, середины - 50%. Также можно указать значения больше 100%, это будет означать, что активация будет дальше чем цена закрытия.
Дополнительный модуль “СОХРАНЕНИЕ СТАТИСТИКИ РАБОТЫ СЕТКИ”
- Сохранять статистику работы сетки в файл - Если включено, то будет создан файл статистики работы сетки. После закрытия сетки будет сохранена строка, отражающая работу сетки. Также дополнительно будет сохранена информация по каждому уровню.
- Команада “Открыть статистику” - открывает окно статистики работы сетки по инструменту:
При закрытии текущей сетки происходит запись в csv файл её работы. Также каждого уровня. В окне статистики сетки можно группировать уровни по дням, месяцам. Также выводится общий итог работы.
НАСТРОЙКИ УСТАНОВКИ СЕТКИ
ПОДРАЗДЕЛ РЕЖИМЫ
- Режим: “Только закрытие” - При активации данного режима сетка переходит в режим закрытия. Все неисполненные ордера на вход снимаются. После исполнения всех ордеров на выход строка останавливается.
ПОДРАЗДЕЛ ОБЩИЕ
- Снимать ордера при остановке - При остановке снимать все неисполненные ордера сетки.
- Спрашивать подтверждение при очистке сетки - Спрашивать подтверждение при очистке сетки
- Последовательное заполнение уровней - В этом режиме при начальном заполнении уровней заполняется только первый уровень. По мере исполнения уровней, добавляются остальные. В отличие от полного первоначального заполнения уровней, цена каждого нового уровня будет рассчитана исходя из реальной цены открытия исполненного уровня.
- Снимать авто-добавленные уровни - если заполнен параметр “Первоначальный торговый объем сетки” меньше полного торгового объема, автоматически добавляются скрытые уровни до полного объема. По мере исполнения уровней, добавленные активируются. Если цена уйдет обратно, то можно указать чтобы активированные уровни были сняты. Т.о. будут разблокированы денежные средства.
- Рассчитывать среднюю по активным уровням - Рассчитывать средний уровень позиции по активным уровням. Если включено, то средняя цена позиции рассчитывается по активным уровням. Для примера, открыты позиции на уровнях 1, 2 и 3. Закрыт уровень 3. Т.о. средняя цена будет рассчитана по уровням 1 и 2. Если выключено, то средняя цена позиции рассчитывается стандартным образом по принципу FIFO.
- Для стоп-лосса: Уровень как средняя цена позиции - Принимать заданный уровень открытия позиции как среднюю цену позиции при установке стоп-лосса. Если задано значение -1, то устанавливать стоп от рассчитанной средней цены позиции. Если задано значение больше и равное числу рассчитанных уровней, то стоп будет установлен от последнего уровня.
- Снимать уровни за стоп-ордером - При сдвиге стоп-ордера снимать ордера входа в позицию за стоп-ордером
- Не устанавливать стоп-ордер при активной сетке - Если есть активные лимитные ордера входа, то можно не устанавливать стоп-ордер, чтобы избежать активации стоп-ордера одновременно с ордерами входа при сильном движении цены.
- Возможность сдвига ордера на графике - Если включена возможность сдвига, и если пользователь сдвинул ордера на графике на новый ценовой уровень, то скрипт ждет его появления, прежде чем перевыставить новый ордер, если это требует алгоритм. Параметр ожидания задается через ТОРГОВЫЕ НАСТРОЙКИ:Ожидание при сдвиге ордера (сек.). Если возможность сдвига выключена, то ордер будет восстановлен алгоритмом сразу после его снятия, не ожидая появления нового ордера. Рекомендуется активировать данныую настройку только в случае реальной необходимости.
- Не искать заявки с комментарием - скрипт автоматически ищет установленные заявки. Заявки с комментарием, содержащим введенное значение, будут игнорироваться
- Не искать чужие заявки - Если данный режим выключен, то скрипт контролирует только свои заявки ступеней, с учетом введенного значения “Идентификатор скрипта”, который обязателен в этом режиме. В режиме “OFF” осуществляется поиск всех ордеров. Важно обеспечить уникальность параметра “Идентификатор скрипта”.
- Редактирование активной сетки - команда, открывающая окно редактирования активной сетки.
Примеры окон редактирования активной сетки:
В этом окне можно отредактировать количество, цены уровней, что приведет к перестановке ордера на уровне. В режиме динамической сетки задаются динамический уровни, а не конкретные цены. Также можно добавить новый уровень. Для нового уровня можно указать, что необходимо установить ордер закрытия, а не ордер открытия позиции. Например, уже есть открытая позиция и надо часть уровней указать как уровни закрытия. При добавлении нового уровня по цене в середине диапазона сетки, произойдет сортировка уровней при запуске. Если указать параметр remove (удалить уровень), то такой уровень будет удален. Важно: удалить можно уровень, на котором нет активного ордера закрытия позиции и нет частичного исполнения ордера открытия.
При первичном вызове окна настройки происходит поиск уже установленных ордеров и происходит предположительное заполнение сетки. Т.о. можно частично заполнить уровни по уже установленным ордерам (или оставшимся активными после прошлой сетки). Важно учитывать, что при заполении происходит автоматическое заполнение цен уровней в случае фиксированной сетки. Для динамической сетки или алгоритмического шага закрытия будут заполнены цены ордеров, а алгоритмические цены необходимо заполнить руками, т.к. при заполнении сетки еще не рассчитаны данные по динамическим алгоритмам.
- Очистить активную сетку - команда очищающая текущую активную сетку без снятия установленных ордеров.
- Команада “Сдвинуть активную сетку” - Положительные значения сдвигают вверх, отрицательные - вниз. Происходит сдвиг каждого уровня на рассчитанное значение дельты от цены (цены закрытия) этого уровня. Т.о. сдвиг в шагах цены, пунктах происходит равномерно для всех уровней. Сдвиг же в % будет от каждого уровня на рассчитанное значение от его цены. Выводит настройки:
-
Тип цены сдвига сетки - Возможные значения: * % (процент) - процент. * Steps – шаги цены инструмента. Целое число. Шаг цены инструмента определен его спецификацией. * Pips - пункты цены инструмента. Целое число. Пункт - это минимальное изменение цены валюте цены инструмента. Для примера, цена 90.61 - это 9061 пункт. Изменение 90.61-90.62 - это разница в один пункт. * PriceUnits - значение в единицах цены инструмента, например в рублях, usd, процентах для облигаций и т.д..
-
Дельта сдвига сетки - Положительные значения сдвигают вверх, отрицательные - вниз.
-
Команада “Заполнить уровни от открытой позиции” - Если открыта текущая позиция, то можно распределить открытый объем по уровням. Для каждой сделки отрытой позиции (редактируется командой “Настроить позицию”) будут построены уровни закрытия в соответствии с настойками.Если доступен режим “СТУПЕНИ ВХОДА. ВЫКУП”, то распределение будет по аналогии с первой рыночной сделкой. Весь открытый объем принимается за объем выкупа.
-
Команада “Настроить дополнительное окно сетки” - Выводит настройки:
- Отдельное окно активной сетки” - Возможные значения:
- ON
- OFF
- Направление сортировки уровней в доп. окне - Возможные значения:
- Автоматически. Для сетки на покупку - по убыванию, для продажи - по возрастанию.
- По возрастанию.
- По убыванию.
- Цвет сетки на покупку (R;G;B)
- Цвет исполненных уровней на покупку (R;G;B)
- Цвет сетки на продажу (R;G;B)
- Цвет исполненных уровней на продажу (R;G;B)
- Цвет неактивных уровней (R;G;B)
ПОДРАЗДЕЛ ПАРАМЕТРЫ
- Вид сетки уровней. Возможные значения:
- Fix net - уровни с фиксированным шагом.
- Distribution - уровни с расчетным шагом по заданной глубине и числу шагов.
- Manual - преднастроенные уровни.
- Настроить вручную ступени входа - Можно указать уровни входа в единицах, указанных в настройке “Тип цены шага уровней”. Пример: Если необходимо указать два уровня в 75 и 100 шагов цены, то настройка “Тип цены шага уровней” имеет значение “Steps”, а в строке вводим 75 в колонке “level”. Для второй строки вводим 100. В колонке “qty” указывается объем, который относится к этому уровню. Если тип шага уровней это “% dynamic range”, то значения - это проценты ширины динамического канала.
Пример окна настроек уровней вручную в режиме “Manual”.
Окно настроек уровней вручную в режиме Тип цены шага уровней равный Currency.
В этом случае уровни - это конкретно заданная цена в валюте цены инструмента.
- Тип ордера входа в позицию. Возможные значения:
- Limit - вариант установки ордера с использованием заявки типа “Лимитный ордер”
- Hidden - вариант установки ордера без физического выставления заявки на серверах брокера. По достижению уровня будет осуществлена сделка по рынку.
- Торговый объем шага сетки - Размер(объем) сделки на уровнях сетки
- Тип цены шага уровней. Возможные значения:
- % (процент) - процент
- Steps – шаги цены инструмента
- Pips - пункты цены инструмента
- Currency - уровень задается в валюте цены инструмента, т.е. сама цена. Вариант “Currency” работает только для режима “Вид сетки уровней” = “Manual”
- % dynamic range - процент ширины динамического канала. Если выбран режим Динамическая сетка.
- Шаг сетки - Размер шага уровней в указанных единицах цены инструмента.
- Коэфф. шага сетки - Коэффициент шага уровней. Каждый следующий шаг равен прошлому с учетом коэффициента. Для примера. Шаг уровней = 100. Коэффициент = 1.1. Первый шаг =100. Второй = 100 (первый) * 1.1 = 110. Третий = 110 (второй) * 1.1 = 121. И т.д. Коэффициент может быть < 1, тогда будет происходит сжатие размера шага.
- Глубина сетки - Если задано 0, то глубина не ограничена. Для режима Вид сетки уровней = “Distribution” параметр является обязательным.
- Число шагов сетки - Данный параметр используется для для режима Вид сетки уровней = “Distribution”. Исходя из значения будет рассчитан шаг между уровнями.
- Цена начала построения сетки - Данная настройка используется если “Первый торговый объем по алгоритму” задан 0 и цена активации не задана алгоритмом входа (если подключен алгоритмический модуль входа в позицию). В этом случае цену начала построения сетки можно задать вручную. Если не задана цена алгоритма или не подключен алгоритмический модуль входа в позицию, то используется цена последней сделки.
- Отступ начала построения сетки - Данная настройка используется если “Первый торговый объем по алгоритму” задан 0 и “Цена начала построения сетки” задана 0 (если подключен алгоритмический модуль входа в позицию). В этом случае первый уровень будет задан от цены активации (начала построения) с учетом отступа.
- Коэфф. торгового объема - Коэффициент торгового объема сетки. Каждый следующий равен прошлому с учетом коэффициента. Для примера. Торговый объем сетки = 1. Коэффициент = 2. Первый торговый объем сетки = 1. Второй = 1 (первый) * 2 = 2. Третий = 2 (второй) * 2 = 2. И т.д. Т.е. стратегия мартингейла с заданным коэффициентом. Коэффициент может быть < 1, тогда будет происходит уменьшение объема. Важно, объем будет округлять до 1, если расчетная величина станет меньше 1.
- Поддерживать размер шага уровней при сдвиге ордера - При сдвиге ордера открытия уровня изменятся шаг между уровнями открытия. При включенной настройке сдвиг ордера открытия приведет к одновременному сдвигу следующих уровней открытия. Т.о. шаг уровней будет постоянным. Если настройка выключена, то шаг открытия следующего уровня изменится.
- Команада “Настроить ограничения сетки” - . Выводит настройки:
- Ограничивать сетку сверху - В этом режиме не строятся новые уровни (сдвигаются при трейле) выше заданной величины в валюте цены инструмента. Контролируется цена открытия уровня.
- Верхняя граница -
- Ограничивать сетку снизу - В этом режиме не строятся новые уровни (сдвигаются при трейле) ниже заданной величины в валюте цены инструмента. Контролируется цена открытия уровня.
- Нижняя граница -
- Ограничивать прибыль сетки - В этом режиме если текущая прибыль сетки достигла заданной величины, то происходит её закрытие.
- Предел прибыли -
- Ограничивать убыток сетки - В этом режиме если текущая убыток сетки достиг заданной величины, то происходит её закрытие.
- Предел убытка -
- Ограничивать по времени - В этом режиме если время активности сетки превышает заданное ограничение, то происходит её закрытие.
- Предел времени (мин.) -
- Ограничивать по числу сделок - В этом режиме если число сделок сетки превышает заданное ограничение, то происходит её закрытие.
- Предел числа сделок -
- Ограничивать по числу непрерывных сделок открытия - В этом режиме если число непрерывных сделок по открытию уровней сетки превышает заданное ограничение, то происходит её закрытие.
- Предел непрерывного числа сделок открытия -
- Ограничивать по времени после исполнения сетки - В этом режиме если время активности сетки после открытия всех уровней превышает заданное ограничение, то происходит её закрытие.
- Предел времени после исполнения сетки (мин.) -
- Включить безусловное снятие сетки - По достижению заданного уровня будет снята сетка (закрыта позиция). Уровень отсчитывается от первого уровня в момент первоначальной активации сетки.
- Тип цены уровня безусловного снятия сетки - Возможные значения:
- % (процент) - процент.
- Steps – шаги цены инструмента. Целое число. Шаг цены инструмента определен его спецификацией.
- Pips - пункты цены инструмента. Целое число. Пункт - это минимальное изменение цены валюте цены инструмента. Для примера, цена 90.61 - это 9061 пункт. Изменение 90.61-90.62 - это разница в один пункт.
- Currency - уровень задается в валюте цены инструмента, т.е. сама цена.
- PriceUnits - значение в единицах цены инструмента, например в рублях, usd, процентах для облигаций и т.д..
- Уровень безусловного снятия сетки -
- Закрывать позицию по достижению уровня - Если выключено закрытие позиции, то по достижению уровня безусловного снятия сетки, будет снята активная сетка, при этом позиция (если открыта) останется.
ПОДРАЗДЕЛ ЗАКРЫТИЕ
- Тип ордера закрытия уровней. Возможные значения:
- Limit - вариант установки ордера с использованием заявки типа “Лимитный ордер”
- Hidden - вариант установки ордера без физического выставления заявки на серверах брокера
- Тип цены закрытия уровней. Возможные значения:
- % (процент) - процент
- Steps – шаги цены инструмента
- Pips - пункты цены инструмента
- Currency - уровень задается в валюте цены инструмента, т.е. сама цена. Вариант “Currency” работает только для режима “Вид сетки уровней” = “Manual”
- % dynamic range - процент ширины динамического канала. Если выбран режим Динамическая сетка.
- Шаг сетки закрытия позиции - Размер шага закрытия позиции в указанных единицах цены инструмента. Если не задан, то ордер устанавливается на вышестоящий уровень (т.е. используется основной шаг сетки).
- Поддерживать размер шага закрытия при сдвиге ордера - при сдвиге ордера закрытия (открытия) уровня изменятся шаг между уровнем открытия и закрытия. При включенной настройке сдвиг ордера закрытия приведет к одновременному сдвигу и уровня открытия (закрытия). Т.о. шаг закрытия будет постоянным. Если настройка выключена, то будет изменен шаг закрытия, уровень открытия останется неизменным.
- Макс. число активных уровней закрытия - По мере установки ордеров закрытия, для уровней будет устанавливаться признак блокировки C. При этом уже установленныве ордера не снимаются. Если будут сняты все ордера (например, в клиринг, окончание торгового дня), то для уменьшения числа транзакций при восстановлении ордеров можно устанавливать ордера закрытия по мере их исполнения. Будет установлено не более заданного числа уровней. Остальные будут устанавливаться по мере исполнения ордеров закрытия уровней. Значение 0 - нет ограничений.
- Число итераций закрытия уровней - Если установлен лимит, то ограничивается число циклов установки ордеров входа в позицию. По достижению лимита уровень деактивируется. Например, установив значение = 1, будут установлены ордера открытия позиции 1 раз. После их закрытия скрипт остановится. Т.о. реализуется режим, только закрытия позиции. Если лимит > 1, то после закрытия уровня, зеркальный ордер открытия будет установлен еще раз. И так, пока не будет достигнут лимит. Значение 0 - не ограничивать. Т.е. уровни будут восстанавливаться без ограничения.
Режим Вида сетки уровней “Fix net” рассчитывает уровни с заданным шагом в параметре Шаг сетки с учетом Коэфф. шага сетки. Т.е. будут установлены ордера, пока не будет достигнут заданный объем входа в позицию или не будет достигнута глубина сетки, если она задана.
Режим Вида сетки уровней “Distribution” рассчитывает уровни от глубины и числа шагов сетки. Т.е. шаг сетки - это частное от деления глубины на число шагов. Если задан Коэфф. шага сетки, то расчет производится по формуле суммы геометрической последовательности. Рассчитанный шаг округляется по правилам округления. После расчета шага производится расчет уровней сетки пока не будет достигнут торговый объем. В этом режиме важно соотносить число шагов сетки и торговый объем, т.к. может возникнуть ситуация, когда объем будет выбран раньше, чем достигнуто заданное число уровней.
Раздел “СТУПЕНИ ВХОДА. ПРОФИТ-ТРЕЙЛ” содержит настройки:
В данном режиме контролируется уровень общей прибыли которая складывается из прибыли зафиксированных уровней и текущей прибыли открытых уровней. Если сформирован уровень отсечки прибыли, то при снижении прибыли ниже уровня отсечки, происходит закрытие текущей позиции и снятие активной сетки.
- Включить профит-трейл - включить режим трейла профита.
- Контрольное значение уровня прибыли - Контрольное значение уровня прибыли (в валюте цены). Как только уровень прибыли превысит контрольное значение, запускается таймер длительностью “Интервал контроля уровня прибыли” в течении которого контролируется текущий уровень прибыли относительно контрольного.
- Интервал контроля уровня прибыли (мин.) - Временной интервал в течении, которого прибыль должна быть равно или больше контрольного значения. Если по окончании таймера уровень прибыли остается выше текущего контрольного значения, то уровень отсечки смещается на текущий уровень контроля.
- Шаг трейла прибыли - Шаг трейла прибыли (в валюте цены). Если уровень прибыли превысил контрольное значения + шаг трейла, то контрольное значение поднимается на шаг трейла и устанавливается уровень отсечки на контрольное значение прибыли.
Пример: Задано контрольное значение прибыли 2000 руб. Интервал контроля 10 минут. Шаг прибыли 500 рублей. Как только прибыль достигнет 2000 рублей активируется трейл и запускается таймер. Если в течении таймера прибыли так и останется выше 2000, то установится уровень фиксации прибыли 2000 рублей. Либо, если уровень прибыли поднимется 2000 + 500 = 2500 рублей, то установится уровень фиксации прибыли 2000 рублей. И так далее 3000 -> 2500, 3500 -> 3000 … Т.о. достижение очередного уровня прибыли сдвигает уровень фиксации. Либо, если прибыль держится выше текущего контрольного уровня прибыли дольше заданного временного интервал, то уровень фиксации также устанавливается на текущий контрольный уровень.
Раздел “СТУПЕНИ ВХОДА. ВЫКУП” содержит настройки:
В данном режиме по команде “Установить сетку уровней” будет открыта позиция по рынку (или по конкретной цене) в объеме, заданном в параметре “Торговый объем шага объема выкупа”. На этот объем будет установлена сетка ордеров закрытия позиции, а на остаток объема будет установлена основная сетка уровней. Т.о. будет сразу осуществлен вход на объем выкупа и установлены ордера выхода, а на остаток установлена основная сетка.
- Включить выкуп - Включить реализацию первого торгового объема выкупа.
- Первый торговый объем выкупа - Размер(объем) первой сделки по рынку (или по конкретной цене). Общий объем входа задается в параметре ТОРГОВЫЕ НАСТРОЙКИ: Торговый объем. Объем приходящийся на стеку уровней - это разница между общим объемом и объемом первой сделки по рынку. Если задано 0, то весь объем будет набран ступеням входа, т.е. сигнал - это установка сетки от цены активации. От средней по рынку будет построена сетка.
- Тип цены шага уровней выкупа - Возможные значения: * % (процент) - процент. * Steps – шаги цены инструмента. Целое число. Шаг цены инструмента определен его спецификацией. * Pips - пункты цены инструмента. Целое число. Пункт - это минимальное изменение цены валюте цены инструмента. Для примера, цена 90.61 - это 9061 пункт. Изменение 90.61-90.62 - это разница в один пункт. * Currency - уровень задается в валюте цены инструмента, т.е. сама цена. Вариант “Currency” работает только для режима “Вид сетки уровней” = “Manual”. * PriceUnits - значение в единицах цены инструмента, например в рублях, usd, процентах для облигаций и т.д.. * % dynamic range - процент ширины динамического канала.
- Шаг сетки выкупа - Размер шага уровней выкупа в указанных единицах цены инструмента. Данный шаг позволяет задать другую плотность для уровней выкупа.
- Тип цены закрытия уровней выкупа. Возможные значения:
- % (процент) - процент
- Steps – шаги цены инструмента
- Pips - пункты цены инструмента
- % dynamic range - процент ширины динамического канала. Если выбран режим Динамическая сетка.
- Шаг сетки закрытия выкупа - Размер шага уровней закрытия выкупа в указанных единицах цены инструмента. Если не задан, то берется шаг закрытия сетки или основной шаг сетки, что задано. Для режима “Вид сетки уровней” = “Manual” данный параметр обязательный.
- Торговый объем шага объема выкупа - Размер(объем) сделки на уровнях сетки для выкупленного объема. Если не задан, то берется размер “Торговый объем шага сетки”. Для режима “Вид сетки уровней” = “Manual” данный параметр обязательный. Важно: Объем закрытия шага сетки выкупа должен быть кратен объему шагу сетки.
- Цена сделки выкупа - Можно задать конкретные цены уровня выкупа. Будет установлен лимитный ордер, по исполнению оного будет сформирована сетка.
Раздел “СТУПЕНИ ВХОДА. ТРЕЙЛ” содержит настройки:
Данный режим позволяет сдвигать сетку уровней за “убегающей” ценой, т.е. сдвигать сетку по направлению движения цены.
- Трейлить ордера ступеней - Включить трейлинг(сдвиг) уровней. При активации режима происходит контроль движения цены. Если цена уходит от сетки, то ордера и уровни будут сдвигаться вслед за ценой.
- Режим ON_DIR - трейл только по направлению сетки.
- Режим BOTH_DIR - трейл в обоих направлениях. Когда цена уходит по направлению, ордера сдвигаются вслед за ценой. Если цена прошла всю сетку и уходит дальше, то сетка будет сдвигаться вслед за ценой, в убыток. Данный режим позволит закрыть уровни с убытком, но при этом сетка будет рядом с ценой и начнет работать, позволяя компенсировать убыток, в отличии от ситуации если бы она осталась на месте. В этом режиме ордера закрытия сдвигаются вне зависимости от настройки “Сдвигать ордера закрытия”.
- Сдвигать ордера закрытия - Если настройки трейла таковы, что он активируется до закрытия всех уровней, то можно сдвигать активные ордера закрытия, вместе с ордерами открытия.
- Тип цены шага трейлинга уровней. Возможные значения:
- % (процент) - процент
- Steps – шаги цены инструмента
- Pips - пункты цены инструмента
- Активировать трейл после - Активация трейлинга ордеров ступеней в указанных единицах. Если указан данный параметр, то активация трейлинга произойдет только если цена прошла указанный интервал в сторону сделки.
- Интервал проверки цены (сек.) - Данный параметр позволяет установить период проверки текущей цены инструмента. Если установлено значение 0 (значение по умолчанию), то цена будет контролироваться постоянно, при любом движении цены будет происходить контроль трейлинга. Если установить значение отличное от 0, то цена инструмента будет контролироваться с указанной периодичностью. Такая настройка позволит исключить из контроля трейлинга движения цены, прошедшие между проверками. Это в каких-то случаях позволит исключить необоснованные сдвиги ордеров ступеней при резких возвратных движениях цены, которые в обычном режиме привели бы к сдвигу ордера и неблагоприятному открытию позиции при возвратном движении цены.
- Шаг трейла - Шаг трейлинга ордеров ступеней в указанных единицах. По мере движения цены ордера будет двигаться за ценой. Если цена прошла в сторону открытой сетки больше и равной шагу трейлинга, то ордера сдвинутся. Т.е. если необходимо обеспечить постоянный сдвиг ордеров за ценой, необходимо установить размер шага трейлинга = 1 шаг (пункт). Если шаг больше 1, то цена должна пройти данный интервал, чтобы ордера были сдвинуты. Это позволит уменьшить число транзакций по сдвигу ордеров.
- Число уровней трейла - Число уровней от начала, которые будут сдвигаться. Можно указать число уровней меньше чем общее число, т.о. будут сдвигаться только ближайшие уровни, а остальные останутся на месте. Такое поведение позволит снизить риск при резком двухстороннем движении. Значение 0 - это сдвиге всех уровней.
Режим недоступен для активированного режима Динамическая сетка.
Раздел “СТУПЕНИ ВХОДА. ОТЛОЖЕННАЯ АКТИВАЦИЯ” содержит настройки:
Данный режим позволяет активировать сетку по выполнению условия достижения ценового уровня. В данном режиме, в отличии от алгоритмов активации, после выполнения условия оно выключается, т.е. выполняется однократно.
- Отложенная активация - Выбор направления активации сетки. Возможные значения:
- ‘OFF’ - Выключено.
- ‘BUY’ - Активация сетки на покупку
- ‘SELL’ - Активация сетки на продажу
- Условие входа - выбор условия активации условия. Возможные значения:
- ”>=”
- ”<=”
- Уровень входа - уровень цены активации сетки
Дополнительный модуль “ОТЛОЖЕННОЕ ИСПОЛНЕНИЕ”
-
В данном режиме исполнение ордера наступает не в момент достижения ценой уровня ордера, а после отката на заданную величину. Данный режим доступен только для вида ордеров Hidden.
Активация ордера происходит после того как цена пройдет расстояние от ордера на размер отступа. После активации исполнение ордера произойдет когда цена пройдет от последнего экстремума размер отступа. Для примера, уровень на покупку 100 рублей. Размер отступа 5 рублей. Т.о. активация ордера произойдет когда цена пройдет 100 руб. и достигнет 105 руб. Далее цена достигает 107 рублей. Исполнение же ордера произойдет когда цена опустится на размер отступа от экстремума 107 руб., т.е. до 102 руб. Т.о. ордер не исполняется сразу. Если цена двигается без откатов и активирует несколько уровней, то в момент отката исполняются все накопленные уровни. Данный режим работает как для ордеров на открытие позиции, так и для ордеров на закрытие позиции.
- Тип цены шага сдвига - Тип цены закрытия (профита) уровней выкупа. Возможные значения:
- % (процент) - процент.
- Steps – шаги цены инструмента.
- Pips - пункты цены инструмента.
- Отступ для открытия позиции - размер отсупа для ордеров открытия позиции
- Отступ для закрытия позиции - размер отсупа для ордеров закрытия позиции
Цена опускается за уровень 1 на укзанный шаг открытия, в этот момент активируется уровень 1 и начинается отслеживание “отката” цена. Как только цена достигает уровня “отката”, рассчитанного как минимум цены + размер отступа, происходит исполнение активированных ордеров. Заеркально происходит активация-исполнение ордеров закрытия: Цена поднимается за уровень закртыия 1 на укзанный шаг закрытия, в этот момент активируется уровень закрытия 1 и начинается отслеживание “отката” цена. Как только цена достигает уровня “отката”, рассчитанного как максимуцм цены - размер отступа, происходит исполнение активированных ордеров закрытия.
Если цена двигается без “откатов”, то могут одновременно активироваться несколько ордеров. В омент “отката” на указанный шаг, исполнятся все активированные ордера. Т.о. цена исполнения одера может быть заметно ниже-выше по сравнению с физическим лимитным ордером на уровне.
Раздел “НАСТРОЙКИ СТОПА” содержит настройки:
- Тип стоп-лосса. Возможные значения:
- Stop - вариант установки стоп-лосса без указания информации по тейк-профиту
- Hidden - вариант установки стоп-лосса без физического выставления заявки на серверах брокера
- None - без установки стоп-лосса
- Тип цены стоп-лосса. Возможные значения:
- % (процент) - процент
- Steps – шаги цены инструмента
- Pips - пункты цены инструмента
- RUR - рубли. Здесь и далее имеется ввиду сумма в рублях относительно позиции по инструменту. Допустим 100 рублей на всю позицию.
- Price - конкретная цена
- Стоп-лосс - значение стоп-лосса в указанных единицах. Данная настройка также выведена в главное окно скрипта, для быстрого изменения значения стоп-лосса без открытия окна настроек.
- Тип проскальзывания (отступа) стоп-лосса. Возможные значения:
- % (процент) - процент
- Steps – шаги цены инструмента
- Pips - пункты цены инструмента
- Проскальзывание стопа в указанных единицах цены инструмента после активации стоп-лосса.
- Дата действия заявок типа стоп. Возможные значения:
- GTC - до истечения срока жизни инструмента (по факту 30 дней)
- Today - сегодня
- Конкретная дата
- Не искать заявки с комментарием - в процессе работы скрипт ищет установленные стоп-ордера. Если стоп-ордер будет содержать этот комментарий, то такой ордер не будет рассматриваться в процессе поиска.
- Не искать чужие заявки - Если данный режим выключен, то скрипт контролирует только свои стоп-ордера, с учетом введенного значения “Идентификатор скрипта”, который обязателен в этом режиме. В режиме “OFF” осуществляется поиск всех ордеров. Важно обеспечить уникальность параметра “Идентификатор скрипта”.
Раздел “КОНТРОЛЬ СДЕЛОК” содержит настройки
- Вариант расчёта комиссии - Комиссия за единицу или процент за объем. Возможные значения: * FIX - если для срочного рынка комиссия за контракт, то задается в валюте цены, допустим 0.5 рублей. * % - как процент за объем сделки.
- Лимит по прибыли по достижению которого алгоритм закроет позицию, снимет активную сетку и перейдет в режим ожидания.
- Лимит по убытку по достижению которого алгоритм закроет позицию, снимет активную сетку и перейдет в режим ожидания.
- Команда: Сбросить накопленные данные по прибыли.
- Автоочистка данных по прибыли - Режим автоматической очистки данных прибыли при наступлении нового торгового дня. Возможные значения:
- OFF - Выключено
- DAY - Каждый новый торговый день
- WEEK - Каждую новую торговую неделю
- Сохранять журнал сделок - если включено, то будут сохраняться все сделки в файлы для каждого инструмента.
- Открыть сделки - команда, открывающая окно закрытых сделок по инструменту.
Работа скрипта.
Для запуска торговли по инструменту необходимо изменить состояние строки по инструменту, исполнив команду в поле “state”. Таким же образом происходит остановка торговли по строке скрипта. Для удаления строки из скрипта необходимо выбрать команду “Del” в первой колонке […]. При изменении позиции по инструменту скрипт выведет значение в поле “Position”. Это происходит даже при остановленной торговле по инструменту.
Если строка находится в состоянии “Run” и введены настройки установки стоп-ордеров и сетки ордеров, то по команде установки сетки ордеров произойдет автоматическая постановка соответствующих ордеров.
Если происходит дальнейшее изменение позиции, то скрипт отслеживает изменение позиции и перевыставляет ордера в соответствии с новой позицией и новой средней ценой.
Если происходит закрытие позиции, то скрипт автоматически снимает установленные стоп ордера.
При подаче команды на установку сетки ордеров происходит анализ настроек. Если включен режим выкупа, устанавливается ордер на торговый объем выкупа (вход по рынку). При его исполнении происходит заполнение уровней сетки и установка ордеров сетки.
Также можно организовать несколько наборов позиции. Допустим, уже был набран объем и вся сетка выбрана. Изменив торговый объем в большую сторону, можно установить новую сетку на новых уровнях выполнив еще раз команду установки сетки. Либо, если цена ушла за последний уровень, то будет открыт еще один уровень, если доступен торговый объем. Т.е. можно открыть сетку на начальный объем, увеличить торговый объем, и он будет установлен только если цена опустится до последнего уровня.
Если для инструмента срочной секции в клиринг были сняты лимитные ордера входа в позицию, то после начала торговой сессии ордера будут восстановлены.
Для каждой строки можно контролировать сетку уровней через дополнительное окно сетки уровней:
В этом окне можно быстро выключить активность уровня, что приведет к снятию ордера.
В этом окне можно быстро выключить активность уровня, что приведет к снятию ордера.
Если выполнить команду “Калькулятор инструмента” из окна настроек или команду “+/-“ из основного окна, то откроется окно калькулятора по инструменту:
В этом окне можно рассчитать взаимные значения между введенными параметрами. Также выводится справочная информация по инструменту.
Если включен режим активации сетки алгоримом, то при запуске происходит расчет выбранного алгоритма и определяется текущий тренд. Уже сформированная позиция и сетка при это не изменяется. Только после смены тренда алгоритма происходит анализ текущей устанавленной сетки и позиции, и в зависимости от настроек просходит закрытие позиции и смена направления сетки. Т.о. алгоритм позволит автоматически реагировать на смену тренда и переворачивать (закрывать) сетку. Т.к. анализ направлений происходит только в момент смены тренда алгоритма, то допускается выполнять ручные команды по поставновке, снятию сетки.
Также скрипт поддерживает отправку сообщений в Телеграм, E-Mail, реализованную через библиотеку библиотеку