Иногда необходимо выполнить сделки для агента вручную, не используя функции "Менеджера команд". В данной статье будут рассмотрены варианты создания, добавления и закрытия позиций агента с использованием Менеджера заявок.
Допустим, у Вас есть запущенный агент, который вошел в позицию. Открытой позиции был присвоен номер заявки 458148370
Если вы захотите добавить к открытой позиции ещё 1 лот можно воспользоваться Менеджером заявок.
Рассмотрим следующие варианты открытия позиции:
Используя Ручной режим вы создадите ещё одну заявку, которая никак не будет связана с агентом и он не будет вести эту заявку. В дальнейшем привязать открытую таким способом позицию к агенту можно будет только через опцию Перенести заявку в окне Свои заявки (или в окне Свои сделки).
Выберите созданную вручную заявку. Нажмите на кнопку Перенести заявку. В открывшемся окне выберите нужный агент.
В строке Сигнал введите название сигнала в следующем формате:
Сигнал$Change$НомерЗаявкиАгента
Где:
Сигнал - Имя сигнала (имя блока открытия / закрытия позиции в редакторе)
$Change$ - Служебное слово, используемое для изменения позиции. Необходимо использовать с символами "$"
НомерЗаявкиАгента - Номер заявки, созданной агентом. Заявка, к которой необходимо добавить позицию
В нашем случае получилось: LE$Change$458148370
Команду Сигнал$Change$НомерЗаявкиАгента можно использовать как для увеличения, так и для уменьшения количества лотов в позиции, ведомой агентом
Сохраните внесенные изменения, нажав на кнопку ОК. Далее необходимо перезапустить агент и убедиться, что новая заявка была добавлена к заявке, сделанной агентом. Это можно сделать открыв агент и перейдя на вкладку Графика. На графике новая заявка будет связана со старой. Также проверьте вкладку Сделки.
Для того чтобы изменить существующую позицию напрямую из Менеджера заявок, нужно выбрать из списка агент, к которому необходимо привязать новую заявку. При этом поле Примечание изменится на поле Сигнал.
В поле Сигнал введите название сигнала в следующем формате:
Сигнал$Change$НомерЗаявкиАгента
Где:
Сигнал - Имя сигнала (имя блока открытия / закрытия позиции в редакторе), по которому ведется позиция (для других случаев, абсолютно любой сигнал можно написать, он просто будет виден в агенте, даже если такого сигнала в агенте нет.)
$Change$ - Служебное слово, используемое для изменения позиции. Необходимо использовать с символами "$"
НомерЗаявкиАгента - Номер заявки, созданной агентом. Заявка, к которой необходимо добавить позицию
В нашем случае получилось: LE$Change$458148370
Команду Сигнал$Change$НомерЗаявкиАгента можно использовать как для увеличения, так и для уменьшения количества лотов в позиции, ведомой агентом
Если необходимо Закрыть существующую позицию, нужно выбрать из списка агент, к которому необходимо привязать новую заявку. При этом поле Примечание изменится на поле Сигнал.
В поле Сигнал введите название сигнала в следующем формате:
Сигнал$Close$НомерЗаявкиАгента
Где:
Сигнал - Имя сигнала (имя блока открытия / закрытия позиции в редакторе), по которому ведется позиция (для других случаев, абсолютно любой сигнал можно написать, он просто будет виден в агенте, даже если такого сигнала в агенте нет.)
$Close$ - Служебное слово, используемое для закрытия позиции. Необходимо использовать с символами "$"
НомерЗаявкиАгента - Номер заявки на открытие позиции, которую необходимо закрыть. Заявка, созданная агентом. Посмотреть номер быстро, можно на графике агента, наведя курсор мыши на бар с сигналом входа. Номер указан в круглых скобках. Если номер отсутствует, это виртуальная позиция.
В нашем случае получилось: LT$Close$458740357
Количество лотов в заявке на закрытие позиции должно совпадать с текущей позицией, иначе агент выдаст сообщение о частичном исполнении и при определенных торговых настройках может выдать пропуск выхода из позиции.
Убедиться, что заявка на закрытие позиции связана с заявкой на открытие можно в агенте на вкладке Графика. Также проверьте вкладку Сделки.
Вы можете открыть ещё одну позицию параллельно уже имеющейся позиции в агенте, с тем же самым сигналом.
Например, у вас есть запущенный агент, который уже вошел в позицию, либо сигнал в уже был получен, но вход в позицию ещё не был выполнен. В Менеджере заявок выберите интересующий вас агент из списка. В поле Сигнал введите имя название сигнала на открытие позиции. Выполните покупку.
Например, Агентом BinanceAgent ранее была выполнена покупка одного лота по сигналу LE. В менеджере заявок была выполнена покупка одного лота по рыночной цене с указанием сигнала LE. В итоге агент BinanceAgent будет вести 2 открытых позиции с открытых одним и тем же сигналом.
Программа воспримет именно как открытие новой позиции, даже если позиция с таким именем уже есть. Встроенный функционал в менеджере заявок, по умолчанию, делает именно это. С такой привязкой агент будет выставлять несколько заявок (для каждой такой позиции один сигнал) на закрытия этих позиций, если не использовать комментарий $Change$ или комментарий $Close$.
Можно заведомо сделать в агенте доп.кнопки на выполнение различных команд: К каждому блоку входа прикрепите по блоку ИзменитьПо Добавьте константу, прикрепите ее к изменитьПо Добавьте Логическую константу так же свяжите с блоком ИзменитьПо Добавьте блок Контрольная Панель На контрольную панель выведите константу и логическую константу Настройте контрольную панель.(при настройке у блока логичКонст. включите "Пересчитывать") Пример: 2MA_ControlPanelChangeQt.tscript Теперь в самом агенте есть Управление количеством лотов прямо в позиции, сигнал на изменения которого можно давать через кнопку, прямо из агента. Количество, именно такое, какое должно быть в позиции, если поставить 0, то позиция закроется. Если сигналов на открытие нет, то просто будет закрыта, если продолжает действовать сигнал на открытие, то откроется на пересчете и снова закроется, это настраивается в контрольной панели, тип кнопки. Вместо Логической константы, можно придумать свое условие.
Существует заявка(исполненная в другом терминале или даже с голоса брокером) или другим агентом(роботом) Выключите агент, к которому хотите привязать эту заявку в таблице Агенты. Найдите эту заявку в таблице "Свои заявки" Нажмите кнопку "Перенести" Используя функционал привяжите эту заявку к агенту и сигналу Это будет тоже самое по отношению к позиции, что и 2ema.Long Или 2ema.CloseLong - данной заявкой закроется позиция (CloseLong - существующий сигнал) Комментарий, как и в менеджере заявок доступен для изменения. В таблице "Свои сделки" есть похожий функционал "Перенести сделку". Но перенос будет осуществляться исходя из заявки целиком, разбить Заявку на части невозможно. Также нельзя разбить одну сделку на разное количество лотов и перенести их в разные сделки или заявки.