Торговые настройки агента
Last updated
Last updated
Получить доступ к настройкам агента можно в окне Агенты. Окно Агенты можно открыть, выбрав пункт Главного меню: Торговля - Агенты.
Выполнить настройку агента можно как во время, так и после его создания.
Для настройки уже созданного агента воспользуйтесь кнопками быстрого доступа
Кнопки быстрого доступа:
Кнопка с изображением списка открывает вкладку общих настроек агента
Кнопка с изображением шестеренки открывает торговые настройки агента
После создания агента открыть данное меню можно нажав на значок списка в колонке Агент
В меню Общие можно выбрать нужный скрипт из списка для подключения к агенту, указать источник торговых данных, а так же указать тип управления лимитами.
Для того, чтобы внести изменения в общие настройки агента необходимо остановить работу самого агента. Убедитесь, что кнопка в столбце Состояние находится в отключеном (сером) состоянии
Колонки | Описание |
---|---|
Скрипт | Выбор скрипта из списка для создания агента. |
Торговое имя (необязательное поле) | Вы можете дать дополнительное имя агенту для удобства отслеживания процессов. Данное поле не является обязательным. Изменение или присвоение торгового имени приведет к потере торговой статистики агента, если агент уже совершал сделки или выставлял заявки. |
Тип управления лимитами | Выбор способа управления средствами, доступными агенту. Возможные значения: "Управляется агентом", "В денежном выражении", "В лотах", "В процентах от портфеля", "Макс. процент от портфеля" |
Значение лимита | Значение лимита средств, выставляемое в соответствии со способом определения лимита в поле "Тип управления лимитами". |
Источники | Открывает окно выбора инструментов. |
Расчет количества лотов в заявке:
В лотах. Число в поле "Значение лимита" умножается на число в блоке открытия позиции;
Управляется агентом. Число в блоке открытия позиции является количество лотов в заявке. Поле "Значение лимита" игнорируется;
В денежном выражении. Число в поле "Значение лимита" делится на текущую цену инструмента и умножается на число в блоке открытия позиции;
В процентах от портфеля. Число в поле "Значение лимита" умножается на количество денег на счету и делится на текущую цену инструмента и умножается на число в блоке открытия позиции;
Макс. процент от портфеля. При подаче заявки определяется объем свободных денег и заявка идет без превышения этой суммы. ("Макс. процент от портфеля", отличается тем, что если свободных денег в портфеле не хватает, то будет куплено бумаг на меньшую сумму.)
При нажатии на значок кошелька в строке Источники можно открыть меню смены поставщика в источниках. Данная опция может быть полезна, если вы используете несколько источников в вашем скрипте и вам нужно сменить счет в одном из них.
Кнопка "+ Добавить инструмент" позволяет добавить ещё один источник данных в агенте. Один из вариантов использования кнопки:
Если ваш поставщик ограничивает объем загружаемых данных, например несколькими месяцами, вы можете скачать тики за больший период времени в виде текстового файла и добавить эти данные в виде второго источника.
Торговые настройки агента так же как и основные настройки доступны при создании нового агента, а так же окно Торговых настроек можно открыть нажав на значок шестеренки в колонке Агент
Настройки | Описание |
---|---|
Исполнять входы сразу | Параметр определяющий возможность автоматического входа в позицию без ручного подтверждения. Команда входа будет выполнена только если сигнал входа был сформирован на последнем закрытом баре. |
Исполнять выходы сразу | Параметр определяющий возможность автоматического выхода из позиции без ручного подтверждения. Команда выхода будет выполнена двумя способами в зависимости от настройки автозакрытия. В случае если параметр автозакрытия равен нулю, команда будет выполнена с формированием цены по последнему закрытому бару, в противном случае команда будет выполняться по рынку в соответствии с настройками автозакрытия. |
Автооткрытие (баров) | Количество баров, в течение которого пропущенный вход будет выполнен автоматически по рынку, если выбран параметр "Исполнять входы сразу". Далее будет выдано сообщение о пропущенном входе и необходимости ручного вмешательства. Следует помнить, что если выставить большой интервал, то открытие позиции может произойти слишком поздно и цена входа будет сильно отличаться от ожидаемой. Если =0, то автооткрытие выключено Внимание! "Изменить По ...". Для блоков изменения позиции автооткрытие не работает! |
Блок. "по рынку" с фикс. ценой для автооткрытия | Блокирует опцию "по рынку" с фиксированной ценой для автооткрытия и распространяется на Менеджер команд. |
Автозакрытие (баров) | Количество баров, в течение которого пропущенный выход будет закрыт автоматически по рынку, если выбран параметр "Исполнять выходы сразу". Далее, если не хватило установленного кол-ва баров, будет выдано сообщение о пропущенном выходе и необходимости ручного вмешательства. Если =0, то автозакрытие выключено Внимание! "Изменить По". Для блоков изменения позиции автозакрытие не работает ! Автозакрытие при использовании "Изменить По" срабатывает только если была попытка закрыть позицию в 0 и не получилось. |
Блок. "по рынку" с фикс. ценой для автозакрытия | Блокирует опцию "по рынку" с фиксированной ценой для автозакрытия и распространяется на Менеджер команд. |
Игнорировать позиции вне истории | Игнорирует (не учитывает) позиции, которые были закрыты вне запрошенных исторических данных. |
Увед. о проп. входах | Уведомляет о пропущенных входах в позицию. |
Не открывать, если есть пропуск выхода | Не открывает новые позиции, если существует ошибка "пропущен выход из позиции". |
Не уведом. пересчет | Не уведомляет о пересчете скрипта. |
Виртуальная позиция макс. баров | Определяет, в течение какого периода времени информировать о пропущенной позиции, прежде чем она исчезнет (0 - бесконечно, любое другое положительное значение равно количеству свечей). |
Игнорировать сигнал выхода не на посл. баре | Игнорирует сигнал выхода из позиции, созданный агентом не на последнем (текущем) баре. |
Ждать исполнения выхода | Количество свечей, в течение которых программа будет ждать исполнения лимитной заявки выхода из позиции. Затем заявка будет отменена. Настройка работает для активной заявки(цена инструмента касалась цены заявки, но не была исполнена из-за недостатка ликвидности) |
Ждать исполнения входа | Количество свечей, в течение которых программа будет ждать исполнения лимитной заявки входа в позицию. Затем заявка будет отменена. Настройка работает для активной заявки(цена инструмента касалась цены заявки, но не была исполнена из-за недостатка ликвидности) |
Учитывать комиссию | Учитывать комиссию из заявок в расчете профита. Если брокер присылает комиссию в сделках, то комиссия будет учитываться в результатах торговли агента. |
Запускает автоматическую торговлю. Если данная опция отключена сигналы будут поступать только в Менеджер команд для ручного исполнения.
Выполняет автоматическое исполнение по рынку, если за указанное количество баров в пункте меню Ждать исполнение (активируется при касании цены) заявка не исполнилась или если был сбой в интернет соединении. Собственно, можно ставить и большее значение, чем 2 и 3, главное, чтобы оно было не больше, чем загруженных в скрипт баров. Посмотреть можно в окне "Лог" агента или скрипта. При компиляции или пересчете пишется количество баров.
При торговле, в отсутствии загруженной истории, заявки в агент рисуются на первом баре агента. Флаг запрещает рисование этих сделок. Настраивайте свойства скрипта таким образом, чтобы как минимум агент видел последние вход и выход из позиции. Если агент "не смотрит" историю своих сделок для выставления новых заявок (не считает например среднюю цену входа всех сделок), то флаг можно поставить. Если нужна история, то ее лучше загрузить больше. Ограничив в свойствах скрипта параметром МаксБаров.
Если стоит флаг, то при пропуске сигнала входа в позицию, будет отправлено оповещение в сообщениях или на почте (если настроен менеджер уведомлений).
Флаг запрещает открытие новых позиций, если был пропущен сигнал на выход из позиции.
Флаг запрещает вывод информации в сообщения и почту, при пересчете агента. Как правило, используется для очень быстрых скриптов, где не исполнение заявок обусловлено ликвидностью на рынке. Это очень важный флаг для службы поддержки. Если его поставить, то пересчеты агента не записываются в лог. Ставя этот флаг, Вы понимаете, что бессмысленно разбирать заявки агента, который их выставляет сотнями в день. Какие из них сработали, а какие нет, он посчитает сам, выставит недостающее.
Регулирует количество баров, сколько действует последний насчитанный сигнал в истории. Например, если поставить 10, а последний сигнал был 11 баров назад, сигнал пропадет с графика и в Менеджере команд (даже при пропуске входа), и агент будет насчитывать более "свежий" сигнал.
Флаг действует подобно настройке "Виртуальная позиция, макс. бар" но работает только для выхода из позиции и только на один бар. Т.е. поставив этот флаг, Вы ожидаете, что агент будет ставить каждую заявку на выход из позиции только на один бар. На следующем баре, если сигнал из скрипта продолжается, заявка будет продолжать стоять. Если изменится цена в заявке, заявка изменится. Но как только в агенте пропадет сигнал на выставление, заявка будет снята, даже если была активной ("Активная" - значит цена на рынке коснулась заявки, но не хватило ликвидности для исполнения). Как правило, флаг используется для скриптов, выставляющих на выход только тейкпрофиты, но может использоваться и для других целей, главное понять механизм. Т.е. при данном флаге ни о каком Автозакрытии или Ожидания исполнения не может быть и речи.
Работает только с условными и лимитными заявками. Включается в том случае, если текущая цена коснулась цены заявки, но не исполнилась. Количество баров, в течении которых заявка будет продолжать стоять в очереди заявок. По истечении количества баров, заявка просто снимется. Настраивать данный параметр необходимо совместно с "Автозакрытием/открытием". Если автооткрытие/автозакрытие больше, чем Ждать исполнения, то после снятия неисполненной заявки, пойдет замещающая заявка "по рынку". Если "авто" меньше, чем "ждать", то заявка просто снимется и агент будет насчитывать следующий сигнал. Флаг распространяется и на заявки, на которые действует флаг "по рынку с фикс ценой".
Учитывать ли комиссию, приходящую от брокера (не все брокеры присылают комиссию в сделках). Не все инструменты можно пересчитать (например, для фьючерсного рынка Moex размер лота всегда равен 1) поэтому комиссия может быть сильно завышена, по отношению к графику дохода. Когда Вы видите, что комиссия завышена, флаг не ставить, это исключит комиссию из расчета дохода. Приходит ли комиссия в сделках от брокера, можно посмотреть в таблице "Свои сделки".
Настройки | Описание |
---|---|
Проскальз. в шагах | Размер проскальзывания в шагах цены инструмента, которое будет передаваться в заявку, создаваемую агентом. Заявка типа "По рынку" не учитывает настройки проскальзывания и выполняется по первой предложенной цене. Внимание! Настройки проскальзывания суммируются. |
Проскальз. в % | Размер проскальзывания в процентах, которое будет передаваться в заявку, создаваемую агентом. |
Take-profit без проскальзывания | Заявка тейк-профит создается не условной, а лимитной (но без проскальзывания). |
Открытие лимитными заявками | Для открытия позиции программа создает лимитные заявки без проскальзывания. |
"По рынку" с фикс. ценой | Заявка по рынку создается не по текущей цене, а по цене открытия бара (как при расчетах) +/- проскальзывание если выбран "Интервал+сделка". Eсли выбран режим пересчета "Интервал", то берется цена закрытия последней свечи. |
"Плохие" заявки по рынку | Условные заявки закрытия позиции с ценой хуже рынка выставляются как рыночные. В случае появления сообщения: "Условная заявка по сигналу '{0}' может не сработать, т.к. текущая цена на рынке {1} (Цена условия {2})! заявка уходит как рыночная, а не как условная. |
Экспирация заявок, дни | Позволяет передать брокеру в условной заявке время экспирации в днях. По умолчанию программа условные заявки выставляет на два дня. Рекомендуется использовать при работе с большими таймфреймами.(не касается криптовалютных рынков) |
Работает только для условных заявок! Для остальных типов заявок проскальзывание не нужно. В торговых настройках проскальзывание задается для всего скрипта, оба проскальзывания складываются. Если поставить и в процентах и в шагах цены, оба проскальзывания суммируются. Данное проскальзывание имеет меньший приоритет, чем проскальзывание непосредственно в блоке входа и/или выхода из позиции (устанавливается в абсолютных значениях). Если в определенном блоке входа стоит 5 пунктов, а в общем проскальзывании стоит 1%, то для заявок этого блока входа будет браться 5 пунктов, а для всего остального скрипта 1%.
По умолчанию блок "Тейк-профит" выставляет условную заявку! Данный флаг, меняет тип заявки на "Лимитную". Следует помнить, что для тех поставщиков данных, у которых есть "связанные заявки" флаг их выключает. И между стопом и профитом на каждом пересчете программой будет выбираться только одна заявка, цена которой в данный момент ближе к текущей цене.
Флаг специально для блоков входа в позицию "Если больше/если меньше". По умолчанию данные блоки для выставления условных заявок. Если стоит флаг, то тип заявок меняется на "Лимитные". Советуем использовать "Открытие позиции лимитной ценой" для реальной торговли.
Флаг специально создан для блоков "По рынку", меняет тип заявок с "По рынку" на "Лимитную", скорее "условно лимитную". Заявка будет выставляться с ценой закрытия прошлого бара с учетом проскальзывания. Флаг действует на все сигналы агента, включая Автооткрытие и Автозакрытие, сигналы в менеджере команд. Здесь есть один момент. Если в лаборатории стоит пересчет "Интервал + сделка", то заявка будет выставляться с ценой Открытия текущего бара. Не используйте с поставщиком данных Smartcom!, в данном поставщике отсутствует такая возможность, заявки будут выставляться с неверными ценами.
Работает для условных заявок закрытия позиции. Выставляет рыночные заявки, вместо лимитных заявок. Также работает для "Тейк-профит без проскальзывания", так как сначала проверяется, что цена плохая, только потом работает флаг "Тейк-профит без проскальзывания". См. Алгоритм исполнения сигналов.
Пояснение на примере заявки стоп-лосс: Стоп-лосс это условная заявка. Когда цена коснется цены условия она преобразуется в лимитную заявку с ценой условия "+- проскальзывание". Так как стоп-лосс меняется ступенчато, на очередном пересчете цена условия может оказаться сильно хуже рынка сразу же на открытии свечи. Это и есть «плохая» заявка. То есть, у вас длинная позиция, цена сейчас 100, а вы подаете заявку закрыть если будет меньше 120. Или у вас короткая позиция, цена 100, а вы хотите закрыть позицию, если цена будет больше 80. Такая заявка не исполнится пока цена не вернется к цене условия "+- проскальзывание". Если включена опция плохие заявки по рынку, то вместо лимитной заявки выставится рыночная. Для стоп-лосс короткой позиции соответственно рыночная заявка на покупку, а для стоп-лосс длинной позиции рыночная заявка на продажу. Следовательно, сделки произойдут по лучшим предложениям покупки и продажи, которые будут в очереди заявок на момент пересчета. Как правило, у брокеров данный механизм работает автоматически, но у некоторых брокеров (например Финам) его нет, в данном случае рекомендуется ставить флаг.
Под событиями понимаются операции брокера или биржи с заявкой при исполнении транзакции или общие события относящиеся к программе.
Подробнее о Событиях в статье Пересчеты по событиям
Наименование события | Описание |
---|---|
Заявка отклонена | Брокер (или биржа) отклонил заявку |
Заявка выполнена полностью | На рынке произошли сделки, удовлетворяющие весь запрошенный объем в заявке |
Заявка отменена | На пересчете агента, скрипт рассчитал, что сигнала нет, заявку необходимо отменить. Программа подает брокеру команду. Данное событие является результатом ответа от брокера "Заявка отменена". |
Изменение количества в заявке | В Агенте на основном пересчете скрипт рассчитал изменение количества лотов, которое отличается от предыдущего. |
Открытие позиции | Сигнал исполнен, программа получила номера: Транзакция, Заявка, Сделки. Все номера привязаны к сигналу агента через портфельный номер. |
Закрытие позиции | Сигнал на закрытие позиции исполнен. Портфельный номер открытия позиции имеет исполненный портфельный номер закрытия позиции. |
Торговля начата | Пришел статус с биржи, что торги открыты. Чаще всего в программе используется первая сделка рынка. Начало торговли определяется первой котировкой текущего дня, так-как почти всегда это быстрее, чем статус торгов, который присылает биржа по инструменту. |
Торговля остановлена | Пришел статус с биржи, что торги остановлены. |
Бар закрылся, но нет сделок | Бар закрылся по серверному времени, но новых сделок нет |
Ограничение претрейда | Сработал один из фильтров Управления рисками. Торговля-Управление рисками. |
В случае если активирован параметр "Ждать исполнения выхода", то дозакрытие позиции происходит в течение количества свечей, указанном в данном параметре. Затем происходит дозакрытие позиции по рынку в течение количества свечей, указанном в параметре "Автозакрытие (баров)". Количество баров в "Автозакрытие (баров)" должно быть больше, чем в "Ждать исполнения выхода". Если значение в параметре "Автозакрытие (баров)" меньше, чем в "Ждать исполнения выхода" или равно ему, то автозакрытие не срабатывает.
В случае если активирован параметр "Ждать исполнения входа", то добор позиции происходит в течение количества свечей, указанном в данном параметре. Затем происходит добор позиции по рынку в течение количества свечей указанном в параметре "Автооткрытие (баров)", кроме случая использования блоков "Изменить По". Количество баров в "Автоооткрытие (баров)" должно быть больше, чем в "Ждать исполнения входа". Если значение в параметре "Автоооткрытие (баров)" меньше, чем в "Ждать исполнения входа" или равно ему, то автооткрытие не срабатывает.
Вопрос:
Если на закрытие позиции стоит 2 лота в лимитной заявке. При первом пересчете закрылся только 1 лот. Будет ли далее при наличии сигнала оставаться или перевыставляться заявка на оставшийся 1 лот?
Ответ:
Будет оставаться заявка на той же цене, пока действует Ждать исполнения выхода из позиции.
Для реализации перестановки лимитной заявки на закрытие позиции, можно использовать блоки Количество и Обновляемое значение, вместе с настройкой "Игнорировать сигнал выхода не на последнем баре".
Если стоит Автозакрытие, закрытие остатка позиции произойдет автоматически по рынку. Если ждать исполнения выхода меньше Автозакрытия - как только закончится Ждать исполнения.
Все то же самое касается и "донабора" лотов в позицию, в соответствии с наименованиями настроек. Для Открытия позиции действует настройка "Виртуальная позиция макс.баров". Вопрос:
Если НЕ выставлено Ждать исполнения и НЕ выставлено Автооткрытие и параметр Виртуальная позиция = 0.
Выставили лимитную заявку на 10 лотов, исполнили 5. Сигнал на один бар. Как поведет себя программа?
Программа снимет остаток и без сообщений, будет вести 5 лотов, алгоритм продолжит исполняться с набранным количеством лотов.
Вопрос:
"Как быть в случае, если у меня моя точка входа ушла за пределы истории. Т.е. история загружается за последние два дня, а вход был 4 дня назад. Как в этом случае себя поведет скрипт или агент? Будет ли эта сделка закрыта по условию, описанному в скрипте или расчет будет вестись некорректно и таких сделок быть не должно? "
Если нет бара входа, то могут и часто неизвестны данные этого бара. Нужно поставить такое количество баров, чтобы в истории всегда был виден последний вход в позицию.
Ответ:
Расчет МОЖЕТ вестись некорректно.
Вопрос:
"Ситуация 2: скрипт делает несколько последовательных входов, часть из которых уходит за пределы истории. Как в этом случае будут закрываться ушедшие за пределы истории позиции? Спасибо заранее"
МОГУТ закрываться некорректно. Могут быть вызваны сигналы, которых не могло быть при загрузке всей истории. Больше зависит от расчетных величин, рассчитывающих выход из позиции и настроек. Например, если стоит в торговых настройках "Игнорировать позиции вне истории"
Рекомендация: Поставить такое количество баров, чтобы не закрытые входа в позицию были на своих барах и не сдвигались на первый бар загруженной истории.