1. Для опционов в принципе по (их идеологии) нет понятия "закрыть позицию". Например, Вы можете сформировать синтетику +1*колл-1*пут накрыть её фьючерсом и оказаться вне рынка (ну, почти). При этом брокер будет занудно уверять Вас, что "вот же она позиция! аж 3 штуки."
Блок Buy Options покупает опционы в том страйке, который ему указан, если это разрешено сигналом на входе Permission.
2. Если страйк изменился, а сигнал набирать позу ещё действует, то блок будет покупать опционы в новом страйке. Опционная позиция -- это единая сущность.
В скрипте-примере при сильном движении БА будет меняться центральный страйк и данный блок будет часть позы набирать в одном страйке, часть в другом, часть в третьем.
3. Мы ввели обобщенное понятие "Риск позиции". Вы можете в качестве риска использовать суммарное кличество опционов, можете использовать гамму, вегу, тету, положение звезд на небе или любую интересующую Вас характеристику. Тип входа double.
В скрипте-примере в качестве меры риска используется величина "сумма полустреддлов на всех страйках" (это, кстати, написано в описании блока TotalRiskN2; кто-то, возможно, узнает в этой метрике функцию риска от Твардовского).
Как это работает: на вход блока Buy Options подаётся текущий риск, максимальный риск и общий управляющий сигнал Permission. Если набор позиции разрешен и текущий риск меньше максимального, блок начинает котировать указанный ему страйк лимитными ордерами на покупку.
Если же блок видит, что текщий риск превышает максимальный, он начинает попытку продать старые опционы. Чтобы упростить логику и не морочить людям голову, он закрывает позицию не синтетикой, а "по-честному" пытается продать имеющиеся опционы.
4. Улыбка подаётся на вход для того, чтобы блок знал по какой цене он должен выставить лимитник. Вы сейчас скажете: можно было бы просто передать цену, но тогда её придется расчитывать где-то в другом месте. А если мы начнем делать блок, который, к примеру, занимается покупкой кондора? Ему на вход передавать 4 цены? Чтобы упростить ситуацию и сделать общее решение, на вход блока передаётся сразу вся улыбка целиком.
По улыбке он расчитывает "теоретическую" цену опциона в указанном страйке и потом от этой цены делает отступ на несколько Price Step. Отступ управляется настройкой Entry Shift. Это даёт возможность в какой-то ситуации котировать позицию и ждать лучшей цены, а в какой-то ситуации хватать чужие котировки по рынку.
5. Совершенно верно: вход Permission -- это внешняя блокировка работы блока. "Сейчас хочу набирать, а через 5 минут вообще не хочу".
В скрипте-примере разрешением является следующее условие: историческая волатильность превышает подразумеваемую на 5% (точное значение задаётся параметром Entry Level).
Собственно, все эти тонкости работы становятся уже более-менее понятны, если недельку поторговать (в режиме симуляции!) на подвижных инструментах вроде Si, GZ, RI и им подобных.
Основное ограничение работы с виртуальными позициями в том, что эти заявки всегда считаются исполненными. Что не соответствует реальной рыночной практике, но позволяет получить хотя бы приближенное представление о работе скрипта.
ПС Ещй раз напоминаю, что агентам желательно давать разумные имена. Это позволит в дальнейшем избежать путаницы. Например, своих агентов на скрипте Buy Vola я предпочитаю называть "bv-SRU5-Sep", "bv-GZU5-Aug".
Приставка bv намекает, что это Buy Vola;
в середине стоит Базовый Актив;
суффиксом идет конкретная серия с которой агент работает.
Это позволит легко ориентироваться в ситуации, когда у Вас будет по 3 агента на покупку и продажу (итого 6) в наших самых ликвидных фьючерсах (примерно 5). Суммарно 30 агентов в перспективе. Если не дать им разумные имена, потом в таблице Autotrading Control Center будет нереально ориентироваться.