Скрипт multiAutoStop
[
скрипт
lua
qlua
квик
quik
автостоп
]
Реализация автоматической установки стоп, профит ордеров по открытым позициям, сопровождение позиции в терминале Квик.
Видео работы скрипта Развитие скрипта
Основные возможности скрипта
В процессе работы скрипт отслеживает изменение позиции по торгуемому инструменту и выводит информацию по ней. Если установлены настройки установки стоп-лосса, тейк-профита, то происходит автоматическая установка ордеров, отвечающих за стоп-лосс и тейк-профит. Также реализована возможность закрыть половину позиции при достижении указанного ценового уровня. Если установлены настройки по трейлингу стопа-лосса, то по мере движения цены происходит сдвиг стоп-лосса, что позволяет защитить полученную прибыль. Скрипт отслеживает ручные сдвиги стоп-лосса и тейк-профита на графике цены инструмента, тем самым позволяя управлять размером стоп-лосса и тейк-профита без остановки скрипта.
Поддерживается автоматический запуск и остановка исполнения скрипта по конкретному торгуемому инструменту по времени. Существует возможность автоматически закрыть позицию по инструменту по истечении времени. Для срочного рынка (фьючерсы) поддерживается возможность автоматической замены торгуемого инструмента на следующий.
Поддерживаются виды стоп-лосса:
- Stop+Profit - вариант установки стоп-лосса и тейк-профита одной заявкой
- Stop - вариант установки стоп-лосса без указания информации по тейк-профиту
- Hidden - вариант установки стоп-лосса без физического выставления заявки на серверах брокера
- None - без установки стоп-лосса
Поддерживаются виды тейк-профита:
- Stop+Profit - вариант установки стоп-лосса и тейк-профита одной заявкой
- Stop - вариант установки тейк-профита без указания информации по стоп-лоссу
- Limit - вариант установки тейк-профита с использованием заявки типа “Лимитный ордер”
- Hidden - вариант установки тейк-профита без физического выставления заявки на серверах брокера -xStop - х кратный стоп-лоссу
- None - без установки тейк-профита
Поддерживаются виды указания значения величины стоп-лосса и тейк-профита от средней цены позиции:
- % (процент) - процент
- Steps – шаги цены инструмента
- Pips - пункты цены инструмента
- RUR - рубли
- Price - конкретная цена
Поддерживаются виды указания времени жизни стоп-ордеров:
- GTC - до истечения срока жизни инструмента (по факту 30 дней)
- Today - сегодня
- Конкретная дата
Поддерживаются виды указания типы отступа и спреда для стоп–профит-ордера:
- % (процент) - процент
- Steps – шаги цены инструмента
- Pips - пункты цены инструмента
Поддерживаются виды указания значения трейлинга стоп-лосса:
- % (процент) - процент
- Steps – шаги цены инструмента
- Pips - пункты цены инструмента
- RUR - рубли
Скрипт отслеживает установленное соединение с сервером брокера, время торговой сессии по инструменту, исключая подачи команд на сервер брокера в периоды отсутствия соединения с сервером брокера, неторговое время (клиринг, окончание торговой сессии). После восстановления соединения с сервером брокера происходит проверка полученных пакетов (если включена такая настройка), дабы избежать запуска алгоритма на неполных данных.
Скрипт корректно отрабатывает закрытие торгового терминал без остановки скрипта. После перезапуска терминала скрипт автоматически запустится, перейдет в период ожидания подключения к серверу брокера, загрузки всех информационных пакетов с сервера брокера. Для каждого запуска формируется файл лога в каталоге /logs. Если в процессе работы скрипта возникнут ошибки, то будет дополнительно сформирован файл лога ошибок. Если ошибок будет слишком много, то скрипт принудительно остановится.
Окно настроек скрипта.
Для настройки торговых параметров по инструменту необходимо выполнить команду “[…]” в поле “Set”. В результате будет показана форма настроек.
Если включить настройку отображения окна настроек с закладками (параметр WINDOW_TABS = 1 в файле multiAutoStopUltra_params.txt), то окно будет показано в таком виде:
Большинство параметров содержат описание. Его можно вызвать по кнопке “?”.
Раздел “ОБЩИЕ НАСТРОЙКИ” содержит настройки:
- Идентификатор скрипта - комментарий, добавляемый к транзакциям. По нему можно будет определить ордера и сделки, совершенные скриптом. Идентификатор должен быть уникальным среди всех скриптов и строк скрипта. При этом необходимо обеспечить уникальность “по вхождению”. Для примера идентификаторы str и str1 не уникальные, т.к. первый входит во второй. А str0 и str1 уже уникальные. Не допускается использовать символы ( ) . % + - * ? [ ^ $
- Запустить при запуске - в режиме ON при загрузке Квика и при условии, что скрипт робота в разделе Сервисы – Lua скрипты также запущен, то робот сам включится и будет отслеживать позиции согласно своих настроек.
- Время автозапуска - конкретное время для автозапуска. Указывается как строка вида ЧЧ:ММ:СС. Либо ЧЧ:ММ. Если указано, то настройка “Запустить при автозапуске” не работает.
- Время автоостановки - время остановки сроки скрипта. Указывается как строка вида ЧЧ:ММ:СС. Либо ЧЧ:ММ.
- Закрывать позицию при автоостановке - автоматическое закрытие позиции по времени автоостановки.
- Заменять инструмент на следующий за указанное число дней до экспирации. Важно: происходит только замена инструмента в строке скрипта. Позиция и уже выставленные ордера при этом не затрагиваются.
- Отправлять сообщения в Телеграм.
- Отправлять сообщения E-Mail.
- Дублировать сообщения в Терминал Квик - Все сообщения отображаются в списке сообщений строки. При включении настройки будет выводиться стандартное окно сообщений терминала.
- Воспроизводить звуковой сигнал. (Если подключен модуль звуковых оповещений)
- Настроить отправку сообщений - команда вызова окна настройки отправки оповещений
-
Авто запуск остановка - Авто запуск остановка. - Состояние соединения - Состояние соединения.
- Состояние торговой сессии - Состояние торговой сессии.
- Состояние отложенного входа.
- Сигналы триггерного стопа.
- Состояние стоп-профит ордеров.
- Состояние трейлинга стоп ордера
- Изменение позиции.
- Контроль риск параметров - Контроль риск параметров.
-
- Калькулятор инструмента - команда открытия окна калькулятора по инструменту.
- Команда “Настроить позицию” - Настроить позицию: Необходимо заполнить (отредактировать) уровни входа текущей позиции. Это может понадобится в тех случаях, когда скрипт не смог корректно рассчитать средную цену входа текущей позиции.
- Идентификатор графика куда будут выводиться метки сделок в виртуальном режиме работы. Также метки скрытых стоп-ордеров. Задается в разделе “Дополнительно” свойств цены графика.
- Выводить метку позиции - если заполнен Идентификатор графика, то можно вывести метку средней цены позиции.
- Выводить метки сделок - Если заполнен Идентификатор графика, то можно выводить метки всех сделок. Для виртуальной торговли метки выводятся независимо от настройки.
Окно формы редактирования позиции:
Открытая позиция - это одна или несколько сделок в указанных количестве и цене. Исходя из введенных данных рассчитывается среднняя, объем позиции. В процессе работы данные о позиции рассчитываются автоматически, но т.к. скрипт не учитывает сделки, совершенные минуя команды скрипта (т.е. руками через терминал, другими скриптами), то может возникнуть ситуация когда текущая реальная позиция не соответствует той, что помнит скрипт. Или это возможно, когда скрипт был запущен когда позиция уже была сформирована, а сделки (или их часть) отстутствуют в терминале. Допустим, сделки были несколько торговых сессий назад.
Раздел “ТОРГОВЫЕ НАСТРОЙКИ” содержит настройки:
- ВИРУТАЛЬНАЯ ТОРГОВЛЯ - режим эмуляции торговли. В этом режиме команды BUY, SELL из основного окна скрипта не будут приводить к совершению реальных сделок. Вместо этого сделки будут совершаться “в памяти”. Также будут выводиться метки совершенных сделок на график, если заполнен параметр “Идентификатор графика”. Стоп ордера также будут скрытыми. Этот режим будет полезен для проверки торговых идей в условиях максимально приближенных к реальным.
- Торговый объем - размер(объем) выставляемой лимитной заявки. Данная настройка также выведена в главное окно скрипта, для быстрого изменения значения.
- Отступ заявки по рынку - при подаче заявки по рынку необходимо указать цену, сдвинутую на число шагов от текущей, чтобы она гарантировано исполнилась. Данный параметр важен при торговле на срочном рынке, т.к. от цены заявки зависит расчет ГО. Также в моменты высокой волатильности данный параметр позволит отрегулировать отступ для рыночной заявки.
- Проверять лимиты - при подаче заявки проверить доступность денежных средств.
- Проверять лимиты цен - при подаче заявки проверить что цена заявки в допустимом диапазоне цен.
- Ожидание при сдвиге ордера (сек.) - если установлен стоп-ордер и пользователь сдвинул его на графике на новый ценовой уровень, то скрипт ждет его появления, прежде чем перевыставить новый ордер. Если пользователь просто случайно (по ошибке) снял его, то скрипт через указанной время выставит заново стоп ордер.
- Ожидание сигнала после ошибки (сек.) - Период ожидания (в сек.) обработки нового торгового сигнала в случае прошлой неудачной попытки. Если при обработке торгового сигнала была ошибка (недостаточно средств, отвергнутая заявка и т.д.), то следующий сигнал того же характера будет отработан по истечении периода ожидания
Раздел “ОТЛОЖЕННЫЙ ВХОД” содержит настройки:
- Отложенный вход - переключатель активации режима. Возможные значения:
- OFF - выключено
- BUY - сделка на покупку
- SELL - сделка на продажу
- Условие входа - выбор условия активации условия. Возможные значения:
-
=
- <=
-
- Уровень входа - уровень цена активации сделки
- Тип цены отступа от уровня входа. Возможные значения:
- % (процент) - процент
- Steps – шаги цены инструмента
- Pips - пункты цены инструмента
- RUR - рубли. Здесь и далее имеется ввиду сумма в рублях относительно позиции по инструменту. Допустим 100 рублей на всю позицию.
- Отступ от уровня входа - При активации условия будет установлен ордер по цене уровень + отступ в направлении сделки. Т.о. если необходимо войти по рынку, то необходимо задать большой положительный отступ. Отрицательный отступ смещает цену ордера против направления входа. Т.о. можно задать фиксированный уровень постановки лимитного ордера при активации условия. Параметр разрешено изменять при запущенном алгоритме. Изменение доступно через клавиши “стрелка влево” или “Стрелка вправо”
Раздел “НАСТРОЙКИ СТОПА” содержит настройки:
- Тип стоп-лосса. Возможные значения:
- Stop+Profit - вариант установки стоп-лосса и тейк-профита одной заявкой
- Stop - вариант установки стоп-лосса без указания информации по тейк-профиту
- Hidden - вариант установки стоп-лосса без физического выставления заявки на серверах брокера
- None - без установки стоп-лосса
- Тип цены стоп-лосса. Возможные значения:
- % (процент) - процент
- Steps – шаги цены инструмента
- Pips - пункты цены инструмента
- RUR - рубли. Здесь и далее имеется ввиду сумма в рублях относительно позиции по инструменту. Допустим 100 рублей на всю позицию.
- Price - конкретная цена
- Стоп-лосс - значение стоп-лосса в указанных единицах. Данная настройка также выведена в главное окно скрипта, для быстрого изменения значения стоп-лосса без открытия окна настроек.
- Тип проскальзывания (отступа) стоп-лосса. Возможные значения:
- % (процент) - процент
- Steps – шаги цены инструмента
- Pips - пункты цены инструмента
- Проскальзывание стопа в указанных единицах цены инструмента после активации стоп-лосса.
- Не изменять стоп при наращивании позиции - При наращивании позиции стоп ордер изменяется под новый объем и устанавливается по настройкам. Если уровень ордера был изменен (сдвинут), то можно зафиксировать текущий размер стопа и установить новый с этим размером от новой средней цены позиции или на том же уровне. Возможные значения:
- OFF - Выключено. При изменении позиции стоп-лосс будет установлен от новой средней цены позиции.
- SIZE - будет поддерживаться текущий размер стоп-лосса от новой средней цены позиции.
- VALUE - будет установлен стоп-ордер на том же уровне.
- Дисциплинированный стоп - настройка, запрещающая сдвинуть стоп. Если активирован этот режим, то любое изменение стопа приведет к его снятию и восстановлению состояния.
- Реверсивный стоп - Настройка, позволяющая развернуть позицию при срабатывании стопа. Важно - настройка не работает для Типа стоп-лосса = “Stop+Profit”
- Допустимое число реверсивных разоротов - Если задано число больше 0, то будет контролироваться число разворотов. По достижению лимита, настройка “Реверсивный стоп” отключается. При запуске-остановке счетчик сбрасывается.
- Реальный ордер после - Данная настройка позволяет изменить стоп-ордер с скрытого на реальный по достижении ценой заданного уровня. Работает только если выбран Тип стоп-лосса = “Hidden”
- Дата действия заявок типа стоп. Возможные значения:
- GTC - до истечения срока жизни инструмента (по факту 30 дней)
- Today - сегодня
- Конкретная дата
- Не искать заявки с комментарием - в процессе работы скрипт ищет установленные стоп-ордера. Если стоп-ордер будет содержать этот комментарий, то такой ордер не будет рассматриваться в процессе поиска.
- Не искать чужие заявки - Если данный режим выключен, то скрипт контролирует только свои стоп-ордера, с учетом введенного значения “Идентификатор скрипта”, который обязателен в этом режиме. В режиме “OFF” осуществляется поиск всех ордеров. Важно обеспечить уникальность параметра “Идентификатор скрипта”.
Модуль ТРИГГЕРНЫЙ СТОП
- Триггерный скрытый стоп - Режим стоп заявки, который активируется по событиям. Настройки триггерного стопа:
Режимы триггерного стопа:
- “Bar Close” - по закрытию бара. В этом режиме активация стопа происходит не по движению цена, а если бар закрылся выше (ниже) текущего стопа. Важно: данный режим возможен только если активирован тип стоп-лосса “Hidden.
- “MA” - по пересечению MA. Если очередной бар закрывается за MA, то происходит принудительное закрытие позиции. Для позиции ЛОНГ - закрытие ниже, для ШОРТ - выше.
- “MACD” - если MACD последнего закрытого бара изменяет тренд, то происходит принудительное закрытие позиции.
- “PSAR” - если Parabolic SAR последнего закрытого бара меняет направление, то происходит принудительное закрытие позиции.
- “OSC” - если значение осциллятора последнего закрытого бара пересекает уровень, то происходит принудительное закрытие позиции.
- “BOL” - если очередной бар пересекает канал BOL, то происходит принудительное закрытие позиции. Для позиции ЛОНГ - закрытие ниже нижней границы, для ШОРТ - выше верхней границы.
Общие настройки триггерного стопа:
- Поведение триггерного стопа, когда возникает триггерный сигнал. Возможные значения:
- Close - как только возникает сигнал по одному из алгоритмов, позиция будет закрыта.
-
Shift Stop - сдвинуть стоп за минимум максимум бара. Если цена пойдет дальше, то стоп сработает, если это было ложно движение, то позиция останется. -
Важно: Данная настройка работает только для режимов: EMA MACD RSI - Отступ стоп цены при сдвиге (шагов) - Если выбран режим поведения триггерного стопа “Shift Stop”, то данный параметр задает величину смещения относительно уровня в шагах цены для сдвига стоп-ордера. Для примера, при позиции ЛОНГ бар закрылся за линией EMA, выбран режим “Shift Stop”. Произойдет сдвиг стоп-ордера за минимум бара. При этом стоп-ордер будет установлен на уровень Low бара - сдвиг
- Интервал триггерного стопа - интервал баров для триггерного стопа.
Пример окна настройки алгоритма MA:
Можно указать вариант расчет 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
- FRAMA - Fractal Adaptive Moving Average
- SSMA - SuperSmoother filter Moving Average by John F. Ehlers
- LSMA - Least Squares MA
Пример окна настройки алгоритма MACD:
Варианты расчета тренда:
- MACD - линия MACD пересекает 0
- Signal - линия Signal пересекает 0
- MACD-Signal - линия Signal пересекает MACD
Пример окна настройки алгоритма OSC:
Допустимые методы расчета осциллятора:
- RSI - Relative strength index
- STOCH - Stochastic oscillator
- WRI - Williams % Range
- CCI - Commodity channel index
- EFI - Elder’s Force I
- CMO - Chande Momentum Oscillator
-
JRSX - Jurik Research Relative Strength Quality Index
- Условие пересечения для закрытия ЛОНГ - Если значение осциллятора последнего закрытого бара поднимется выше(опускается ниже) этого уровня, то происходит активация сетки Лонг. Вариант условия выбирается:
- <= - Пересечение уровня вниз
-
= - Пересечение уровня вверх
- Уровень для ЛОНГ - Если значение осциллятора последнего закрытого бара поднимется выше(опускается ниже) этого уровня, то происходит активация сетки Лонг.
- Условие пересечения для закрытия ШОРТ - Если значение осциллятора последнего закрытого бара поднимется выше(опускается ниже) этого уровня, то происходит активация сетки Шорт.
- <= - Пересечение уровня вниз
-
= - Пересечение уровня вверх
- Уровень для ШОРТ - Если значение осциллятора последнего закрытого бара поднимется выше(опускается ниже) этого уровня, то происходит активация сетки Шорт. Важно. Если выбраны условия и уровни таким образом, что сигнал - это когда значение поднимается выше нижнего уровня или опускается ниже верхнего уровня, то такой сигнал может детектироваться только в течении того бара, при котором происходило такое пересечение. Т.к. значение между уровнями не дает однозначеного ответа. Например, для ЛОНГ выбрано условие >= 30, для ШОРТ условие <= 70. Значение 50 находится между 30 и 70, и одновременно удовлетворяет обоим условиям. Поэтому только в момент пересечения можно понять какой сигнал был получен.
Модуль “АЛГОРИТМИЧЕСКИЙ СТОП”:
- Вариант расчета алгоритмического стоп-лосса. Вариант расчета алгоритмического стоп-лосса. Возможные значения:
- ATR - вариант установки стоп-лосса на уровень кратный ATR
- FRAC - Вариант установки стоп-лосса на уровень последнего не пробитого фрактала
- STD - стандартное отклонение
- P_RANGE - ценовой канал
При исполнении команды “Настроить алгоритмический стоп” появится окно настроек выбранного алгоритма. Пример окна настроек алгоритма ATR:
- ТФ расчета алгоритмического стоп-лосса - Выбор интервала ТФ для расчета алгоритмического стоп-лосса
- Размер стоп-лосса в ATR - Размер стоп-лосса выраженный в ATR.
- Мин. стоп-лосс - Если полученный размер стоп-лосса меньше заданного, то значение стоп-лосса определяется минимальным значением
- Макс. стоп-лосс - Если полученный размер стоп-лосса больше заданного, то значение стоп-лосса определяется максимальным значением
- Период расчета ATR.
Пример окна настроек алгоритма FRAC:
- Период расчета Фрактала. Необходимо задать нечетное значение.
- Отступ от фрактала - Отступ от найденного фрактала для формирования значения стоп-лосса
- Сдвигать стоп по новому фракталу - Осуществлять трейл стоп-ордера по последнему непробитому фракталу. При осуществлении сдвига по фракталу учитываются ограничения на макс.-мин. размер стопа-лосса.
Раздел “НАСТРОЙКИ ПРОФИТА” содержит настройки:
- Тип цены тейк-профита. Возможные значения:
- % (процент) - процент
- Steps – шаги цены инструмента
- Pips - пункты цены инструмента
- RUR - рубли
- Price - конкретная цена
- xStop - х кратный стоп-лоссу
- Тип тейк-профита. Возможные значения:
- Stop+Profit - вариант установки тейк-профита и тейк-профита одной заявкой
- Stop - вариант установки тейк-профита без указания информации по тейк-профиту
- Limit - вариант установки тейк-профита с использованием заявки типа “Лимитный ордер”
- Hidden - вариант установки тейк-профита без физического выставления заявки на серверах брокера
- None - без установки тейк-профита
- Тейк-профит - значение тейк-профита в указанных единицах. Данная настройка также выведена в главное окно скрипта, для быстрого изменения значения стоп-лосса без открытия окна настроек.
- Типы отступа и Защитного спреда для стоп-профит-ордера. Возможные значения:
- % (процент) - процент
- Steps – шаги цены инструмента
- Pips - пункты цены инструмента
- Отступ - значение отступа для тейк-профита в указанных единицах
- Защитный спред - значение спреда для тейк-профита в указанных единицах
- Многоступенчатый тейк-профит - признак указания нескольких тейк-профитов. Работает если тип стоп-лосса не указан как Stop+Profit.
- Тип многоступенчатого тейк-профита:
- Qty % - процентами от открытой позиции. В этом режиме указываются шаги тейк-профита с указанием процента закрываемой позиции и размера тейк-профита шага.
- Steps – шаг ступеней тейк-профита. В этом режиме размер тейк-профита - это значение в поле “Тейк-профит” основных настроек. А каждая последующая ступень будет установлена через указанный шаг а поле “Шаг ступеней тейк-профита”. Ступеней будет установлено столько сколько необходимо для покрытия всей открытой позиции. Количество на каждом шаге - это значение из поля “Количество на каждом шаге тейк-профита”.
- Шаг ступеней тейк-профита - для режима “Тип многоступенчатого тейк-профита” “Steps”. Значение шага ступеней тейк-профита в указанных единицах.
- Количество на каждом шаге тейк-профита (в лот) - для режима “Тип многоступенчатого тейк-профита” “Steps”.
- Настроить ступени тейк-профита - если включен режим “Многоступенчатый тейк-профит” и включен режима “Тип многоступенчатого тейк-профита” “Qty %”, то по этой команде откроется окно ввода значений тейк-профита.
В данном окне можно указать уровни тейк-профита в единицах, указанных в настройке “Тип цены тейк-профита”. Значения имеют тот же смысл что значение Тейк-профит в окне настроек. Если необходимо указать два тейк-профита в 75 и 100 шагов цены, то настройка “Тип цены тейк-профита” имеет значение “Steps”, а в строке вводим 75 в колонке “take_profit”. В колонке “qty (%)” указывается объем, который относится к этому тейк профиту. Допустим, на первом шаге мы хотим закрыть 30% от позиции. Тогда в поле вводится значение 30. Аналогично для второй строки. В приведенном выше примере будут установлены три тейк-профита на 75, 100 и 150 шагов цены. Первый и второй уровни - 30% от объема позиции. Т.о. вводятся все уровни тейк-профита. Если на последнем уровне необходимо закрыть остаток позиции, то для этого необходимо ввести в поле “qty (%)” значение 0.
Важно: сумма процентов уровней не должна превышать 100%. Также с помощью этой настройки можно ввести тейк-профит на часть позиции, не закрывая все позицию. Допустим только 50%. Остальная позиция не будет закрыта по тейк-профиту (а, допустим, по трейл-стопу). Для этого достаточно ввести одну строку с указанием уровня тейк-профита и необходимым объемом, допустим 50%.
- Дата действия заявок типа стоп. Возможные значения:
- GTC - до истечения срока жизни инструмента (по факту 30 дней)
- Today - сегодня
- Конкретная дата
- Не изменять тейк-профит при наращивании позиции - При наращивании позиции тейк-профит ордер изменяется под новый объем и устанавливается по настройкам. Если уровень ордера был изменен (сдвинут), то можно зафиксировать текущий размер тейк-профит и установить новый с этим размером от новой средней цены позиции или на том же уровне. Возможные значения:
- OFF - Выключено. При изменении позиции тейк-профит будет установлен от новой средней цены позиции.
- SIZE - будет поддерживаться текущий размер тейк-профит от новой средней цены позиции.
- VALUE - будет установлен тейк-профит ордер на том же уровне.
- Реверсивный тейк-профит - Настройка, позволяющая развернуть позицию при срабатывании тейк-профита. Если активирован многоступенчатый тейк-профит, то разворот произойдет при срабатывании последнего уровня. Важно - настройка не работает для Типа стоп-лосса = “Stop+Profit”.
- Допустимое число реверсивных разоротов - Если задано число больше 0, то будет контролироваться число разворотов. По достижению лимита, настройка “Реверсивный тейк-профит” отключается. При запуске-остановке счетчик сбрасывается.
- Не искать заявки с комментарием - в процессе работы скрипт ищет установленные профит-ордера. Если стоп-ордер будет содержать этот комментарий, то такой ордер не будет рассматриваться в процессе поиска.
- Не искать чужие заявки - Если данный режим выключен, то скрипт контролирует только свои профит-ордера, с учетом введенного значения “Идентификатор скрипта”, который обязателен в этом режиме. В режиме “OFF” осуществляется поиск всех ордеров. Важно обеспечить уникальность параметра “Идентификатор скрипта”.
Раздел “НАСТРОЙКИ ТРЕЙЛА” содержит настройки:
- Трейлить стоп - переключатель режима. Если выключено, то осуществляется только сдвиг по времени и безубытку.
- Тип цены трейлинга стоп-лосса. Возможные значения:
- % (процент) - процент
- Steps – шаги цены инструмента
- Pips - пункты цены инструмента
- RUR - рубли
- Перевести в безубыток после указанного значения минут. Данная настройка позволяет переводить стоп-лосс в значение средней цены позиции, если не происходило движение цены.
- Перевести в безубыток после движения цены в указанных единицах.
- Перевести в безубыток после ТП1 - если включен режим “Многоступенчатый тейк-профит”, то включение данной настройки позволит перевести в безубыток стоп-лосс при исполнении первого уровня тейк-профита.
- Сдвиг безубытка в указанных единицах - сдвиг стопа при переносе в безубыток. Стоп будет установлен по цене позиции выше (ниже) на указанный размер сдвига.
- Начать трейл после - Начало трейлинга стоп-лосса в указанных единицах. Если указан данный параметр, то активация трейлинга произойдет только если цена прошла указанный интервал в сторону сделки.
- Сдвигать стоп по факту активации трейла - Если включено, то при активации трейла по достижению точки начала трейла будет сдвинут стоп. Если выключено, то сдвиг стоп-ордера начнется только после того как цена продет еще размер заданного шага трейла.
- Поддерживать размер стопа при трейлинге - Если включено, то при трейлинге будет поддерживаться заданный в настройках размер стоп-лосса. Если выключено, то стоп-лосс будет просто сдвигаться на размер пройденного шага цены. Т.о. если был изменен стоп-ордер на графике, то размер стоп-лосса останется измененным.
- Шаг трейлинга стоп-лосса в указанных единицах. По мере движения цены стоп-лосс будет двигаться за ценой. Если цена прошла в сторону открытой сделки больше и равной шагу трейлинга, то стоп-лосс сдвинется. Т.о. если необходимо обеспечить постоянный сдвиг стоп-лосса за ценой, необходимо установить размер шага трейлинга = 1 шаг (пункт). Если шаг больше 1, то цена должна пройти данный интервал, чтобы стоп был сдвинут. Это позволит уменьшить число транзакций по сдвигу стоп-ордера.
- Временной трейл стоп-лосса - проверяется цена с указанным интервалом. Если цена прошла в сторону открытой сделки и лучше чем при прошлой проверке, то стоп-лосс сдвинется на пройденное расстояние от прошлой проверки. Т.о. стоп сдвигается не просто по факту пройденного расстояния, а по факту пройденного расстояния именно в момент проверки.
- Интервал трейла в минутах.
- Скользящий стоп в указанных единицах - размер стопа после активации трейлинга. Когда трейлинг активировался, размер стоп-лосс будет рассчитан с использованием данного параметра. Если указано значение 0, то размер стопа будет равен изначальному размеру стоп-лосса.
- Интервал проверки цены (сек.) - данный параметр позволяет установить период проверки текущей цены инструмента. Если установлено значение 0 (значение по умолчанию), то цена будет контролироваться постоянно, при любом движении цены будет происходить контроль трейлинга. Если установить значение отличное от 0, то цена инструмента будет контролироваться с указанной периодичностью. Такая настройка позволит исключить из контроля трейлинга движения цены прошедшие между проверками. Это в каких-то случаях позволит исключить необоснованные сдвиги стоп-ордера при резких возвратных движениях цены, которые в обычном режиме привели бы к сдвигу стоп-ордера и закрытию позиции при возвратном движении цены.
Раздел “КОНТРОЛЬ СДЕЛОК” содержит настройки
- Комиссия - Для более точного расчета прибыли можно задать комиссию за контракт (для срочного рынка) или за объем для фондовой секции.
- Для срочного рынка задается в валюте цены, допустим 0.5 рублей.
- Для фондовой секции задается в процентах за объем сделки.
- Лимит по прибыли по достижению которого алгоритм перейдет в режим ожидания.
- Лимит по убытку по достижению которого алгоритм перейдет в режим ожидания.
- Лимит количества убыточных сделок по достижению которого алгоритм перейдет в режим ожидания.
- Лимит количества убыточных сделок подряд по достижению которого алгоритм перейдет в режим ожидания.
- Строгий контроль лимитов - При активации режима, если уже был превышен один из заданных лимитов, любая новая сделка будет автоматически закрыта, даже если строка не находится в состоянии Run.
- Команда: Сбросить накопленные данные по прибыли, сделкам. После сброса скрипт будет отслеживать лимиты заново.
- Автоочистка данных по прибыли - Режим автоматической очистки данных прибыли при наступлении нового торгового дня.
Возможные значения:
- OFF - Выключено
- DAY - Каждый новый торговый день
- WEEK - Каждую новую торговую неделю
- Сохранять журнал сделок - если включено, то будут сохраняться все сделки в файлы для каждого инструмента.
- Открыть сделки - команда, открывающая окно закрытых сделок по инструменту.
Контроль лимитов прибыли, убытка, сделок рекомендуется использовать при активированных настройках реверсивный стоп (профит). В этом режиме скрипт сам разворачивает позицию, т.о. контроль лимитов остановит скрипт по их достижению. В ручном режиме торговли контроль лимитов может остановит скрипт, сигнализируя о их достижении. Но не сможет предотвратить открытые сделки руками.
В скрипте (и в окне настроек) действуют следующие правила редактирования значения параметров:
- Все поля, содержащие в своем значении текст “[…]” - это команды, выбираемые указателем (двойное нажатие). При этом двойное нажатие левой клавишей указателя - это изменение значение вправо по списку значений. Двойное нажатие правой клавишей указателя - это изменение значение влево по списку значений. Для примера, набор значений {‘Stop+Profit’, ‘Stop’, ‘Hidden’, ‘None’} при выборе левой клавишей мы переходим слева направо по значениям. И обратно для двойного нажатия левой клавишей указателя.
- Все редактируемые (числовые, строковые) поля окрашиваются в желтый цвет. Чтобы начать редактировать поле необходимо выделить необходимое поле. Далее можно привычными командами с клавиатуры ввести необходимое значение показателя. При этом, если это необходимо, удалить старое значение.
- Также числовые поля и поля, содержащие дату (Дата действия заявок, автоматический запуск и остановка), можно изменять с помощью клавиш “стрелка влево” - уменьшить значение, “стрелка вправо” - увеличить значение. Тем самым можно быстро изменить значение, не вводя его с клавиатуры.
- Ввод значения “прямо” с клавиатуры возможно производить только при остановленной торговле по инструменту. Это ограничение введено т.к. при вводе значения можно допустить ошибку ввода.
- Изменение значения через плавное изменение клавишами “стрелка влево” и “стрелка вправо” возможны при работающем роботе, т.к. при таком способе ввода исключается синтаксическая ошибка.
- Часть команд настроек “[…]” доступна при работающем скрипте по инструменту. Допустим, для примера, можно включить и остановить трейлинг стоп-лосса. Можно изменить тип стоп-лосса, тейк-профита при этом произойдет перевыставление ордеров в соответствии с указанными настройками. Допустим, изменив тип тейк-профита с стопа на лимитный ордер, произойдет его перевыставление. Если строка инструмента находится в остановленном состояния, то реакция на изменение настроек произойдет только после запуска торговли по инструменту.
- В поле “Message” выводятся сообщения по строке алгоритма. Если дважды нажать правой клавишей указателя по полю в стоке, то откроется дополнительное окно всех ранее выведенных сообщений по строке.
Скрипт поддерживает горячие клавиши:
- Остановить все строки - Shift + 1
- Запустить все строки - Shift + 2
- Сдвинуть строку вниз - Shift + “-“
- Сдвинуть строку вверх - Shift + “+”
- Скопировать строку - Sift + C. Для корректной работы необходимо выбрать строку не в поле выбора инструмента.
Если выполнить команду “Калькулятор инструмента” из окна настроек или команду “+/-“ из основного окна, то откроется окно калькулятора по инструменту:
В этом окне можно рассчитать взаимные значения между введенными параметрами. Также выводится справочная информация по инструменту.
Также скрипт поддерживает отправку сообщений в Телеграм, E-Mail, реализованную через библиотеку