Скрипт SmartAlgoNet (Сеточник)
[
скрипт
lua
qlua
квик
quik
сеточник
SmartAlgoNet
]
Скрипт позволяет установить сетку ордеров на вход (выход) в позицию. Работает как с фондовой, так и на срочной, валютной секциях. Скрипт написан на языке LUA. Среда исполнения - торговый терминал Quik.
Видео настроек, работы скрипта
Основные возможности скрипта
Установка сетки ордеров на вход и выход. Динамическая сетка, алгоритмический шаг уровней. Стоп-лосс, контроль прибыли. Оповещения. Журнал сделок.
Скрипт отслеживает установленное соединение с сервером брокера, время торговой сессии по инструменту, исключая подачи команд на сервер брокера в периоды отсутствия соединения с сервером брокера, неторговое время (клиринг, окончание торговой сессии). После восстановления соединения с сервером брокера происходит проверка полученных пакетов (если включена такая настройка), дабы избежать запуска алгоритма на неполных данных. Скрипт корректно отрабатывает закрытие торгового терминал без остановки скрипта. После перезапуска терминала скрипт автоматически запустится, перейдет в период ожидания подключения к серверу брокера, загрузки всех информационных пакетов с сервера брокера.
Для каждого запуска формируется файл лога в каталоге /logs. Если в процессе работы скрипта возникнут ошибки, то будет дополнительно сформирован файл лога ошибок. Если ошибок будет слишком много, то скрипт принудительно остановится.
Основное окно скрипта.
Главное окно содержит колонки вывода и управления информацией:
- […] - Колонка управления строкой. Если строка пустая, то нажатие на данную команду выведет окно выбора инструмента. Если строка уже заполнена, то в данной колонке будет выведена команда удаления строки “Del”.
- state – в данной колонке отображается состояние строки торгуемого инструмента: “Run” - запущен; “Stop” - остановлен
- sec_code - в данной колонке отображается краткое наименование торгуемого инструмента
- ”+/-“ - в данной колонке отображается команда вызова окна калькулятора по торгуемому инструменту
- account - в данной колонке отображается наименование выбранного счета и субсчета (код клиента) на котором осуществляется торговля
- Set - в данной колонке отображается команда вызова окна настройки параметров торгуемого инструмента
- Price - в данной колонке отображается информация о цене последней сделки по инструменту
- Position - в данной колонке отображается текущей позиции по торгуемому инструменту на указанном счете/субсчете
- Profit - в данной колонке отображается текущая накопленная прибыль (по закрытым уровням) по инструменту. Также по двойному нажатию по колонке открывается окно сохраненных сделок, если включен журнал сделок.
- Close - команда на закрытие открытой позиции
- xNet- команда на закрытие установленной сетки
- bNet- команда на установку сетки на покупку
- sNet - команда на установку сетки на продажу
- SL TP - в данной колонке отображается текущая информация по установленному стоп-лоссу
-
virtual - включение выключение режима виртуальной торговли - robot_mode - выбор направления активации сетки алгоритмом
- ALGO - в данной колонке отображается информация алгоритма отслеживания прибыли
- trade_qty - торговый объем. Количество лот.
- initial_net_trade_qty - Первоначальный торговый объем сетки
- net_trade_start_price - цена начала построения сетки
- stop_loss - в данной колонке отображается информация по указанному параметру значения, устанавливаемого стоп-лосса. Здесь же можно быстро произвести изменения значения, не открывая окно настроек.
- Message - в данной колонке отображается последнее информационное сообщение по торгуемому инструменту.
Дополнительное окно состояния сетки содержит поля:
- active - Состояние уровня. Можно переключать состояние, тем самым временно снимать ордер открытия уровня.
- block - состояние автоматической блокировки уровня (вне начального торгового объема), ручной блокировки.
- sl_block - состояние блокировки уровня за стоп-ордером.
- dir - направление текущего уровня.
- qty - количество.
- price - цена открытия уровня.
- dyn_open - динамический уровень открытия (если выбран режим динамической сетки).
- o_state - состояние ордера открытия.
- close - цена закрытия уровня.
- delta - дельта в пунктах между ценой открытия и закрытия
- dyn_close - динамический уровень закрытия (если выбран режим динамической сетки).
- close_type - текущий тип шага закрытия уровня
- close_step - значение шага закрытия уровня
- c_count - число итераций закрытия уровня.
- profit - накопленный профит на уровне.
Окно настроек скрипта.
Для настройки торговых параметров по инструменту необходимо выполнить команду “[…]” в поле “Set”. В результате будет показана форма настроек.
Если включить настройку отображения окна настроек с закладками (параметр WINDOW_TABS = 1 в файле ), то окно будет показано в таком виде:
Большинство параметров содержат описание. Его можно вызвать по кнопке “?”.
Раздел “ОБЩИЕ НАСТРОЙКИ” содержит настройки:
- Идентификатор скрипта - комментарий, добавляемый к транзакциям. По нему можно будет определить ордера и сделки, совершенные скриптом. Идентификатор должен быть уникальным среди всех скриптов и строк скрипта. При этом необходимо обеспечить уникальность “по вхождению”. Для примера идентификаторы str и str1 не уникальные, т.к. первый входит во второй. А str0 и str1 уже уникальные. Не допускается использовать символы ( ) . % + - * ? [ ^ $
- Запустить при запуске - автоматический запуск строк скрипта при запуске.
- Время автозапуска - конкретное время для автозапуска. Указывается как строка вида ЧЧ:ММ:СС. Либо ЧЧ:ММ. Если указано, то настройка “Запустить при автозапуске” не работает.
- Время автоостановки - время остановки сроки скрипта. Указывается как строка вида ЧЧ:ММ:СС. Либо ЧЧ:ММ.
-
Закрывать позицию снимать сетку при автоостановке - Заменять инструмент на следующий за указанное число дней до экспирации. Важно: происходит только замена инструмента в строке скрипта. Позиция и уже выставленные ордера при этом не затрагиваются.
- Отправлять сообщения в Телеграм.
- Отправлять сообщения E-Mail.
- Дублировать сообщения в Терминал Квик - Все сообщения отображаются в списке сообщений строки. При включении настройки будет выводиться стандартное окно сообщений терминала.
- Команада “Настроить отправку сообщений” - настроить виды сообщений для отправки в Телеграм, E-Mail.
-
Авто запуск остановка - Авто запуск остановка. - Состояние соединения - Состояние соединения.
- Состояние торговой сессии - Состояние торговой сессии.
- Изменение позиции - Изменение позиции.
- Алгоритмическая активация сетки ордеров - Алгоритмическая активация сетки ордеров.
- Состояние уровня сетки ордеров - Состояние уровня сетки ордеров.
- Отложенная активация сетки ордеров - Отложенная активация сетки ордеров.
- Состояние стоп-профит ордера - Состояние стоп-профит ордера.
- Контроль риск параметров - Контроль риск параметров.
-
- Калькулятор инструмента - команда открытия окна калькулятора по инструменту.
- Команда “Настроить позицию” - Настроить позицию: Необходимо заполнить (отредактировать) уровни входа текущей позиции. Это может понадобится в тех случаях, когда скрипт не смог корректно рассчитать средную цену входа текущей позиции.
- Идентификатор графика куда будут выводиться метки сделок в виртуальном режиме работы. Также метки скрытых стоп-ордеров. Задается в разделе “Дополнительно” свойств цены графика.
- Выводить метку позиции - если заполнен Идентификатор графика, то можно вывести метку средней цены позиции.
Окно формы редактирования позиции:
Открытая позиция - это одна или несколько сделок в указанных количестве и цене. Исходя из введенных данных рассчитывается среднняя, объем позиции. В процессе работы данные о позиции рассчитываются автоматически, но т.к. скрипт не учитывает сделки, совершенные минуя команды скрипта (т.е. руками через терминал, другими скриптами), то может возникнуть ситуация когда текущая реальная позиция не соответствует той, что помнит скрипт. Или это возможно, когда скрипт был запущен когда позиция уже была сформирована, а сделки (или их часть) отстутствуют в терминале. Допустим, сделки были несколько торговых сессий назад.
Раздел “ТОРГОВЫЕ НАСТРОЙКИ” содержит настройки:
- ВИРУТАЛЬНАЯ ТОРГОВЛЯ - режим эмуляции торговли. В этом режиме все команды из основного окна скрипта не будут приводить к совершению реальных сделок. Вместо этого сделки будут совершаться “в памяти”. Также будут выводиться метки совершенных сделок на график, если заполнен параметр “Идентификатор графика”. Стоп ордера также будут скрытыми. Этот режим будет полезен для проверки торговых идей в условиях максимально приближенных к реальным.
- РЕЖИМ РОБОТА. Выбор направления активации сетки алгоритмом. Возможные значения:
-
ЛОНГ ШОРТ - ЛОНГ
- ШОРТ
-
- Торговый объем - полный торговый размер(объем) сетки. Данная настройка также выведена в главное окно скрипта, для быстрого изменения значения. Данный параметр можно изменять в большую сторону уже при установленной сетки. Уровни будут установливаться по мере исполнения уровней сетки.
- Первоначальный торговый объем сетки - торговый объем первоначального построения сетки. При активации сетки будут сразу установены уровни на этот объем. Остаток до полного торгового объема будет установлен по мере исполнения уровней сетки. Если задно 0, то не учитывается и сетка сразу устанавливается на полный торговый объем. Т.о. часть уровней будут активны, а остальные будут заблокированы. По мере исполнения уровней они будут разблокироваться.
- Отступ заявки по рынку - при подаче заявки по рынку необходимо указать цену, сдвинутую на число шагов от текущей, чтобы она гарантировано исполнилась. Данный параметр важен при торговле на срочном рынке, т.к. от цены заявки зависит расчет ГО. Также в моменты высокой волатильности данный параметр позволит отрегулировать отступ для рыночной заявки.
- Проверять лимиты - при подаче заявки проверить доступность денежных средств.
- Проверять лимиты цен - при подаче заявки проверить что цена заявки в допустимом диапазоне цен.
- Ожидание при сдвиге ордера (сек.) - если установлен стоп-ордер и пользователь сдвинул его на графике на новый ценовой уровень, то скрипт ждет его появления, прежде чем перевыставить новый ордер. Если пользователь просто случайно (по ошибке) снял его, то скрипт через указанной время выставит заново стоп ордер.
- Ожидание сигнала после ошибки (сек.) - Период ожидания (в сек.) обработки нового торгового сигнала в случае прошлой неудачной попытки. Если при обработке торгового сигнала была ошибка (недостаточно средств, отвергнутая заявка и т.д.), то следующий сигнал того же характера будет отработан по истечении периода ожидания
- Забыть открытую позицию - данная команда очищает позицию, запомненную скриптом (ВАЖНО. Не закрывает физически, а очищает из памяти). Например, Скрипт открыл позицию, выставил стоп-ордер. Далее скрипт был выключен, позиция была закрыта руками, сработал стоп при выключенном скрипте и т.д. Т.е. произошло изменение позиции, которое скрипт не контролировал, т.е. скрипт не узнает об этом. В этом случае можно выполнить команду и скрипт забудет информацию по ранее открытой позиции и можно запустить скрипт заново.
Раздел “СТУПЕНИ ВХОДА”
МОДУЛЬ АЛГОРИТМИЧЕСКАЯ АКТИВАЦИЯ
Команада “Выбрать алгоритмы Активиции|Разворота сетки” - Режим активации сетки по событиям алгоритма. Если выбраны алгоритмы, то сетка ордеров будет устанавливаться(разворачиваться) автоматически по рассчитанным сигналам. Сигнал - это когда все выбранные алгоритмы выдают сигнал одного направления. Например, выбраны алгоримты MACD, PSAR. Сигнал на ЛОНГ - это когда оба алгоритма переходят в направление ЛОНГ. Переход может быть не одновременным. В данном режиме также можно управлять сеткой ручными командами. Если текущее направление по алгоритмам ЛОНГ, можно открыть сетку в направлении ШОРТ ручной командой. Одновременно можно выбрать несколько алгоритмов:
Виды алгоритмов активации:
- “LEVEL” - Если очередной бар закрывается за указанным уровнем, то производится активация сетки.
- Уровень покупки - уровень для активации направления ЛОНГ
- Уровень продажи - уровень для активации направления ШОРТ
- “MA” - по скользящей средней
- для варианта алгоритма Тренд: Если значение MA на закрытом баре больше чем значение MA на предыдущем баре, то происходит активация сетки в ЛОНГ. Для ШОРТ наоборот.
- для варианта алгоритма Касание: не лучше средней. Если очередной бар закрывается за MA (Для ЛОНГ - вниз, для ШОРТ - вверх), то происходит активация сетки. Данный режим доступен для режимов торговли “ЛОНГ” и “ШОРТ”.
- “MACD” - если изменяется тренд по MACD последнего закрытого бара, то происходит активация сетки в направлении сигнала. Варианты расчета тренда:
- MACD - линия MACD пересекает 0
- Signal - линия Signal пересекает 0
- MACD-Signal - линия Signal пересекает MACD
- “MA_CROSS” - если происходит пересечение линий MA на последнем закрытом баре, то происходит активация сетки в направлении сигнала. Для варианта трех линий, сигнал - это когда формируется порядок линий 1>2>3 или 1<2<3.
- “PSAR” - если Parabolic SAR последнего закрытого бара меняет направление, то происходит активация сетки.
- “SAR” - если SAR (ATR) последнего закрытого бара меняет направление, то происходит активация сетки.
- “RSI” - если RSI последнего закрытого бара пересекает уровень, то происходит активация сетки.
- “STOCH” - если STOCH последнего закрытого бара пересекает уровень, то происходит активация сетки.
-
“JRSX” - если JRSX (Jurik Research Relative Strength Quality Index) последнего закрытого бара пересекает уровень, то происходит активация сетки.
Для всех осцилляторов вариант условия выбирается:
- Cross DW - Пересечение уровня вниз
- Cross UP - Пересечение уровня вверх
Если используется уровень подтверждения, то в таком случае сначала необходимо пересечение уровня подтверждения, а потом основного уровня. Для примера, направление ЛОНГ, перечение UP, уровень 30, уровень подтверждения 20. В таком случае необходимо, чтобы сначала бар закрылся за уровнем подтверждения 20, а потом уже пересек уровень 30. Т.о. будут отфильтрованы сигналы пересечения уровня 30, без пересечения уровня 20. Данный режим имеет смысл для сочетаний: Cross UP для ЛОНГ, Cross DW для ШОРТ.
- “BOL” - если бар закрывается за каналом Боллинджера, то происходит активация сетки.
- для варианта алгоритма Пробой: если бар закрывается за каналом, то происходит активация сетки в направлении пробития.
- для варианта алгоритма Отбой: если сначала бар закрывается за каналом, а потом бар закрывается внутри, то происходит активация сетки в направлении возврата в канал.
- “REG” - рассчитывается канал регрессии. Доступна Линейная, Парболическая, Кубическая регрессии.
- для варианта алгоритма Тренд: если регрессия меняет направление (по наклону), то происходит активация сетки.
- для варианта алгоритма Пробой: если бар закрывается за каналом, то происходит активация сетки в направлении пробития.
- для варианта алгоритма Отбой: если сначала бар закрывается за каналом, а потом бар закрывается внутри, то происходит активация сетки в направлении возврата в канал.
- “KREG” - рассчитывается Ядерная регрессия Надарая — Уотсона. Если бар закрывается за каналом Ядерной регрессии, то происходит активация сетки.
- для варианта алгоритма Тренд: если регрессия меняет направление (по наклону), то происходит активация сетки.
- для варианта алгоритма Пробой: если бар закрывается за каналом, то происходит активация сетки в направлении пробития.
- для варианта алгоритма Отбой: если сначала бар закрывается за каналом, а потом бар закрывается внутри, то происходит активация сетки в направлении возврата в канал.
- “KELTNER” - рассчитывается канал вокруг MA +/- k*ATR (канал Кельтнера). Если бар закрывается за каналом, то происходит активация сетки.
- для варианта алгоритма Пробой: если бар закрывается за каналом, то происходит активация сетки в направлении пробития.
- для варианта алгоритма Отбой: если сначала бар закрывается за каналом, а потом бар закрывается внутри, то происходит активация сетки в направлении возврата в канал.
- “MURR” - Рассчитываются уровни Мюррея. Если очередной бар закрывается за указанным уровнем, то производится активация сетки.
- Cross DW - Пересечение уровня вниз
- Cross UP - Пересечение уровня вверх
Использовать уровень подтверждения - Если используется уровень подтверждения, то в таком случае сначала необходимо пересечение уровня подтверждения, а потом основного уровня. Для примера, направление ЛОНГ, перечение UP, уровень 2/8, уровень подтверждения 1/8. В таком случае необходимо, чтобы сначала бар закрылся за уровнем подтверждения 1/8, а потом уже пересек уровень 2/8. Т.о. будут отфильтрованы сигналы пересечения уровня 2/8, без пересечения уровня 1/8. Данный режим имеет смысл для сочетаний: Cross UP для ЛОНГ, Cross DW для ШОРТ. Уровни Мюррея задаются как дробь -2/8, 0/8, 4/8, +2/8 и т.д. Т.е. как представление уровня.
- “Настроить алгоритм активации” - команда для открытия окна настроек выбранного алгоритма активации сетки
Пример окна настроек активации сетки алгоритмов 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 - включено. При смене направления всегда закрывать(переворачивать) позицию. Переворот осуществляется если новое направление разрешено в настройке “ТОРГОВЫЕ НАСТРОЙКИ:РЕЖИМ РОБОТА” и разрешен разворот сетки.
- В алгоритмах, где можно выбрать метод расчета 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
МОДУЛЬ ДИНАМИЧЕСКАЯ СЕТКА
Алгоритм динамических уровней сетки - В данном режиме происходит расчет канала по выбранному алгоритму. Его ширина и одна из границ (для ЛОНГА - нижняя, для ШОРТА - верхняя) - это база расчета. Для ЛОНГА уровень задается как, например, 30% (значение не ограничено, можно вводить и отрицательные значения и значения больше 100) ширины от нижней границы. Т.о. по мере изменения канала будут смещаться ордера и уровни на новую расчетную точку = 30% от ширины. Для ШОРТ, наоборот, от верхней границы. В данном режиме уровни заполняются не в ценах инструмента а в процентах от ширины канала.
- Виды алгоритмов динамической сетки:
- “BOL” - рассчитывается канал Боллинджера. Уровни рассчитываются по границам канала.
- “KELTNER” - рассчитывается канал вокруг MA +/- k*ATR (канал Кельтнера). Уровни рассчитываются по границам канала.
- “REG” - рассчитывается регрессионный канал. Уровни рассчитываются по границам канала.
- “KREG” - рассчитывается Ядерная регрессия Надарая — Уотсона. Уровни рассчитываются по границам канала.
- “MURR” - Рассчитываются уровни Мюррея. Канал рассчитывается по заданным уровням.
- “Настроить алгоритм динамической сетки” - команда вызова окна настройки алгоритма динамической сетки
Пример окна настройки динамических уровней:
- Интервал расчета динамической сетки - Интервал баров алгоритма активации для расчета событий.
- Рассчитывать баров истории - Интервал баров алгоритма активации, для расчета событий.
- Активировать построение сетки по уровню - Если включен режим алгоритмической активации сетки, то включение данного режима, позволит заполнять сетку только после достижения ценой заданного уровня активации. Т.о. если произошло изменение тренда, но при этом цена не достигла уровня активации, сетка не будет заполнена. Это позволит избежать построений сетки при ложных, неподтвержденных сигналах. Для ручных команд данная настройка не контролируется, т.е. командами можно установить сетку при любом положении цены. Уровень активации динамической сетки выражен в % о ширины канала. Уровень отсчитывается от нижней границы канала для направления ЛОНГ, верхней для направления ШОРТ. Достижение уровня это нахождение ценой выше уровня для направления ЛОНГ, ниже для направления ШОРТ.
- Уровень активации ( % от ширины канала) - Если включен параметр “Активировать построение сетки по уровню”. Уровень активации динамической сетки выраженный в % от ширины канала. Уровень отсчитывается от нижней границы канала для направления ЛОНГ, верхней для направления ШОРТ. Достижение уровня это нахождение ценой выше уровня для направления ЛОНГ, ниже для направления ШОРТ.
- Тип цены контроля ширины канала - Тип цены контроля ширины канала. Возможные значения:
- % (процент) - процент.
- Steps – шаги цены инструмента.
- Pips - пункты цены инструмента.
- Минимальная ширина канала для активации - Если включен режим алгоритмической активации сетки, то можно указать минимальную ширину канала для автоматической активации сетки. Т.о. если произошло изменение тренда, но при этом ширина канала меньше минимальной, сетка не будет заполнена. Эт позволит избежать построений сетки при слишком низкой волатильности. Значение 0 означает, что не данный параметр не контролируется. Для ручных команд данная настройка не контролируется, т.е. командами можно установить сетку при любой ширине.
- Максимальная ширина канала для активации - Если включен режим алгоритмической активации сетки, то можно указать максимальную ширину канала, больше которой блокируется автоматическая активация сетки. Т.о. если произошло изменение тренда, но при этом ширина канала больше максимальной сетка не будет заполнена. Это позволит избежать построений сетки при слишком высокой волатильности. Значение 0 означает, что не данный параметр не контролируется. Для ручных команд данная настройка не контролируется, т.е. командами можно установить сетку при любой ширине.
- Фиксировать цену начала построения сетки - Если задано фиксировать цену начала построения сетки, то первый уровень всегда будет рассчитан как % от ширины канала.
- % range начала построения сетки - Если задано фиксировать цену начала построения сетки, то первый уровень всегда будет рассчитан как % от ширины канала. Параметр разрешено изменять при запущенном алгоритме. Изменение доступно через клавиши “стрелка влево” или “Стрелка вправо”
- Тип цены контроля смещения уровня - Тип цены контроля смещения уровня. Возможные значения:
- % (процент) - процент.
- Steps – шаги цены инструмента.
- Pips - пункты цены инструмента.
- % dynamic range - процент ширины динамического канала.
- Мин. смещение цены для сдвига уровня - Данная настройка позволяет указать минимальное движение цены для смещения уровня. Если в результате нового расчета динамического уровня, дельта смещения окажется ниже минимальной, то уровень не будет смещен. Это позволит минимизировать числ транзакций, исключая микросмещения уровней. Параметр разрешено изменять при запущенном алгоритме. Изменение доступно через клавиши “стрелка влево” или “Стрелка вправо”
- Смещать закрытия уровней против сделки - Данная настройка позволит запретить смещение ордера закрытия уровня против сделки. Т.о. при смещении канала против сделки, уже установленные ордера закрытия останутся на своем уровне. Параметр разрешено изменять при запущенном алгоритме.
- Не смещать закрытия уровней хуже уровня открытия - Если разрешено смещение ордера закрытия уровня против сделки, можно запретить смещение дальше его уровня открытия. Параметр разрешено изменять при запущенном алгоритме.
В режиме динамических уровней по умолчанию тип цены закрытия задается как “% dynamic range”. Но также доступны и базовые типы “Steps, %, Pips”. В таком случае, при заполнении уровней, динамический шаг будет рассчитан исходя из заданной величины шага, т.е. обратный расчет. При работе сетки уже будут учитываться только динамические уровни.
В данном режиме недоступен режим трейлинга уровней, режим алгоритмического шага закрытия уровней.
Модуль АЛГОРИТМИЧЕСКИЙ ШАГ УРОВНЯ
- Алгоритм расчета шага уровня. В данном режиме рассчитывается текущая волатильность по выбранному алгоритму. Шаг уровней указаывается как коэффициент от значения волатильности. Т.о. уровни входа указываются в виде конуретных цен, а уровни выхода будут рассчитываться динамически, в зависимости от рассчитанной волатильности. Данный режим недоступен если выбран режим Динамическая сетка.
Возможные значения:
- ATR - шаг уровня кратный ATR.
- STD - шаг уровня кратный стандартному отклонению.
- PRCICE RANGE - шаг уровня кратный ширине ценового канала.
- Команда “Настроить алгоритмы шага уровней” - Если выбран алгоритмический шаг уровня, то необходимо указать параметры расчета алгоритма. Команда доступна при запущенном алгоритме.
Пример окна настройки алгоритмического шага уровня для алгоритма ATR:
- Интервал алгоритма шага уровней - интервал баров алгоритма .
- Тип цены контроля смещения уровня - Тип цены контроля смещения уровня. Возможные значения:
- % (процент) - процент.
- Steps – шаги цены инструмента.
- Pips - пункты цены инструмента.
- Мин. смещение цены для сдвига уровня - Данная настройка позволяет указать минимальное движение цены для смещения уровня. Если в результате нового расчета уровня закрытия, дельта смещения окажется ниже минимальной, то уровень не будет смещен. Это позволит минимизировать число транзакций, исключая микросмещения уровней.
- Смещать закрытия уровней против сделки - Данная настройка позволит запретить смещение ордера закрытия уровня против сделки. Т.о. при смещении против сделки, уже установленные ордера закрытия останутся на своем уровне. Параметр разрешено изменять при запущенном алгоритме.
- Не смещать закрытия уровней хуже уровня открытия - Если разрешено смещение ордера закрытия уровня против сделки, можно запретить смещение дальше его уровня открытия. Параметр разрешено изменять при запущенном алгоритме.
Дополнительный модуль “ТРЕНДОВАЯ СЕТКА”
- При активации режима, введенные шаги открытия становятся отрицательными. Также изменяется направление трейла на противоположный. Также зеркально изменяется активация ордера. Ордера на покупку активируются если текущая цена превышает цену уровня, на продажу - становится ниже. Т.е. режим пробоя. В стандартном режиме ордера работают как лимитные, в этом режиме как стоп-лимитные. В данном режиме ордера устанавливаются в указанном направлении, т.е. по мере движения по направлению будут исполняться ордера. В обычном режиме ордера устанавливаются против выбранного направления в ожидании “отката”. При достижении уровня происходит вход в позицю лонг по рынку. После этого устанавливается ордер на закрытие позиции по направлению движения. Если сетка симметричная (шаг открытия = шаг закрытия), то ордер закрытия будет совпадать с следующим ордером открытия. При этом ордер входа для неактивированных уровней - это скрытый ордер, а ордер закрытия устанавливаются в соответствии с указанным типом, напрмер лимитный.
После активации уровня (т.е. исполнения ордера на вход) последующие уставки ордеров на этом уровне (после исполнения ордера закрытия) будут уже устанавливаться в соответствии с указанным типом, напрмер лимитный. Т.о. если цена пройдет всю сетку по направлению от первого до последнего уровня, сетка станет обычной.
Трейл сетки в таком режиме работает против направления сетки. Для примера, мы установили сетку в лонг, установив ордера, ожидая движения вверх. Но если цена пойдет против, сетка будет смещаться вниз, подтягивая уровни за ценой. И когда нисходящее движения закончится начнут исполняться ордера.
Если заданы настройки для установки стоп-ордера, то после исполнения уровня на открытие позиции будет установлен стоп ордер. Т.о. в таком режиме, если движени не подтвердится, то исполнится стоп-ордера, установленный на объем входа. Т.е. риск в таком режиме меньше чем в обычном, т.к. число исполненных ордерв на вход будет меньше.
Дополнительный модуль “ЗАКРЫВАТЬ УРОВНИ ОТ СРЕДНЕЙ”
- В этом режиме уровни закрытия будут устанавливаться от текущей средней цены позиции с заданным шагом. Данный режим доступен только если включен режим “Рассчитывать среднюю по активным уровням”. Данный режим недоступен для типа цены шага уровней “Currency”.
- Число уровней закрывать по средней - Число уровней, которые будут закрываться по средней. Остальные будут работать в обычном режиме. Если задано 0, то все уровни.
- Действия если хуже первого уровня - По мере срабатывания большего числа уровней открытия средняя будет идти вслед за ценой. В итоге она может опуститься за первый уровень. Когда произойдет закрытие всех уровней по средней, установка ордера на первый уровень приведет к его исполнению по рынку. В этом случае можно выполнить действия:
- OFF - ничего не делать, ордера исполнятся по ситуации
- Reopen - переустановить сетку от текущей цены.
- Close NET - снять текущую сетку
В обычном режиме для каждого уровня свой уровень закрытия. В режиме закрытия по средней, рассчитывается средняя по открытым уровням и от этой средней устанавливаются уровни закрытия на один и тот же уровень. Т.о. по мере исполнения ордеролв на вход, будет изменяться средняя позиции и выход будет смещаться вместе с ней.
В данном режиме выход из позиции будет происходить быстрее, т.к. выход будет на уровне шага закрытия от средней, который будет выполнять роль единого тейк-профита позиции.
Для примера: Есть 4-е уровня на покупку. При исполнении первого уровня будет установлен ордер на выход 1. При исполнении 2-ого уровня будет установлено два уровня 1+2 на новой средней позции первого и второго уровней. И т.д. пока не будут исполнены все уровня, закрывающиеся от средней.
Если указать число уровней закрытия от средней больше нуля, то только это количество уровней будет закрываться от средней, остальные будут работать в обычном режиме. Например, указано 3 уровня для закрытия по средней, всего уровней 5. Уровни 4, 5 будут закрываться индивидуально, а первые три уровня от средней.
НАСТРОЙКИ УСТАНОВКИ СЕТКИ
ПОДРАЗДЕЛ РЕЖИМЫ
- Режим: “Только закрытие” - При активации данного режима сетка переходит в режим закрытия. Все неисполненные ордера на вход снимаются. После исполнения всех ордеров на выход строка останавливается.
- Включить безусловное снятие сетки - По достижению заданного уровня будет снята сетка (закрыта позиция). Уровень отсчитывается от первого уровня в момент первоначальной активации сетки.
- Тип цены уровня безусловного снятия сетки - Тип цены уровня безусловного снятия сетки. Возможные значения:
- % (процент) - процент.
- Steps – шаги цены инструмента.
- Pips - пункты цены инструмента.
- Currency - уровень задается в валюте цены инструмента, т.е. сама цена.
- Уровень безусловного снятия сетки
ПОДРАЗДЕЛ ОБЩИЕ
- Выводить метки уровней - если заполнен Идентификатор графика, то можно вывести метки всех уровней.
- Снимать ордера при остановке - При остановке снимать все неисполненные ордера сетки.
- Спрашивать подтверждение при очистке сетки - Спрашивать подтверждение при очистке сетки
- Снимать авто-добавленные уровни - если заполнен параметр “Первоначальный торговый объем сетки” меньше полного торгового объема, автоматически добавляются скрытые уровни до полного объема. По мере исполнения уровней, добавленные активируются. Если цена уйдет обратно, то можно указать чтобы активированные уровни были сняты. Т.о. будут разблокированы денежные средства.
- Рассчитывать среднюю по активным уровням - Рассчитывать средний уровень позиции по активным уровням. Если включено, то средняя цена позиции рассчитывается по активным уровням. Для примера, открыты позиции на уровнях 1, 2 и 3. Закрыт уровень 3. Т.о. средняя цена будет рассчитана по уровням 1 и 2. Если выключено, то средняя цена позиции рассчитывается стандартным образом по принципу FIFO.
- Для стоп-лосса: Уровень как средняя цена позиции - Принимать заданный уровень открытия позиции как среднюю цену позиции при установке стоп-лосса. Если задано значение -1, то устанавливать стоп от рассчитанной средней цены позиции. Если задано значение больше и равное числу рассчитанных уровней, то стоп будет установлен от последнего уровня.
- Снимать уровни за стоп-ордером - При сдвиге стоп-ордера снимать ордера входа в позицию за стоп-ордером
- Не устанавливать стоп-ордер при активной сетке - Если есть активные лимитные ордера входа, то можно не устанавливать стоп-ордер, чтобы избежать активации стоп-ордера одновременно с ордерами входа при сильном движении цены.
- Возможность сдвига ордера на графике - Если включена возможность сдвига, и если пользователь сдвинул ордера на графике на новый ценовой уровень, то скрипт ждет его появления, прежде чем перевыставить новый ордер, если это требует алгоритм. Параметр ожидания задается через ТОРГОВЫЕ НАСТРОЙКИ:Ожидание при сдвиге ордера (сек.). Если возможность сдвига выключена, то ордер будет восстановлен алгоритмом сразу после его снятия, не ожидая появления нового ордера. Рекомендуется активировать данныую настройку только в случае реальной необходимости.
- Не искать заявки с комментарием - скрипт автоматически ищет установленные заявки. Заявки с комментарием, содержащим введенное значение, будут игнорироваться
- Не искать чужие заявки - Если данный режим выключен, то скрипт контролирует только свои заявки ступеней, с учетом введенного значения “Идентификатор скрипта”, который обязателен в этом режиме. В режиме “OFF” осуществляется поиск всех ордеров. Важно обеспечить уникальность параметра “Идентификатор скрипта”.
- Редактирование активной сетки - команда, открывающая окно редактирования активной сетки.
- Очистить активную сетку - команда очищающая текущую активную сетку без снятия установленных ордеров.
Примеры окон редактирования активной сетки:
В этом окне можно отредактировать количество, цены уровней, что приведет к перестановке ордера на уровне. В режиме динамической сетки задаются динамический уровни, а не конкретные цены. Также можно добавить новый уровень. Для нового уровня можно указать, что необходимо установить ордер закрытия, а не ордер открытия позиции. Например, уже есть открытая позиция и надо часть уровней указать как уровни закрытия. При добавлении нового уровня по цене в середине диапазона сетки, произойдет сортировка уровней при запуске. Если указать параметр remove (удалить уровень), то такой уровень будет удален. Важно: удалить можно уровень, на котором нет активного ордера закрытия позиции и нет частичного исполнения ордера открытия.
При первичном вызове окна настройки происходит поиск уже установленных ордеров и происходит предположительное заполнение сетки. Т.о. можно частично заполнить уровни по уже установленным ордерам (или оставшимся активными после прошлой сетки). Важно учитывать, что при заполении происходит автоматическое заполнение цен уровней в случае фиксированной сетки. Для динамической сетки или алгоритмического шага закрытия будут заполнены цены ордеров, а алгоритмические цены необходимо заполнить руками, т.к. при заполнении сетки еще не рассчитаны данные по динамическим алгоритмам.
ПОДРАЗДЕЛ ПАРАМЕТРЫ
- Вид сетки уровней. Возможные значения:
- 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.
ПОДРАЗДЕЛ ЗАКРЫТИЕ
- Тип ордера закрытия уровней. Возможные значения:
- Limit - вариант установки ордера с использованием заявки типа “Лимитный ордер”
- Hidden - вариант установки ордера без физического выставления заявки на серверах брокера
- Тип цены закрытия уровней. Возможные значения:
- % (процент) - процент
- Steps – шаги цены инструмента
- Pips - пункты цены инструмента
- Currency - уровень задается в валюте цены инструмента, т.е. сама цена. Вариант “Currency” работает только для режима “Вид сетки уровней” = “Manual”
- % dynamic range - процент ширины динамического канала. Если выбран режим Динамическая сетка.
- Шаг сетки закрытия позиции - Размер шага закрытия позиции в указанных единицах цены инструмента. Если не задан, то ордер устанавливается на вышестоящий уровень (т.е. используется основной шаг сетки).
- Поддерживать размер шага закрытия при сдвиге ордера - при сдвиге ордера закрытия (открытия) уровня изменятся шаг между уровнем открытия и закрытия. При включенной настройке сдвиг ордера закрытия приведет к одновременному сдвигу и уровня открытия (закрытия). Т.о. шаг закрытия будет постоянным. Если настройка выключена, то будет изменен шаг закрытия, уровень открытия останется неизменным.
- Число итераций закрытия уровней - Если установлен лимит, то ограничивается число циклов установки ордеров входа в позицию. По достижению лимита уровень деактивируется. Например, установив значение = 1, будут установлены ордера открытия позиции 1 раз. После их закрытия скрипт остановится. Т.о. реализуется режим, только закрытия позиции. Если лимит > 1, то после закрытия уровня, зеркальный ордер открытия будет установлен еще раз. И так, пока не будет достигнут лимит. Значение 0 - не ограничивать. Т.е. уровни будут восстанавливаться без ограничения.
Режим Вида сетки уровней “Fix net” рассчитывает уровни с заданным шагом в параметре Шаг сетки с учетом Коэфф. шага сетки. Т.е. будут установлены ордера, пока не будет достигнут заданный объем входа в позицию или не будет достигнута глубина сетки, если она задана.
Режим Вида сетки уровней “Distribution” рассчитывает уровни от глубины и числа шагов сетки. Т.е. шаг сетки - это частное от деления глубины на число шагов. Если задан Коэфф. шага сетки, то расчет производится по формуле суммы геометрической последовательности. Рассчитанный шаг округляется по правилам округления. После расчета шага производится расчет уровней сетки пока не будет достигнут торговый объем. В этом режиме важно соотносить число шагов сетки и торговый объем, т.к. может возникнуть ситуация, когда объем будет выбран раньше, чем достигнуто заданное число уровней.
Раздел “СТУПЕНИ ВХОДА. ПРОФИТ-ТРЕЙЛ” содержит настройки:
В данном режиме контролируется уровень общей прибыли которая складывается из прибыли зафиксированных уровней и текущей прибыли открытых уровней. Если сформирован уровень отсечки прибыли, то при снижении прибыли ниже уровня отсечки, происходит закрытие текущей позиции и снятие активной сетки.
- Включить профит-трейл - включить режим трейла профита.
- Контрольное значение уровня прибыли - Контрольное значение уровня прибыли (в валюте цены). Как только уровень прибыли превысит контрольное значение, запускается таймер длительностью “Интервал контроля уровня прибыли” в течении которого контролируется текущий уровень прибыли относительно контрольного.
- Интервал контроля уровня прибыли (мин.) - Временной интервал в течении, которого прибыль должна быть равно или больше контрольного значения. Если по окончании таймера уровень прибыли остается выше текущего контрольного значения, то уровень отсечки смещается на текущий уровень контроля.
- Шаг трейла прибыли - Шаг трейла прибыли (в валюте цены). Если уровень прибыли превысил контрольное значения + шаг трейла, то контрольное значение поднимается на шаг трейла и устанавливается уровень отсечки на контрольное значение прибыли.
Пример: Задано контрольное значение прибыли 2000 руб. Интервал контроля 10 минут. Шаг прибыли 500 рублей. Как только прибыль достигнет 2000 рублей активируется трейл и запускается таймер. Если в течении таймера прибыли так и останется выше 2000, то установится уровень фиксации прибыли 2000 рублей. Либо, если уровень прибыли поднимется 2000 + 500 = 2500 рублей, то установится уровень фиксации прибыли 2000 рублей. И так далее 3000 -> 2500, 3500 -> 3000 … Т.о. достижение очередного уровня прибыли сдвигает уровень фиксации. Либо, если прибыль держится выше текущего контрольного уровня прибыли дольше заданного временного интервал, то уровень фиксации также устанавливается на текущий контрольный уровень.
Раздел “СТУПЕНИ ВХОДА. ВЫКУП” содержит настройки:
В данном режиме по команде “Установить сетку уровней” будет открыта позиция по рынку (или по конкретной цене) в объеме, заданном в параметре “Торговый объем шага объема выкупа”. На этот объем будет установлена сетка ордеров закрытия позиции, а на остаток объема будет установлена основная сетка уровней. Т.о. будет сразу осуществлен вход на объем выкупа и установлены ордера выхода, а на остаток установлена основная сетка.
- Команда “Распределить открытый объем по уровням” - если открыта текущая позиция, то можно распределить открытый объем по уровням по аналогии с первой рыночной сделкой. Весь открытый объем принимается за объем выкупа.
- Включить выкуп - Включить реализацию первого торгового объема выкупа.
- Первый торговый объем выкупа - Размер(объем) первой сделки по рынку (или по конкретной цене). Общий объем входа задается в параметре ТОРГОВЫЕ НАСТРОЙКИ: Торговый объем. Объем приходящийся на стеку уровней - это разница между общим объемом и объемом первой сделки по рынку. Если задано 0, то весь объем будет набран ступеням входа, т.е. сигнал - это установка сетки от цены активации. От средней по рынку будет построена сетка.
- Тип цены закрытия уровней выкупа. Возможные значения:
- % (процент) - процент
- Steps – шаги цены инструмента
- Pips - пункты цены инструмента
- % dynamic range - процент ширины динамического канала. Если выбран режим Динамическая сетка.
- Шаг сетки закрытия выкупа - Размер шага уровней закрытия выкупа в указанных единицах цены инструмента. Если не задан, то берется шаг закрытия сетки или основной шаг сетки, что задано. Для режима “Вид сетки уровней” = “Manual” данный параметр обязательный.
- Торговый объем шага объема выкупа - Размер(объем) сделки на уровнях сетки для выкупленного объема. Если не задан, то берется размер “Торговый объем шага сетки”. Для режима “Вид сетки уровней” = “Manual” данный параметр обязательный. Важно: Объем закрытия шага сетки выкупа должен быть кратен объему шагу сетки.
- Цена сделки выкупа - Можно задать конкретные цены уровня выкупа. Будет установлен лимитный ордер, по исполнению оного будет сформирована сетка.
Раздел “СТУПЕНИ ВХОДА. ТРЕЙЛ” содержит настройки:
Данный режим позволяет сдвигать сетку уровней за “убегающей” ценой, т.е. сдвигать сетку по направлению движения цены.
- Трейлить ордера ступеней - включить режим трейла уровней.
- Сдвигать ордера закрытия - Если настройки трейла таковы, что он активируется до закрытия всех уровней, то можно сдвигать активные ордера закрытия, вместе с ордерами открытия.
- Тип цены шага трейлинга уровней. Возможные значения:
- % (процент) - процент
- Steps – шаги цены инструмента
- Pips - пункты цены инструмента
- Активировать трейл после - Активация трейлинга ордеров ступеней в указанных единицах. Если указан данный параметр, то активация трейлинга произойдет только если цена прошла указанный интервал в сторону сделки.
- Интервал проверки цены (сек.) - Данный параметр позволяет установить период проверки текущей цены инструмента. Если установлено значение 0 (значение по умолчанию), то цена будет контролироваться постоянно, при любом движении цены будет происходить контроль трейлинга. Если установить значение отличное от 0, то цена инструмента будет контролироваться с указанной периодичностью. Такая настройка позволит исключить из контроля трейлинга движения цены, прошедшие между проверками. Это в каких-то случаях позволит исключить необоснованные сдвиги ордеров ступеней при резких возвратных движениях цены, которые в обычном режиме привели бы к сдвигу ордера и неблагоприятному открытию позиции при возвратном движении цены.
- Шаг трейла - Шаг трейлинга ордеров ступеней в указанных единицах. По мере движения цены ордера будет двигаться за ценой. Если цена прошла в сторону открытой сетки больше и равной шагу трейлинга, то ордера сдвинутся. Т.е. если необходимо обеспечить постоянный сдвиг ордеров за ценой, необходимо установить размер шага трейлинга = 1 шаг (пункт). Если шаг больше 1, то цена должна пройти данный интервал, чтобы ордера были сдвинуты. Это позволит уменьшить число транзакций по сдвигу ордеров.
Режим недоступен для активированного режима Динамическая сетка.
Раздел “СТУПЕНИ ВХОДА. ОТЛОЖЕННАЯ АКТИВАЦИЯ” содержит настройки:
Данный режим позволяет активировать сетку по выполнению условия достижения ценового уровня. В данном режиме, в отличии от алгоритмов активации, после выполнения условия оно выключается, т.е. выполняется однократно.
- Отложенная активация - Выбор направления активации сетки. Возможные значения:
- ‘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” осуществляется поиск всех ордеров. Важно обеспечить уникальность параметра “Идентификатор скрипта”.
Раздел “КОНТРОЛЬ СДЕЛОК” содержит настройки
- Комиссия - Для более точного расчета прибыли можно задать комиссию за контракт (для срочного рынка) или за объем для фондовой секции.
- Для срочного рынка задается в валюте цены, допустим 0.5 рублей.
- Для фондовой секции задается в процентах за объем сделки.
- Лимит по прибыли по достижению которого алгоритм закроет позицию, снимет активную сетку и перейдет в режим ожидания.
- Лимит по убытку по достижению которого алгоритм закроет позицию, снимет активную сетку и перейдет в режим ожидания.
- Команда: Сбросить накопленные данные по прибыли.
- Автоочистка данных по прибыли - Режим автоматической очистки данных прибыли при наступлении нового торгового дня. Возможные значения:
- OFF - Выключено
- DAY - Каждый новый торговый день
- WEEK - Каждую новую торговую неделю
- Сохранять журнал сделок - если включено, то будут сохраняться все сделки в файлы для каждого инструмента.
- Открыть сделки - команда, открывающая окно закрытых сделок по инструменту.
В скрипте (и в окне настроек) действуют следующие правила редактирования значения параметров:
- Все поля, содержащие в своем значении текст “[…]” - это команды, выбираемые указателем (двойное нажатие). При этом двойное нажатие левой клавишей указателя - это изменение значение вправо по списку значений. Двойное нажатие правой клавишей указателя - это изменение значение влево по списку значений. Для примера, набор значений {‘Stop+Profit’, ‘Stop’, ‘Hidden’, ‘None’} при выборе левой клавишей мы переходим слева направо по значениям. И обратно для двойного нажатия левой клавишей указателя.
- Все редактируемые (числовые, строковые) поля окрашиваются в желтый цвет. Чтобы начать редактировать поле необходимо выделить необходимое поле. Далее можно привычными командами с клавиатуры ввести необходимое значение показателя. При этом, если это необходимо, удалить старое значение.
- Также числовые поля и поля, содержащие дату (Дата действия заявок, автоматический запуск и остановка), можно изменять с помощью клавиш “стрелка влево” - уменьшить значение, “стрелка вправо” - увеличить значение. Тем самым можно быстро изменить значение, не вводя его с клавиатуры.
- Ввод значения “прямо” с клавиатуры возможно производить только при остановленной торговле по инструменту. Это ограничение введено т.к. при вводе значения можно допустить ошибку ввода.
- Изменение значения через плавное изменение клавишами “стрелка влево” и “стрелка вправо” возможны при работающем роботе, т.к. при таком способе ввода исключается синтаксическая ошибка.
- Часть команд настроек “[…]” доступна при работающем скрипте по инструменту. Допустим, для примера, можно включить и остановить трейлинг стоп-лосса. Можно изменить тип стоп-лосса, тейк-профита при этом произойдет перевыставление ордеров в соответствии с указанными настройками. Допустим, изменив тип тейк-профита с стопа на лимитный ордер, произойдет его перевыставление. Если строка инструмента находится в остановленном состояния, то реакция на изменение настроек произойдет только после запуска торговли по инструменту.
- В поле “Message” выводятся сообщения по строке алгоритма. Если дважды нажать правой клавишей указателя по полю в стоке, то откроется дополнительное окно всех ранее выведенных сообщений по строке.
Скрипт поддерживает горячие клавиши:
- Остановить все строки - Shift + 1
- Запустить все строки - Shift + 2
- Сдвинуть строку вниз - Shift + “-“
- Сдвинуть строку вверх - Shift + “+”
- Скопировать строку - Sift + C. Для корректной работы необходимо выбрать строку не в поле выбора инструмента.
Работа скрипта.
Для запуска торговли по инструменту необходимо изменить состояние строки по инструменту, исполнив команду в поле “state”. Таким же образом происходит остановка торговли по строке скрипта. Для удаления строки из скрипта необходимо выбрать команду “Del” в первой колонке […]. При изменении позиции по инструменту скрипт выведет значение в поле “Position”. Это происходит даже при остановленной торговле по инструменту.
Если строка находится в состоянии “Run” и введены настройки установки стоп-ордеров и сетки ордеров, то по команде установки сетки ордеров произойдет автоматическая постановка соответствующих ордеров.
Если происходит дальнейшее изменение позиции, то скрипт отслеживает изменение позиции и перевыставляет ордера в соответствии с новой позицией и новой средней ценой.
Если происходит закрытие позиции, то скрипт автоматически снимает установленные стоп ордера.
При подаче команды на установку сетки ордеров происходит анализ настроек. Если включен режим выкупа, устанавливается ордер на торговый объем выкупа (вход по рынку). При его исполнении происходит заполнение уровней сетки и установка ордеров сетки.
Также можно организовать несколько наборов позиции. Допустим, уже был набран объем и вся сетка выбрана. Изменив торговый объем в большую сторону, можно установить новую сетку на новых уровнях выполнив еще раз команду установки сетки. Либо, если цена ушла за последний уровень, то будет открыт еще один уровень, если доступен торговый объем. Т.е. можно открыть сетку на начальный объем, увеличить торговый объем, и он будет установлен только если цена опустится до последнего уровня.
Если для инструмента срочной секции в клиринг были сняты лимитные ордера входа в позицию, то после начала торговой сессии ордера будут восстановлены.
Для каждой строки можно контролировать сетку уровней через дополнительное окно сетки уровней:
В этом окне можно быстро выключить активность уровня, что приведет к снятию ордера.
В этом окне можно быстро выключить активность уровня, что приведет к снятию ордера.
Если выполнить команду “Калькулятор инструмента” из окна настроек или команду “+/-“ из основного окна, то откроется окно калькулятора по инструменту:
В этом окне можно рассчитать взаимные значения между введенными параметрами. Также выводится справочная информация по инструменту.
Если включен режим активации сетки алгоримом, то при запуске происходит расчет выбранного алгоритма и определяется текущий тренд. Уже сформированная позиция и сетка при это не изменяется. Только после смены тренда алгоритма происходит анализ текущей устанавленной сетки и позиции, и в зависимости от настроек просходит закрытие позиции и смена направления сетки. Т.о. алгоритм позволит автоматически реагировать на смену тренда и переворачивать (закрывать) сетку. Т.к. анализ направлений происходит только в момент смены тренда алгоритма, то допускается выполнять ручные команды по поставновке, снятию сетки.
Также скрипт поддерживает отправку сообщений в Телеграм, E-Mail, реализованную через библиотеку библиотеку