Как работают блоки в опционных скриптах?

Автор: Evgeny_z

Как работают блоки в опционных скриптах? - Tue Sep 01 2015 06:42 PM

Originally Posted By: Option Wizard
Запускайте смело Buy Vola в виде агента.
Там по умолчанию торговля заблокирована да ещё и выставлен режим виртуализации сделок. Поэтому без Вашего разрешения никаких реальных торговых операций не произойдет.

Теперь конкретно Ваша ситуация:
  • 1. Берете скрипт Buy Vola. Копируете.
  • 2. Добавляете свою формулу (обязательно возвращать именно double и обязательно это должен быть реально существующий страйк).
  • 3. Рвете связь от блока CentralStrike к блоку SellVola.
    Вместо неё на освободившийся вход подаёте свою формулу.
  • 4. Сохраняете скрипт. Создаете агента на базе уже своего скрипта. Запускаете, наслаждаетесь.


Для контроля, рекомендую продублировать выход вашей формулы на панели управления в виде NumericalValue.

PS Если Вы скажете какую примерно формулу хотите реализовать, возможно это можно сделать настройками блока CentralStrike.


Спасибо за консультацию, это наверно самый рациональный способ - использовать за прототип готовый скрипт и его модифицировать.
Скорее всего в нем все и найдется.

Проблема в том, что непонятно как работают блоки - нет описания. В первую очередь блок "BuyOptions":
1. Раньше были блоки типа "Открыть позицию..." и "Закрыть позицию..." - сейчас это что делает один блок "BuyOptions"?
2. Если п.1. верен, смена численного страйка на входе - он что закроет предыдущий опцион и откроет новый с другим страйком?
Какова логика работы блока по входным сигналам?
3. Что такое входы "Текущий риск" и "Максимальный риск" - это единицы дельты или еще чего, целочисленные или...?
4. Если это блок исполнительный, для чего на вход подается "Улыбка", для работы с серией опционов? какова здесь функция блока?
5. Или надо управлять куплей/продажей через вход "Permission" (судя по всему - это строб -разрешение на работу блока)?

Для Вас эти вопросы могут показаться странными, типа это очевидно, так как вы работаете с этой версией давно.
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Wed Sep 02 2015 11:37 AM

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 будет нереально ориентироваться.
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Wed Sep 02 2015 02:35 PM

Добрый день!

Спасибо, будем переваривать информацию.
Автор: bic

Re: Как работают блоки в опционных скриптах? - Wed Sep 02 2015 09:00 PM

Здравствуйте! Подскажите, есть возможность вывести стакан по определенному опциону?
Автор: Stan

Re: Как работают блоки в опционных скриптах? - Wed Sep 02 2015 10:26 PM

Originally Posted By: Option Wizard
1. Для опционов в принципе по (их идеологии) нет понятия "закрыть позицию". Например, Вы можете сформировать синтетику +1*колл-1*пут накрыть её фьючерсом и оказаться вне рынка (ну, почти). При этом брокер будет занудно уверять Вас, что "вот же она позиция! аж 3 штуки."
Уважаемый Option Wizard Можете пояснить это!! Как тогда быть в случае с брокером в такой ситуации??
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Thu Sep 03 2015 11:24 AM

Quote:
Подскажите, есть возможность вывести стакан по определенному опциону?


Конечно. В этом смысле опцион ровно такой же инструмент как и все остальные.

1. Открываем Orders Manager
2. Там есть возможность задать инструмент

или другой способ: накидать интересующих тикеров на панель Quotes (Котировки) и поднимать Orders Manager из неё с помощью контекстного меню. Тогда не надо тикер вводить.
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Thu Sep 03 2015 11:28 AM

Originally Posted By: Stan
Можете пояснить это!! Как тогда быть в случае с брокером в такой ситуации??


Никак. Просто тянете позицию до экспирации и она схлопывается автоматически. Если у вас много таких синтетических конструкций в далеких от денег страйках, то нет никакой физической возможности от них от всех избавиться. Там просто необходимых оборотов не будет.

Конечно, можно вставать хуже рынка, но с таким же успехом можно деньги в окно выбрасывать.
Автор: Stan

Re: Как работают блоки в опционных скриптах? - Thu Sep 03 2015 03:54 PM

Блин сразу копятся вопросы, потому что не так давно читал на смарт лабе о использовании таких синтетических инструментов. Что в принципе можно добиться больше 20 процентов годовых прибыли при использовании их. Так это или нет? Но там правда не уточнялось какой режим торгов использовать поставочный или беспоставочный?
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Thu Sep 03 2015 04:44 PM

Originally Posted By: Stan
Блин сразу копятся вопросы, потому что не так давно читал на смарт лабе о использовании таких синтетических инструментов.


Мы про разное. Я говорю про обычный колл-пут паритет при котором можно набрать позу эквивалентную (почти) полному выходу из позиции.

Вы же явно имеете в виду что-то другое.
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Thu Sep 03 2015 06:13 PM

Добрый день! Пара текущих вопросов...

1. В опционном блоке-источнике нет доступа к источнику исторических данных на ПК. Есть ли возможность работать с "историей"? Если есть, то в каких случаях.

2. Скрипт Buy Vola после запуска в лаборатории и как агента показывает графики, но нет каких либо сделок. Может что в настройках надо установить?

TSLab выдает сообщение: 18:08:02.08 100 [DEBUG:BV_Si_02:PosMan] Portfolio is not fully ready to trade. So there is a risk of position analysis mistakes.
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Thu Sep 03 2015 08:42 PM

1. Тестов на истории для опционов нет ни в каком виде.

2. Опционные скрипты не предназначены для работы в режиме лаборатории.

Процитированное сообщение явно говорит о том, что скрипт не готов к торговле (не запущен в виде агента или агент ещё не полностью проинициализирован). Поэтому в целях безопасности его торговые операции полностью блокируются.

После завершения инициализации агента данное сообщение исчезнет.
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Thu Sep 03 2015 11:04 PM

Originally Posted By: Option Wizard
1. Тестов на истории для опционов нет ни в каком виде.

2. Опционные скрипты не предназначены для работы в режиме лаборатории.

Процитированное сообщение явно говорит о том, что скрипт не готов к торговле (не запущен в виде агента или агент ещё не полностью проинициализирован). Поэтому в целях безопасности его торговые операции полностью блокируются.

После завершения инициализации агента данное сообщение исчезнет.


1. Тестов на истории может быть и нет, а вот реальных исторических данных М1, фьючерс+опционы (по десятку ближних) - помесячно накоплено достаточно. В TSLab 1.2 применял для моделирования.
Жаль, что сейчас нельзя использовать.

2. Что касается Buy Vola - действительно, дело было в лаборатории. Запустил в качестве агента - пошли стандартные сообщения. Но сделок пока нет - погоняю может быть подольше...

Но главное не это.
Не могу из новых блоков составить цепочку покупки опционов (или как Вы выражаетесь, набора позиции)...
Пытаюсь методом копирования разных наборов блоков из Buy Vola в новый скрипт (отдельными блоками из панели инструментов, я уже понял, мне не поднять), но нет, не получается таким методом тыка... наработано много, а описаний нет. Возможно я пытаюсь решать задачу не ту, под которую они "заточены".

Подскажите набор блоков для этой простой задачи.
Требуется покупать заданное количество опционов Put по заданному страйку, затем закрывать всю позицию, и покупать по вновь заданному страйку (скорее всего, соседнему с заданным шагом).
Задачу я назвал "простой" условно, понятно что требуется использование наработанного Вами арсенала технических решений, заложенных в новой версии программы (выбор серий, покупка/продажа по нужным ценам и т.д. и т.п.). А дальше пойдут вопросы по грекам...

Но в этом все и дело, без Вашей помощи не обойтись. Помогите воспользоваться мощным инструментом и, как говорится, "Да пребудет с вами Вола!"
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Fri Sep 04 2015 12:24 AM

Как уже говорил, правильным будет не копировать куски блок-схемы в "свой" скрипт, а скопировать целиком весь скрипт в новый и "мутировать" копию к желаемому поведению.

1. Раз страйк фиксирован, значит вместо блока CentralStrike следует использовать блок "Числовая Константа" (Constant Value)

Его можно кинуть на панель ControlPane (куда сейчас выводится значение страйка) и сделать редактируемым числовым значением. То есть страйк оператор выбирает сам руками какой хочет.

TODO: сделать блок с возможностью выбрать один страйк из списка возможных с помощью дроп-дауна. Это защитит от ошибок оператора.


2. Чтобы не париться с Permission, делаем блок "Логическая константа" (емнип Boolean Value или как-то так). Привязываем её на ControlPane вместо числовой константы EntryLevel. В качестве элемента управления подойдет чекбокс.

То есть когда мы хотим покупать -- ставим галку. Когда нам это надоедает -- галку снимаем. По большому счету, можно вообще сделать логическую константу на входе Permission всегда TRUE и тогда регулировать поведение скрипта можно будет единственной настройкой Max Risk -- это упростит ситуацию ценой некоторой потери гибкости.


3. Раз мы со страйком определились -- дело сделано. Параметр MaxRisk отрегулирует сколько Вы хотите купить. Когда захотите продать -- поставите его в 0.

Если через денек Вам захочется поработать с другим страйком -- отлично. Меняете страйк, ставите желаемый Max Risk и вперед.

Успеха!

ПС В Вашей фразе
Quote:
затем закрывать всю позицию, и покупать по вновь заданному страйку (скорее всего, соседнему с заданным шагом)

мне почудился намек на то, что это определяется неким алгоритмом. Тогда блок "Числовая константа" следует заменить на формулу или на свой рукописный индикатор.

ППС Обращаю Ваше внимание, что при выделении в тулбоксе каждого опционного блока в Свойствах в поле Описание дано краткое пояснение что этот блок делает.

Теперь если блок уже стоит в блок-схеме, то после его выделения можно просмотреть краткое описание каждого параметра этого блока.

Естественно, это не полноценная документация, но хорошая подсказка в трудную минуту. wink
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Fri Sep 04 2015 10:40 AM

Добрый день! Спасибо, что быстро откликаетесь.

Originally Posted By: Option Wizard
Как уже говорил, правильным будет не копировать куски блок-схемы в "свой" скрипт, а скопировать целиком весь скрипт в новый и "мутировать" копию к желаемому поведению.


Дело в следующем.
Это общеизвестный в практике прием работы с блоками неизвестного функционала и свойствами ("черным ящиком").
Подаем разные комбинации сигналов на входы, смотрим что получаем на выходе... Иногда это достаточно быстрый способ освоения.
В данном случае процесс "мутации" пошел. Копировать целиком и "отрезать" или копировать части - вопрос, скорее всего, не принципиальный.


Quote:
1. Раз страйк фиксирован, значит вместо блока CentralStrike следует использовать блок "Числовая Константа" (Constant Value)

Его можно кинуть на панель ControlPane (куда сейчас выводится значение страйка) и сделать редактируемым числовым значением. То есть страйк оператор выбирает сам руками какой хочет.

TODO: сделать блок с возможностью выбрать один страйк из списка возможных с помощью дроп-дауна. Это защитит от ошибок оператора.


2. Чтобы не париться с Permission, делаем блок "Логическая константа" (емнип Boolean Value или как-то так). Привязываем её на ControlPane вместо числовой константы EntryLevel. В качестве элемента управления подойдет чекбокс.

То есть когда мы хотим покупать -- ставим галку. Когда нам это надоедает -- галку снимаем. По большому счету, можно вообще сделать логическую константу на входе Permission всегда TRUE и тогда регулировать поведение скрипта можно будет единственной настройкой Max Risk -- это упростит ситуацию ценой некоторой потери гибкости.


По пунктам 1 и 2 как раз вопросы не возникают.
Конечная цель - робот, временно можно дать значения и от константы.
Кстати, на вход Permission "Логическую константу" прицепить не удалось, подал от блока "Константа".

Quote:

3. Раз мы со страйком определились -- дело сделано. Параметр MaxRisk отрегулирует сколько Вы хотите купить. Когда захотите продать -- поставите его в 0.

Если через денек Вам захочется поработать с другим страйком -- отлично. Меняете страйк, ставите желаемый Max Risk и вперед.

Успеха! ...


Чем дело закончилось.
Вычленил и скопировал несколько блоков с настройками и связями: от блока "Источник-Опцион" до блока "ПокупкаОпционов" - TSLab перестал выдавать "плохие" сообщения и запустил скрипт.

Вопрос, как теперь проверить, что получилось...

На входы блока "ПокупкаОпционов" подал константы: Permission=1; Текущий риск=80; Макс риск=100.
Выход блока "ПокупкаОпционов" показывает на выходе (по графику) значение - ПокупкаОпционов(Put,1,0,0)=0
Подключил блок "Количество опционов" к источнику и вывел на панель графика - показывает число =210.
Что в данном случае может показывать блок "Количество опционов" и правильно ли я его подключил (по аналогии с TSLab 1.2)...
Как проверить открытие позиции и покупку опционов?


P.S. Кстати, агент Buy Vola, запущенный вместе Collect IV (All), HV (All) - работает, но позиций нет, только графики...

Как и где в Buy Vola видны позиции - например, какие в данный момент куплены опционы (если они есть)?
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Fri Sep 04 2015 12:55 PM

Originally Posted By: Evgeny_z
P.S. Кстати, агент Buy Vola, запущенный вместе Collect IV (All), HV (All) - работает, но позиций нет, только графики...

Как и где в Buy Vola видны позиции - например, какие в данный момент куплены опционы (если они есть)?


Контрольный вопрос: в скрипте Buy Vola галка Block trading снята?

Если снята, то выполнено ли условие на вход? Действительно ли HV>IV на величину EntryLevel?

Если у Вас цель просто потестить погонять, то загоните EntryLevel в (-15) -- и он почти гарантированно будет покупать.



Что касается основного вопроса: уже нужны или скриншоты блок-схемы или давайте поднимемся в личку -- Вы мне пришлете свой скрипт что у Вас получается и тогда более грамотно отвечу. Имхо, в простом варианте зафиксированного страйка задача решается не очень большой кровью.
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Fri Sep 04 2015 02:09 PM

Originally Posted By: Option Wizard
...Контрольный вопрос: в скрипте Buy Vola галка Block trading снята?

Если снята, то выполнено ли условие на вход? Действительно ли HV>IV на величину EntryLevel?

Если у Вас цель просто потестить погонять, то загоните EntryLevel в (-15) -- и он почти гарантированно будет покупать.


Что касается основного вопроса: уже нужны или скриншоты блок-схемы или давайте поднимемся в личку -- Вы мне пришлете свой скрипт что у Вас получается и тогда более грамотно отвечу. Имхо, в простом варианте зафиксированного страйка задача решается не очень большой кровью.



1. Галка не снята. Если сниму, агент начнет реальную торговлю или будут виртуальные сделки?

2. Скрипта в версии TSLab 2.0 пока нет и быть не могло.
Я пытаюсь разобраться, как опционные блоки применить для торговли по классической стратегии "Покупка стрэддла" (вариант - 2*Put+BA). И, далее, поддержка дельта-нейтральности...
А пока не могу увидеть, что и как покупает агент Buy Vola.

Есть скрипт-заготовка, промоделированный в версии TSLab 1.2 (усеченный вариант, естественно, с имитацияей дельты, гаммы, теты, с развесистой структурой выбора и "покупки/продажи" опционов) - но все это лишь модель при параллельной торговле вручную.

Сильно напрягает то, что нельзя спокойно работать в лаборатории, а сразу требуется запускать агент. Не понято, как проверять отдельные "ветки" планируемого скрипта, тем более, в условиях дефицита информации - интерфейс не дружественный получается...

Что касается основного вопроса:
Буду, конечно, работать с Buy Vola для дальнейшего понимания...
На начальном этапе устроит предложение " ...Имхо, в простом варианте зафиксированного страйка задача решается не очень большой кровью..."
Но высылать пока нечего - вырванный из схемы Buy Vola кусок не работает. Возможно, заработает агент, разберусь и с его частью...
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Fri Sep 04 2015 02:49 PM

Originally Posted By: Evgeny_z
1. Галка не снята. Если сниму, агент начнет реальную торговлю или будут виртуальные сделки?


Будут сделки реальными или виртуальным решает вторая галочка в интерфейсе Use virt pos. По дефолту сделки будут виртуальными.

Но есть и третий уровень защиты: Entry Shift.
Как я лично делаю для отладки: ставлю Entry Shift (-100), снимаю галку Use virt pos, снимаю галку Block Trading. В итоге скрипт начинает котировать опцион очень далеко от рынка. Эту заявку можно (и нужно) увидеть в Orders Manager. После этого просто ставлю адекватный Entry shift. Для акций и доллара это величина в диапазоне (-30)..(-10) шагов цены.

Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Fri Sep 04 2015 05:04 PM

Спасибо, информацию принял.

Таким образом, итог первого подхода к инструменту: описаний практически нет, средств отладки нет, чего нагородишь - прямо в рынок (что-то говорили про игровой контур), на истории протестировать - нельзя.
Говорю же, интерфейс недружественный...

Может и правильно, на деньгах - быстрее доходит.
Это как в преферанс - не научишься, пока на деньги не сыграешь, и на мизере "паровоз" не поймаешь...

Что же спасибо, будем думать, тестировать, и действительно... Ваш девиз как пророчество звучит: "Да пребудет с вами Вола!"
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Fri Sep 04 2015 06:16 PM

Originally Posted By: Evgeny_z
что-то говорили про игровой контур


Если Вы реальный клиент брокера и реальный клиент ТСЛаб, он (брокер) может выдать Вам логин-пароль Плаза-2 к ИГРОВОМУ (не путать с тестовым!) контуру биржи (мой брокер хорошим людям даёт бесплатно). Когда там был последний раз (где-то в июне), там были вполне приличные котировки опционов на RI (и биржевая улыбка).

Соответственно, вы с этим логином Плаза-2 обращаетесь в наш саппорт и мы Вам делаем ключ ТСЛаб для данного подключения.

В итоге Вы можете торговать на приближенно правдоподобном рынке, видеть свои лимитники и делать "всё как в жизни", но при этом не рисковать счетом.

ПС
Quote:
Ваш девиз как пророчество звучит


Сейчас, видимо, самый удачный момент начать продавать волатильность... То есть воспользоваться скриптом Sell Vola.

Напоминаю про соблюдение риск-менеджмента!
Автор: bic

Re: Как работают блоки в опционных скриптах? - Tue Sep 08 2015 12:58 PM

Здравствуйте! Подскажите, как можно сбросить статистику агента? А также, как очищать статистику заявок, сделок позиций?

P.S. Можно ли в настройках агента менять положение центрального страйка или нужно переделывать логику скрипта?

Заранее спасибо!

И конечно же, да прибудит с нами вола! ;-)
Автор: bic

Re: Как работают блоки в опционных скриптах? - Tue Sep 08 2015 01:28 PM

Originally Posted By: Option Wizard
Quote:
Подскажите, есть возможность вывести стакан по определенному опциону?


Конечно. В этом смысле опцион ровно такой же инструмент как и все остальные.

1. Открываем Orders Manager
2. Там есть возможность задать инструмент

или другой способ: накидать интересующих тикеров на панель Quotes (Котировки) и поднимать Orders Manager из неё с помощью контекстного меню. Тогда не надо тикер вводить.


Спасибо, разобрался.
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Tue Sep 08 2015 03:10 PM

Originally Posted By: bic
1. как можно сбросить статистику агента? А также, как очищать статистику заявок, сделок позиций?

2. Можно ли в настройках агента менять положение центрального страйка или нужно переделывать логику скрипта?


2. Просто создаёте агента с другим именем или переименовываете старый. Если речь идет о виртуальных позициях, в некоторых скриптах есть кнопка Drop virt pos.

1. Что значит "менять положение центрального страйка"? Что лично Вы хотите получить в итоге?

Центральный страйк -- он на то и центральный страйк что всё время меняется по мере движения рынка. У данного блока есть настройка Shift strike == Сдвиг страйка, которая позволяет сдвинуться от центрального страйка на указанное количество страйков вверх или вниз (причем с учетом параметра Strike step == Шаг страйков).
Автор: bic

Re: Как работают блоки в опционных скриптах? - Tue Sep 08 2015 04:18 PM

Спасибо в блоках покопаемся посмотрим.

В приложении прикреплены вопросы. Будьте добры подскажите.
Автор: bic

Re: Как работают блоки в опционных скриптах? - Tue Sep 08 2015 04:27 PM

Originally Posted By: Option Wizard
[quote=bic] У данного блока есть настройка Shift strike == Сдвиг страйка, которая позволяет сдвинуться от центрального страйка на указанное количество страйков вверх или вниз (причем с учетом параметра Strike step == Шаг страйков).


Спасибо, нашел. А это можно как-то вывести в панель настроек агента, есть где-то мануал?
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Tue Sep 08 2015 04:29 PM

Originally Posted By: bic
В приложении прикреплены вопросы. Будьте добры подскажите.


1. Желтые маркеры в опционных скриптах игнорируйте. В предыдущей версии ТСЛаб это означало, емнип, что заявка требует подтверждения. Нас это не касается.

2. "Strike step" -- "Шаг страйков для выделения главных подсерий" (описание параметра есть в Редакторе Скриптов).

Например, в Si страйки идут с шагом 250 рублей, но мы можем решить, что промежуточные серии слишком неликвидны и интереса не представляют. Тогда мы поставим Strike step:1000 и будем жить только в наиболее ликвидных сериях Si.
Автор: bic

Re: Как работают блоки в опционных скриптах? - Tue Sep 08 2015 04:46 PM

Почему-то в таблице "свои сделки" , при включение фильтра "дата", выбирая число для фильтра с 1.09.2014 и до 8.09.2015 сделки пропадают, а торговля за это время происходила?
Автор: bic

Re: Как работают блоки в опционных скриптах? - Tue Sep 08 2015 04:52 PM

Originally Posted By: Option Wizard
Originally Posted By: bic
В приложении прикреплены вопросы. Будьте добры подскажите.


1. Желтые маркеры в опционных скриптах игнорируйте. В предыдущей версии ТСЛаб это означало, емнип, что заявка требует подтверждения. Нас это не касается.

2. "Strike step" -- "Шаг страйков для выделения главных подсерий" (описание параметра есть в Редакторе Скриптов).

Например, в Si страйки идут с шагом 250 рублей, но мы можем решить, что промежуточные серии слишком неликвидны и интереса не представляют. Тогда мы поставим Strike step:1000 и будем жить только в наиболее ликвидных сериях Si.


Получается у вас там буквы не хватает "p" Там написано "Main strike ste"

Как это живем в ликвидных сериях? У меня при Курсе фьюча на Si 68000, "Main strike ste" был 5000, Central strike выставился 70000, это почему?
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Tue Sep 08 2015 05:11 PM

Originally Posted By: bic
А это можно как-то вывести в панель настроек агента, есть где-то мануал?


ЧТО вывести? КУДА вывести? Пишите, пожалуйста, развернуто, чтобы мы Вас поняли. Можете картинку приаттачить со стрелочкой... confused

Оно выведено. Когда Вы выбрали блок и нажимаете мышкой на его параметры справа-внизу в панели Properties там же выскакивает подсказка с описанием назначения каждого параметра.



Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Tue Sep 08 2015 05:18 PM

Originally Posted By: bic
1. Получается у вас там буквы не хватает "p" Там написано "Main strike ste"

2. Как это живем в ликвидных сериях? У меня при Курсе фьюча на Si 68000, "Main strike ste" был 5000, Central strike выставился 70000, это почему?


1. Видимо, не влезла буква. Если Вам это мешает, можете сами исправить (сделать надпись покороче или поле вывода пошире). Заодно познакомитесь с нашим новым Layout Editor == Дизайнером wink

2. Потому что по умолчанию в скрипт забит Strike Step:5000. Очевидно, это для РТС такой шаг страйков подходит. Если Вы хотите работать с Si, один раз поменяли на 1000 (или на 500) -- и вперед. Это изменение в агенте будет сохранено и больше не потребует от Вас никаких телодвижений.
Автор: bic

Re: Как работают блоки в опционных скриптах? - Tue Sep 08 2015 05:43 PM

Originally Posted By: Option Wizard
Originally Posted By: bic
А это можно как-то вывести в панель настроек агента, есть где-то мануал?


ЧТО вывести? КУДА вывести? Пишите, пожалуйста, развернуто, чтобы мы Вас поняли. Можете картинку приаттачить со стрелочкой... confused

Оно выведено. Когда Вы выбрали блок и нажимаете мышкой на его параметры справа-внизу в панели Properties там же выскакивает подсказка с описанием назначения каждого параметра.





Я имел ввиду чтобы в control desk появилось выпадающее меню (к примеру с выбором нужного мне страйка).
Автор: bic

Re: Как работают блоки в опционных скриптах? - Tue Sep 08 2015 06:00 PM

Originally Posted By: Option Wizard
[quote=bic]
1. Видимо, не влезла буква. Если Вам это мешает, можете сами исправить (сделать надпись покороче или поле вывода пошире). Заодно познакомитесь с нашим новым Layout Editor == Дизайнером wink

Зашел в Editor, там уже даже заготовленное поле есть под страйки, правда там strike shft, но я так понимаю, что можно вывести поле и выпадающее меню с страйками? Только, где как это все реализуется в кубиках и как это прикрепить, чтобы оно вывелось в control desk, есть у вас какие-то уроки минимальные?
Автор: bic

Re: Как работают блоки в опционных скриптах? - Tue Sep 08 2015 06:09 PM

TSLAB крутой конструктор! Нужно разбираться, нужны мануалы smile
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Tue Sep 08 2015 07:10 PM

Если Вам разрешить выбирать разные серии для торговли из интерфейса скрипта, Вы через 5 минут купите календарный спред и будете возмущаться, "почему ТСЛаб неправильно считает по нему дельту/неправильно рисует профиль позиции и т.д."

На все эти вопросы пока, подчеркиваю пока, вынужден дать один общий ответ: скрипты-примеры работают только с одной опционной серией. Давайте сначала с "простым" скриптом разберемся? wink

ПС Для самых смелых.
Выбор серии делается в самом скрипте редактированием параметров блоков dT, NearOptions, NearOptStream. По умолчанию торговля идет с ближней опционной серией, но ничто не мешает Вам перенастроиться на дальнюю или на промежуточну. Вы можете торговать тремя почти идентичными агентами одновременно 3 разные серии.

Их позиции будут изолированы друг от друга.
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Tue Sep 08 2015 07:13 PM

Originally Posted By: bic
Я имел ввиду чтобы в control desk появилось выпадающее меню (к примеру с выбором нужного мне страйка).


Прошу прощения. Вы не про серию, а про страйк. В этом случае это будет не блок "центральный страйк", а блок "фиксированный страйк". Как решать эту задачу мы более-менее подробно обсуждали с господином "rsv" в соседней ветке.

Начиная с его вопроса и далее несколько постов по хронологии.
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Wed Sep 09 2015 10:33 PM

Originally Posted By: Option Wizard
Если Вам разрешить выбирать ...


Добрый день!

В целом, Buy Vola заработал (на виртуальных сделках), в том числе, работает и как агент, так и в лаборатории.
Правда, некоторые настройки меняет не сразу, а примерно через пол минуты... или со второго сохранения...
Общая картина: временами "подтупливает", иногда сбрасывает часть измененных настроек, иногда аварийно закрывает TSLab (редко, но было раза 2-3).

Вопрос по существу.
Как настроить вкладку Сделки, чтобы сделки не агрегировались, а шли последовательно списком при дельта-хеджировании базовым активом с соответствующей датой и временем?
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Thu Sep 10 2015 12:28 AM

Originally Posted By: Evgeny_z
1. в том числе, работает и как агент, так и в лаборатории.

2. иногда аварийно закрывает TSLab (редко, но было раза 2-3).

3. Как настроить вкладку Сделки, чтобы сделки не агрегировались, а шли последовательно списком при дельта-хеджировании базовым активом с соответствующей датой и временем?


1. Запускать только в виде агента с уникальным именем.
В режиме Лаборатории будут постоянно возникать сбои, непонятки, запутки с позициями и всякия чертовщина.

Чтобы стало понятней поясню: мы храним виртуальные сделки на винте в Глобальном Кеше (ГК). При этом название файла формируется по уникальному имени агента. Если Вы запустились из Лаборатории -- уникального имени нет. Виртуальные сделки хранить непонятно где. Хуже всего, что возникает риск попыток доступа к этим записям из разных Лабораторий/агентов.


2. Пожалуйста, обращайтесь в нашу тех. поддержку с каждым случаем "аварийного закрытия" (так понимаю, с фаталом?). Идеально сделать скриншот экрана в этот момент и приложить к своему обращению файл tslab.log с текстовым логом.

Также желательно указать через какой провайдер подключались.

Папка с логами открывается командой из Главного Меню (сейчас на память не помню точно, потом напишу).
Путь на диске %APPDATA%/../Local/TSLab/TSLab 2.0/Logs/tslab.log


3. Здесь есть 2 момента.
3.1. Если речь идет о реальной торговле. Тогда эффективней всего открыть таблицу My trades == Мои сделки и наложить фильтр на столбец Agent == Агент, чтобы показывались только сделки интересующего Вас агента.

3.2. Если речь идет о виртуальных сделках, сделать такой режим затруднительно. Как некий приближенный вариант, можно залезть в скрипт и поменять настройки блока PosMan (он там один такой, идет сразу после опционного источника). Параметр называется Agregate positions == Агрегировать позиции. Его надо выставить в false.


ПС Напоминаю: при работе с опционами ТСЛаб следует запускать в режиме 64 бита.
Это вызвано повышенными требованиями к памяти при работе с опционами.

Как Вы помните, "опцион" -- это на самом деле 100-150-200 связанных тикеров, доступ к которым предоставляется скрипту одновременно.
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Thu Sep 10 2015 02:37 PM

Originally Posted By: Option Wizard
...1. Запускать только в виде агента с уникальным именем... мы храним виртуальные сделки на винте в Глобальном Кеше (ГК)...

2. Пожалуйста, обращайтесь в нашу тех. поддержку с каждым случаем "аварийного закрытия"...
Папка с логами открывается командой из Главного Меню (сейчас на память не помню точно, потом напишу)...

3. Здесь есть 2 момента.
.............
3.2. Если речь идет о виртуальных сделках, сделать такой режим затруднительно. Как некий приближенный вариант, можно залезть в скрипт и поменять настройки блока PosMan (он там один такой, идет сразу после опционного источника). Параметр называется Agregate positions == Агрегировать позиции. Его надо выставить в false.

ПС Напоминаю: при работе с опционами ТСЛаб следует запускать в режиме 64 бита...
Как Вы помните, "опцион" -- это на самом деле 100-150-200 связанных тикеров, доступ к которым предоставляется скрипту одновременно.


Добрый день!

По п.1 - понятно, спасибо за разъяснения. По п.2. - тоже, Логи найдем, не первый раз...
Работаю в х64 варианте - это тоже понятно.
Что касается указанного параметра в PosMan, то он и так по умолчанию стоит - false.

По п.3.2. - отсутствие возможности вывести список сделок виртуальных позиций - момент неприятный, т.к., это фактически является отладочной информацией при проверке работы и скрипта и всей стратегии в целом... Кстати, в общий лог эта информация выводится.

При работе с TSLab 2.0 постоянно не хватает следующего - см. ветку "Предложения и пожелания", там отпишусь.

Появились следующие вопросы по работе Buy Vola.

1. Установил следующие параметры: тип опционов - Put, Max risk=100, Entry level= -20%, Qty=100, Autohedge-включен.
Запускаю агента - он сначала покупает 200 опционов, затем "сбрасывает" позицию до 100 (соответственно, хедж Баз.актив=96, затем 48).
Я понимаю, что жестко пытаюсь работать - мне нужно купить 100 лотов и, желательно, сразу. Идет пере-регулирование - это понятно, можно конечно и по частям покупать, НО... запрет на значение Max risk - не должно нарушаться НИКОГДА.

2. Следующий момент. Центральный страйк изменился, а позиция остается той же. Как лучше сменить одни опционы другими (с другим страйком).
Что можно использовать для контроля за наличием открытых позиций. Блоки "Есть активная позиция" - не работают? Не могу никуда прицепить.
Есть блок "Суммарная открытая позиция" - тоже самое.
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Thu Sep 10 2015 03:14 PM

1. Не согласен. По умолчанию там как раз стоит TRUE (возможность менять объём позиции это одна из новых фишек второй версии).



Quote:
Предложение 1 "Max Risk не должен нарушаться"

Сорри, но если Вы хотите сломать робота -- вы его сломаете. В Вашей ситуации MaxRisk=100 && Qty=100 && EntryLevel=-20 пожалуйста откройте Orders Manager и купите себе 100 лотов по рынку (ну, или лимиткой внутри спреда).

Поясню: для общности, блок-котировщик ничего не знает про Вашу метрику риска. Поэтому он по сути не знает, как изменится риск, если он купит квант котирования.

У меня есть мысли на этот счет, но пока так.

На самом деле, как правило, сценарий использования выглядит по-другому: мы покупаем 1000 лотов квантами по 50-100 штук. С этой точки зрения даже если мы случайно купим 1030 лотов -- это вообще не проблема.


Quote:
Предложение 2 "Уентральный страйк изменился, а позиция так и осталась"


Всё верно. Мы не планировали перетаскивать позицию вслед за рынком. Это непрактично и очень дорого. Ключевым в поведении скрипта является вопрос: "максимальный риск уже набран, или ещё нет?".

Если нет, он продолжает котировать НОВЫЙ центральный страйк.

Здесь я прошу Вас сразу перестроить своё мышление на новый уровень: опционная позиция -- это не "5 колов на страйке 70". Опционная позиция -- это сразу совокупность всех опционов (и фьючерсов) в данной серии. В перспективе -- во всех сериях сразу.

Что касается вопроса "как определить есть уже позиция или нет?". Отвечаю: если текущий риск равен 0 -- позиции нет. Если он достиг величины MaxRisk -- позиция полностью сформирована. Промежуточные значения соответствуют состоянию "позиция в процессе формирования".

ПС В перспективе каждый трейд будет отмечен на графике маркером по аналогии с Квиком независимо от того был он агрегирован он или нет, но сейчас эта фича ещё в разработке.
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Thu Sep 10 2015 05:32 PM

Originally Posted By: Option Wizard
1. Не согласен. По умолчанию там как раз стоит TRUE (возможность менять объём позиции это одна из новых фишек второй версии).

Спор не принципиальный, но для чистоты отмечу - мы, наверное, из разных источников скрипты вынимаем...
Я скачал с форума, из раздела ...Опционы\Примеры опционных скриптов\ Sar... Attachments Скрипты.zip, инструкция.zip, Пдф.zip
Скачал, открыл, ... False.

Quote:
... Вы хотите сломать робота -- вы его сломаете. В Вашей ситуации... откройте Orders Manager и купите себе 100 лотов по рынку (ну, или лимиткой внутри спреда).

Мы же говорим о роботе, вручную нельзя.

Quote:
Поясню: для общности, блок-котировщик ничего не знает про Вашу метрику риска. Поэтому он по сути не знает, как изменится риск, если он купит квант котирования.

У меня есть мысли на этот счет, но пока так.

Это понятно, что не знает. Но мы в данном случае, говорим о скрипте в целом и его логике... Скрипт не должен допускать "перевеса" лотов, иначе клиент может быстро разориться, сам того не ожидая... как Вы считаете? Клиент-Чайник может и "накатить" в ответ за такую логику...

Quote:
На самом деле, как правило, сценарий использования выглядит по-другому: мы покупаем 1000 лотов квантами по 50-100 штук. С этой точки зрения даже если мы случайно купим 1030 лотов -- это вообще не проблема.

На самом деле, сценарий использования может выглядеть по-разному (у каждого свои тараканы в голове...). Но, согласен, мы конечно приспособимся к тому или иному набору позиции...

Quote:
... Что касается вопроса "как определить есть уже позиция или нет?". Отвечаю: если текущий риск равен 0 -- позиции нет. Если он достиг величины MaxRisk -- позиция полностью сформирована. Промежуточные значения соответствуют состоянию "позиция в процессе формирования".

Если я правильно понял, в Buy Vola информацию о наличии активной позиции надо брать с блока "Суммарный риск N2"? Хорошо, попробуем...


Маленькая реплика.
Сейчас логика системы такая: Дважды не войти в одну реку... Я изменяю параметр или конфигурацию скрипта, а проверить на тех же данных, что предыдущий проход, не могу... доступны только текущие данные с рынка.
И, соответственно, результаты сравнить не могу. А это не правильно. Нужен маленький пул истории - свой игровой контур, как Вы его называете.
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Thu Sep 10 2015 06:51 PM

Originally Posted By: Evgeny_z
И, соответственно, результаты сравнить не могу. А это не правильно. Нужен маленький пул истории - свой игровой контур, как Вы его называете.


Мы полностью понимаем Ваше желание иметь прогон по истории.

В перспективе (неопределенно отдаленной) он обязательно появится в том или ином виде (навскидку вижу 2 или 3 варианта как его можно реализовать, коллеги скорее всего знают их штук 10 возможных).

Самое главное понимать для чего мы хотим этим заниматься: одно дело, если просто хотим проверить как изменилось поведение скрипта после наших правок. Другое дело, если по результатам этих тестов Вы собираетесь делать выводы о прибыльности той или иной схемы торговли.
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Thu Sep 10 2015 08:09 PM

Originally Posted By: Option Wizard

Самое главное понимать для чего мы хотим этим заниматься: одно дело, если просто хотим проверить как изменилось поведение скрипта после наших правок. Другое дело, если по результатам этих тестов Вы собираетесь делать выводы о прибыльности той или иной схемы торговли.


Да, Вы правы, будущее предсказывать дело не благодарное..., проверить скрипт надо.
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Tue Sep 15 2015 01:37 PM

Originally Posted By: Option Wizard
Originally Posted By: Evgeny_z
И, соответственно, результаты сравнить не могу. А это не правильно. Нужен маленький пул истории - свой игровой контур, как Вы его называете.


Мы полностью понимаем Ваше желание иметь прогон по истории.

В перспективе (неопределенно отдаленной) он обязательно появится в том или ином виде (навскидку вижу 2 или 3 варианта как его можно реализовать, коллеги скорее всего знают их штук 10 возможных).

Самое главное понимать для чего мы хотим этим заниматься: одно дело, если просто хотим проверить как изменилось поведение скрипта после наших правок. Другое дело, если по результатам этих тестов Вы собираетесь делать выводы о прибыльности той или иной схемы торговли.


Добрый день!

Дело в следующем. Пытаюсь работать с модифицированной версией Buy Vola. Работать приходится в on-line режиме, т.к. других вариантов не дано.

И что получается. Добавил пару формул для смены опционов в набранной позиции при смене центрального страйка на RTS, а проверить не могу - мне теперь что в on-line режиме неделю ждать, пока цена уйдет к другому страйку?
А если формула работает не правильно? Подправлю, и опять неделю ждать для проверки работы скрипта и т.д. и т.п. Так годы уйдут на проверку, отладку...

Что получается, Вы разработали такой мощный инструментарий - мы его почти два года ждали. А средств отладки и проверки нет?
Вы сами то как отлаживались? Или заложенная стратегия чисто теоретическая?

И при этом пишете: "...Мы полностью понимаем Ваше желание иметь прогон по истории ...В перспективе (неопределенно отдаленной) ..."
Насколько неопределенной и отдаленной? Обнародуйте планы по этому поводу. Может надо еще два года подождать, а не тратить понапрасну время?

P.S. Я сам по профессии разработчик с большим стажем и сдается мне, что профессионалы так "не промахиваются", это определенный расчет, не знаю какой.
Но в любом случае, это потеря времени и потенциальных денег от клиентов, в перспективе - это проигрышный вариант.
Извините за эмоции... достает, большая потеря времени, которой могло бы и не быть...

Считаю, что работа и проверка на "истории" или каком либо эквиваленте, пусть даже искусственном - это вопрос №1 на текущий момент.
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Thu Sep 17 2015 02:08 PM

Добрый день!

Приведу пару примеров работы с модифицированной версией скрипта - см. приложенные картинки.

1. Файл "Набор позиции в Buy Vola" иллюстрирует переходной процесс при наборе заданной позиции.
Видно, что при заданном параметре Max risk=20, Qty=10, при запуске агента значение набранной позиции может составить =190.
Так происходит не всегда, иногда "перебор" меньше, т.е. это мало предсказуемый процесс.

Не знаю какая логика заложена в "кубики", но судя по всему требуется обратная связь и контроль факта исполнения при выставлении заявок.
И еще, каким то образом надо ограничивать сумму выставляемых заявок, ведь ее максимально допустимое значение известно и равно Max risk.

2. Далее, в файле "Смена позиции по страйку" приведен пример смены опционов при смене центрального страйка - так называемый роллинг...

3. В последнем файле - пример сообщения аварийного закрытия программы при работе в лаборатории.
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Thu Sep 17 2015 02:22 PM

Originally Posted By: Evgeny_z
3. В последнем файле - пример сообщения аварийного закрытия программы при работе в лаборатории.


Этот скриншот + логи tslab.log надо закинуть в саппорт в виде тикета. + описание что Вы делали в этот момент.
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Thu Sep 17 2015 02:26 PM

Originally Posted By: Evgeny_z
2. Далее, в файле "Смена позиции по страйку" приведен пример смены опционов при смене центрального страйка - так называемый роллинг...


Выглядит симпатично, поздравляю. Что означают зеленые и бежевые маркеры во врейме Main (помимо того, что это текущий центральный страйк)?
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Thu Sep 17 2015 02:32 PM

Originally Posted By: Evgeny_z
1. Файл "Набор позиции в Buy Vola" иллюстрирует переходной процесс при наборе заданной позиции.
Видно, что при заданном параметре Max risk=20, Qty=10, при запуске агента значение набранной позиции может составить =190.
Так происходит не всегда, иногда "перебор" меньше, т.е. это мало предсказуемый процесс.


Это ОЧЕНЬ странное поведение.
Давайте ещё раз: создан свежий агент с уникальным именем, Вы его запускаете, настриваете параметры котирования, снимаете блокировку торговли и тут БАЦ! он вдруг набирает 190 лотов на этом страйке?

Если эта ситуация наблюдается на моём скрипте -- это проблема. А если на Вашем (после внесения изменений), значит что-то работает неправильно и надо лезть в сам скрипт. Вы случайно не использовали стандартные блоки "открыть позицию"/"закрыть позицию"?..
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Thu Sep 17 2015 03:09 PM

Я уже писал об этом эффекте выше. Что касается внесенных изменений, они минимальны и делались по шагам...

1. Работаю пока только с виртуальными позициями.
2. Из линейных блоков используются (в дополнение к схеме Buy Vola): формула, логическая формула, обновляемое значение, константа, время)
3. Вся модификация сводится:
а) к заданию своего страйка (в принципе, это почти эквивалентно исходному варианту - можно вернуть старый вариант);
б) к управлению параметром "Max risk": при смене страйка от блока Формула задается Max risk=0 на входе блока BuyOptions, а после закрытия позиции Max risk возвращается в исходное значение - для набора новой позиции с новым страйком. Все.

P/S/ Не верите, попробуйте проверить своими методами, промоделировав включение/выключение параметра Max risk от нуля до заданного значения.

Вы также можете проанализировать логику выставления заявок и контроля их исполнения - для Вас это более открытая информация, чем для меня. Но совершенно очевидно - нет необходимой обратной связи с заданным ограничением параметром Max risk.
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Thu Sep 17 2015 04:57 PM

Originally Posted By: Option Wizard
Originally Posted By: Evgeny_z
2. Далее, в файле "Смена позиции по страйку" приведен пример смены опционов при смене центрального страйка - так называемый роллинг...


Выглядит симпатично, поздравляю. Что означают зеленые и бежевые маркеры во врейме Main (помимо того, что это текущий центральный страйк)?


1. Зеленая линия - страйк, задаваемый формулой. Когда он меняет значение - с этого момента начинается закрытие позиции, т.е. устанавливается Max Risk=0 и длится пока Current Risk, подаваемый с блока TotalRiskN2, не станет равным 0.
2. После этого восстанавливается исходное значение Max Risk, заданное в настройках, в блок "Обновляемое значение" записывается текущий страйк (бежевая линия), начинается набор новой позиции с новым страйком.
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Fri Sep 18 2015 01:50 PM

Добрый день!

Очередной небольшой вопрос.
В каждом работающем агенте есть вкладка Лог. Как сделать экспорт данных с этой вкладки?
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Tue Sep 22 2015 05:10 PM

Добрый день!

Как то быстро обратная связь закончилась. Молчание ... а вопросы, в общем то, только начинаются.

Подскажите, как пользоваться "Контрольной панелью".
Например, беру блок Константа, снимаю в свойствах галочку, подключаю "нижний" выход к блоку Контрольная панель.
В свойствах контрольной панели вызываю Дизайнер и все.
Имя блока Константа он видит, доступа к настройкам или управлению - нет. Что делать дальше? Как редактировать и настраивать?
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Tue Sep 22 2015 05:18 PM

Originally Posted By: Evgeny_z
а вопросы, в общем то, только начинаются.


Это радует. =)

Originally Posted By: Evgeny_z
Подскажите, как пользоваться "Контрольной панелью". <...> Как редактировать и настраивать?


Строго говоря, это не "опционный" блок. Его можно использовать где угодно. В Дизайнере нужно выбрать тип контрола (NumericValue, NumericUpDown, etc) + донастроить размер, положение, параметры отображения.
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Tue Sep 22 2015 05:37 PM

Originally Posted By: Option Wizard
Originally Posted By: Evgeny_z
Подскажите, как пользоваться "Контрольной панелью". <...> Как редактировать и настраивать?


Строго говоря, это не "опционный" блок. Его можно использовать где угодно. В Дизайнере нужно выбрать тип контрола (NumericValue, NumericUpDown, etc) + донастроить размер, положение, параметры отображения.


Дело в следующем.
Как раз к этим настройкам и нет доступа в дизайнере. Имя подключенного блока появляется в списке, а все дальнейшие настройки недоступны...
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Tue Sep 22 2015 06:57 PM

Делаю вместе с Вами: взял Константу, соединил с ControlPane, настроил. Всё есть.

Может, Вы поставили галочку?.. То есть пометили Константу как запрещенную для редактирования?..

Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Tue Sep 22 2015 07:49 PM

Originally Posted By: Option Wizard
Делаю вместе с Вами...


Да, делаю вместе...

Создал Новый скрипт, все повторил, работает!!!

Чудеса да и только. Может на скрипте "Buy Vola" защита какая стоит.
На модифицированном скрипте "Buy Vola", из которого я делаю свои варианты - не работает, и не только это...

Спасибо, буду разбираться, в чем дело.
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Wed Sep 23 2015 02:40 PM

Добрый день!

Похоже не все блоки имеющие "нижние хвостики" можно подключить к контрольной панели.
Например, Обновляемое значение не удалось мне подключить, при том, что константа в это же время подключается...
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Thu Sep 24 2015 05:40 PM

Originally Posted By: Option Wizard
Делаю вместе с Вами: взял Константу, соединил с ControlPane, настроил. Всё есть.

Может, Вы поставили галочку?.. То есть пометили Константу как запрещенную для редактирования?..


Добрый день!

Хотелось бы продолжить освоение... Интерфейс не устойчивый, глючит - приходится постоянно повторять некоторые действия и настройки...

Вопросы остаются следующие.

1. Собрал в скрипте свою Контрольную панель. Но с какого-то момента перестали подключаться очередные блоки к Контрольной панели - ни под каким видом.
Для примера (см. пример - картинку) взял свежую "Контрольную панель", пытаюсь подключить константу (или другой блок - не важно) - нет доступа к параметрам...
Что интересно, блоки, которые уже ранее были подключены к другой КП подключаются без проблем.

Не понятно, какие действия необходимо производить?

2. Как вывести гамму (да и дельту тоже) текущей позиции опционов на панель графика, я имею ввиду, в виде графика по оси времени... или в формулу - текущее значение.

3. Как задать формат числа без пробелов в блоке Контрольная панель (исходно цифры заданы в подключенном блоке Константа - используется для задания даты и времени (см. картинку).
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Thu Sep 24 2015 07:01 PM

1. Очень странно. Кидайте скрипт в ТехСаппорт -- будем копать. И желательно примерно вспомнить что Вы делали, чтобы его так перекосило.

2. Блоки греков на самом деле являются индикаторами и возвращают лист даблов как и все другие индикаторы. Так что просто привязываете их к ChartPane.

Только есть блоки вида "Numerical Delta (IntSer)" == "Численная дельта (IntSer)" -- их кинуть на чарт не получится. Они возвращают целиком весь профиль (грубо говоря, сплайн). От этой кривой надо ещё взять точечное значение блоком "Get Value ATM (IntSer)" == "Значение на деньгах (IntSer)"

3. Пока нет возможности задавать форматирование. Прямо так сильно-сильно нужно?
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Tue Sep 29 2015 01:13 PM

Добрый день!

Несколько комментариев по разруливанию вышеописанных вопросов.

Originally Posted By: Option Wizard
1. Очень странно. Кидайте скрипт в ТехСаппорт -- будем копать...

Вышел из ситуации следующим образом. Скопировал все блоки скрипта в новый скрипт, предварительно удалив исходную начинку нового скрипта. Все заработало, сделал дополнительную контрольную панель.

Quote:
2. Блоки греков на самом деле являются индикаторами и возвращают лист даблов как и все другие индикаторы. Так что просто привязываете их к ChartPane...

Перебрал около 5-ти вариантов включения разных блоков, т.к. блоков с Гаммой много...
Нашел пару работающих вариантов, вывел на дополнительную панель. Приходится делать перебором, т.к. описания отсутствуют.

Quote:
3. Пока нет возможности задавать форматирование. Прямо так сильно-сильно нужно?

Конечно обойдемся. Это я так, попутно обозначил...
Есть еще такой (не срочный) глюк. На основном графике (бары) пропадают тени, точнее вертикальные линии. Остаются горизонтальные - открытие/закрытие .
Мышкой, колесом крутишь масштаб: щелчек - все нормально, щелчек - пропали тени, щелчек - опять все нормально, и т.д.
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Tue Sep 29 2015 02:40 PM

Еще раз, добрый день!

Возник очередной вопрос по работе со скриптом...

Скрипт, к примеру, купил Put со страйком 80000 вчера, а сегодня когда я запустил скрипт - рабочий страйк =75000. Скрипт "не видит" этой разницы - нет информации о страйке купленных опционов (о набранной позиции).
Я эту информацию вижу в таблице на панели Position.
Как эту информацию "вытащить" для подключения к блоку формула, чтобы не работал робот, а не переставлять вручную?
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Tue Sep 29 2015 03:13 PM

Еще раз, добрый день!

Возник очередной вопрос по работе со скриптом...

Скрипт, к примеру, купил Put со страйком 80000 вчера, а сегодня когда я запустил скрипт - рабочий страйк =75000. Скрипт "не видит" этой разницы - нет информации о страйке купленных опционов (о набранной позиции).
Я эту информацию вижу в таблице на панели Position.
Как эту информацию "вытащить" для подключения к блоку формула, чтобы не работал робот, а не переставлять вручную?
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Tue Sep 29 2015 04:05 PM

Правильно ли Вас понял, что Вы хотите получить список страйков с ненулевым открытым сайзом?

Хочу отдельно подчеркнуть. что это именно список страйков, а не отдельное число. То есть Вам ещё как-то приделся потом решать какое из, например, 5 чисел Вам не нравится.

В данный момент что-то отдаленно похожее происходит в блоке "Single Series Position Grid" == "Таблица позиции (одна серия)" (раздел "Options - Positions").

Блок имеет параметр "Option Type" == "Тип опциона". Если выбрать, например, Put, блок посчитает количество путов на всех страйках (где они есть).

Данный блок возвращает тип данных InteractiveSeries. Грубо говоря, это такой сильно продвинутый List<Point2D>.
Этот лист можно кинуть на панель-таблицу GridPane. Но для Ваших целей он не подходит. Надо либо писать на API свой блок для дальнейшей обработки, либо давайте формализуем что именно вы хотите получить в качестве ЧИСЛА?

Мне кажется, алгоритм "список страйков КРОМЕ ЦЕНТРАЛЬНОГО" и "один любой страйк КРОМЕ ЦЕНТРАЛЬНОГО" это как-то очень искуственно...



ПС Попробуйте ещё раз донести до меня простыми словами, что конкретно Вы пытаетесь сейчас сделать? Так понимаю, это что-то типа роллирования, чтобы Ваша позиция всегда была как можно ближе к рынку и в идеале чтобы она была сосредоточена на одном центральном страйке?.. confused
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Tue Sep 29 2015 04:09 PM

Originally Posted By: Evgeny_z
Есть еще такой (не срочный) глюк. На основном графике (бары) пропадают тени, точнее вертикальные линии. Остаются горизонтальные - открытие/закрытие .
Мышкой, колесом крутишь масштаб: щелчек - все нормально, щелчек - пропали тени, щелчек - опять все нормально, и т.д.


Можно попросить Вас сделать короткий ролик и кинуть куда-нить типа Jing, чтобы было понятно как это у Вас выглядит? shocked По описанию какая-то довольно странная картинка получается...

ПС У Вас, наверное, стоит настройка винды "Увеличивать шрифты"? Какой-нить коэффициент масштабирования 125% или 150%?
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Tue Sep 29 2015 04:36 PM

Originally Posted By: Option Wizard
...Можно попросить Вас сделать короткий ролик и кинуть куда-нить типа Jing, чтобы было понятно как это у Вас выглядит? shocked По описанию какая-то довольно странная картинка получается...

ПС У Вас, наверное, стоит настройка винды "Увеличивать шрифты"? Какой-нить коэффициент масштабирования 125% или 150%?


Сделал скрины - см. вложенные файлы.
Думаю что будет понятно, что происходит...
Автор: sar

Re: Как работают блоки в опционных скриптах? - Tue Sep 29 2015 04:54 PM

какой масштаб экрана стоит?
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Tue Sep 29 2015 05:24 PM

Originally Posted By: Option Wizard
Правильно ли Вас понял, что Вы хотите получить список страйков с ненулевым открытым сайзом?

Хочу отдельно подчеркнуть. что это именно список страйков, а не отдельное число. То есть Вам ещё как-то приделся потом решать какое из, например, 5 чисел Вам не нравится.

В данный момент что-то отдаленно похожее происходит в блоке "Single Series Position Grid" == "Таблица позиции (одна серия)" (раздел "Options - Positions").

Блок имеет параметр "Option Type" == "Тип опциона". Если выбрать, например, Put, блок посчитает количество путов на всех страйках (где они есть).

Данный блок возвращает тип данных InteractiveSeries. Грубо говоря, это такой сильно продвинутый List<Point2D>.
Этот лист можно кинуть на панель-таблицу GridPane. Но для Ваших целей он не подходит. Надо либо писать на API свой блок для дальнейшей обработки, либо давайте формализуем что именно вы хотите получить в качестве ЧИСЛА?

Мне кажется, алгоритм "список страйков КРОМЕ ЦЕНТРАЛЬНОГО" и "один любой страйк КРОМЕ ЦЕНТРАЛЬНОГО" это как-то очень искуственно...

ПС Попробуйте ещё раз донести до меня простыми словами, что конкретно Вы пытаетесь сейчас сделать? Так понимаю, это что-то типа роллирования, чтобы Ваша позиция всегда была как можно ближе к рынку и в идеале чтобы она была сосредоточена на одном центральном страйке?.. confused


Да, Вы все правильно понимаете.

Насчет списка - это понятно, что сейчас заложено.

Речь идет о классической стратегии - "Покупка стрэддла". При этом покупаются Путы одного страйка, затем при необходимости позиция роллируется вслед за ценой БА.
При постоянно включенном Агенте, смена страйка отслеживается. Но так как в новой версии нет полноценного пересчета по истории, то при включении с временным разрывом может сложиться ситуация , когда требуемый рабочий страйк не соответствует набранным опционам по страйку, а скрипт или Агент этого не "видят".
Сегодня так было - утром центральный страйк изменился. Агент, включенный по расписанию, отследил ситуацию, а скрипт, запущенный позднее - ее "не увидел".

При дельта хеджировании позиция может выйти за рабочие пределы.
Агент не контролирует данную ситуацию, а должен... (мы же делаем робота).

Если коротко, то нужна информация о численном значении страйка (или страйков), купленных и не закрытых опционов.
Или второй вариант - сигнал числовой или логический, что в набранной на данный момент позиции присутствуют опционы со страйком, отличным от заданного в скрипте.

P.S. Конечно, это может оказаться частным случаем при расширении стратегии, но тем не менее, такая информация нужна. А то приходится руками влезать... и это уже не робот.
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Tue Sep 29 2015 05:27 PM

Originally Posted By: sar
какой масштаб экрана стоит?



=125% - см. выше картинку-файл "Сведения о ПК.png".
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Tue Sep 29 2015 06:17 PM

Originally Posted By: Option Wizard
Originally Posted By: Evgeny_z
Есть еще такой (не срочный) глюк. На основном графике (бары) пропадают тени, точнее вертикальные линии. Остаются горизонтальные - открытие/закрытие .
Мышкой, колесом крутишь масштаб: щелчек - все нормально, щелчек - пропали тени, щелчек - опять все нормально, и т.д.


Можно попросить Вас сделать короткий ролик и кинуть куда-нить типа Jing, чтобы было понятно как это у Вас выглядит? shocked По описанию какая-то довольно странная картинка получается...

ПС У Вас, наверное, стоит настройка винды "Увеличивать шрифты"? Какой-нить коэффициент масштабирования 125% или 150%?


Обнаружил следующие отличия, если это Вас порадует.
Эффект этот с пропаданием теней на графике - проявляется только у скриптов в лаборатории.
У запущенных агентов этого эффекта не наблюдается!

P.S. В моих агентах - нет. Местами проявляется в агенте 75 - HV (ALL) - единственно, что в нем изменил перед запуском, это поменял свечи на бары на графике (и было это 07.09.2015)
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Tue Sep 29 2015 06:51 PM

Originally Posted By: Evgeny_z
Речь идет о классической стратегии - "Покупка стрэддла". При этом покупаются Путы одного страйка, затем при необходимости позиция роллируется вслед за ценой БА.


Позволю себе не согласиться с эпитетом "классическая": всё же в ней есть автоматическое роллирование... Привык думать, что таскание опционов вслед за БА является слишком дорогим удовольствием...

По здравым размышлениям получается, что самым оптимальным решением будет расширение блока Buy Options логикой автоматического роллирования (по настроечному параметру).

То есть ветка логики с "уменьшения риска" будет включаться для всех страйков (кроме центрального) независимо от текущего риска.

Такое решение Вас устроит?
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Tue Sep 29 2015 07:24 PM

Originally Posted By: Evgeny_z
Originally Posted By: sar
какой масштаб экрана стоит?

=125% - см. выше картинку-файл "Сведения о ПК.png".


Неточность с отображением тонких линий в такой конфигурации действительно имеется. Со временем мы её устраним.
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Tue Sep 29 2015 07:49 PM

Спасибо за скорую реакцию!

Originally Posted By: Option Wizard
Позволю себе не согласиться с эпитетом "классическая": всё же в ней есть автоматическое роллирование... Привык думать, что таскание опционов вслед за БА является слишком дорогим удовольствием...

"Классическая" - я имел ввиду, что не придумал ничего нового. Не хочу быть оригинальным, но Стредл описан практически у всех именитых опционщиков... (Конноли, МакМиллан, Томсетт...) не считая нашего интернет сообщества.

Что касается "дорогого" перетаскивания, то, во-первых, это происходит не так уж и часто, все зависит конкретных деталей и настроек. А во-вторых, перетаскиваем не опционы, а Стредл - в его рабочую зону.

В любом случае, не попробуешь, не узнаешь...

Quote:
...По здравым размышлениям получается, что самым оптимальным решением будет расширение блока Buy Options логикой автоматического роллирования (по настроечному параметру).

То есть ветка логики с "уменьшения риска" будет включаться для всех страйков (кроме центрального) независимо от текущего риска.

Такое решение Вас устроит?

Вы пытаетесь глобально автоматизировать - сразу раллировать блоком "Buy Options". Знать бы наверняка, что завтра не понадобится менять логику...

Мне кажется лучше, если какой либо блок будет выдавать данную информацию на один из своих выходов, информацию доступную блоку Формула.
А логику мы приделаем пока внешнюю и управлять будем, например, через вход Max Risk.

Такой вариант возможен?

P.S. Такая логика уже реализована. На случай произвольного отключения/включения нужен достоверный сигнал от существующей позиции на счету скрипта...
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Thu Oct 01 2015 10:41 PM

Originally Posted By: Option Wizard
... Привык думать, что таскание опционов вслед за БА является слишком дорогим удовольствием...


"Таскание опционов вслед за БА является слишком дорогим удовольствием" - тоже классика?
Согласен, это когда опционы продают, то и "хедж" идет в убыток.
Слышал от профессионалов поговорку, что: "...нельзя продавать в нашей жизни три "вещи" - Маму, Родину и Опцион".

Добрый день!

Нужна небольшая консультация...

Как я понял, агенты "HV (All)" и "Collect IV (ALL)" - должны работать постоянно и писать в кэш... И работают они, исходно, на М1 интервале.
Вопрос, если я хочу запустить свой скрипт на 5-ти секундном таймфрейме, надо ли и их переводить туда же?
Я имею ввиду расчет дельты для хеджа?
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Fri Oct 02 2015 10:29 AM

Originally Posted By: Evgeny_z
Как я понял, агенты "HV (All)" и "Collect IV (ALL)" - должны работать постоянно и писать в кэш... И работают они, исходно, на М1 интервале.

Совершенно верно.

Originally Posted By: Evgeny_z
Вопрос, если я хочу запустить свой скрипт на 5-ти секундном таймфрейме, надо ли и их переводить туда же?
Я имею ввиду расчет дельты для хеджа?


Это не требуется. Изменение волатильностей происходит значительно медленней, чем изменение дельты.
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Mon Oct 12 2015 06:52 PM


Добрый день!

Небольшой вопрос по интерфейсу.

Есть вкладка Position и, соответственно, блок (или панель) с именем "PositionPane", в котором в редакторе задаются координаты отображаемого графика: X1, X2, Y1, Y2 текущей позиции.
Все удобно, наглядно и красиво.

Однако есть два момента при эксплуатации...

1. При работе агента, настроенный график "уплывает" в сторону или вверх, т.к. изменяется прибыль/убыток (по Y), а также из-за смены страйков (по X);

2. Изначально раз настроив про него забываешь, запускаешь агент, смотришь график позиции и... оказывается заложил уже другие данные для позиции (например, другое число лотов и т.п.)
А изменить настройки графика можно только из редактора, а редактор у агента недоступен, а агент уже работает - не хочется трогать. Пропадает весь эффект...

Нельзя ли вывести каким-то образом эти параметры X1, X2, Y1, Y2 для оперативного изменения и подстройки на вкладку с графиком, также как в контрольной панели?

Не фатально, но было бы удобно...
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Fri Oct 16 2015 02:20 PM

Originally Posted By: Evgeny_z
Есть вкладка Position и, соответственно, блок (или панель) с именем "PositionPane", в котором в редакторе задаются координаты отображаемого графика: X1, X2, Y1, Y2 текущей позиции.
Все удобно, наглядно и красиво.

Однако есть два момента при эксплуатации...

1. При работе агента, настроенный график "уплывает" в сторону или вверх, т.к. изменяется прибыль/убыток (по Y), а также из-за смены страйков (по X);

2. Изначально раз настроив про него забываешь, запускаешь агент, смотришь график позиции и... оказывается заложил уже другие данные для позиции (например, другое число лотов и т.п.)
А изменить настройки графика можно только из редактора, а редактор у агента недоступен, а агент уже работает - не хочется трогать. Пропадает весь эффект...

Нельзя ли вывести каким-то образом эти параметры X1, X2, Y1, Y2 для оперативного изменения и подстройки на вкладку с графиком, также как в контрольной панели?

Не фатально, но было бы удобно...


Но, кстати, вообще-то странно: насколько я помню, панель с профилем позиций сама определяет свой отображаемый диапазон...

Иными словами: если там ничего не написать (в параметрах X1, Y1, X2, Y2), то панель будет сама себя перемасштабировать, чтобы показать все данные.

Что касается скрипта "Buy Vola" -- к этой панели дополнительно подключен блок "Set Viewport" == "Настройка графика". Он сконфигурирован управлять только осью X. Алгоритм работы примерно такой:
- определить текущий рабочий диапазон цен (именно для этого ему на вход подаётся FutPx и улыбка)
- выставить диапазон отображения по оси Х (ширина видимой области определяется параметром "Width Multiplier" == "Множитель ширины")
- определяет шаг между страйками и в зависимости от этого настраивает шаг горизонтальной сетки (шаг вертикальных линий)
- по цене фьючерса он определает с какой точностью следует выводить подписи на оси Х. Например, для РИ и СИ числа округляются до тысяч. Для нефти и серебра пописи пойдут без дробной части. И т.д.

В данном скрипте с осью Y мы никак не работаем и поэтому ей должен автоматически присваиваться максимально широкий диапазон, чтобы влезли все данные.

Последний нюанс состоит в том, что если Пользователь сам установил для себя видимую область (например, понажимал кнопки +/-), то алгоритм автомасштабирования выключается.
Вернуть его к жизни можно нажатием кнопки "><".
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Mon Oct 19 2015 01:59 PM

Добрый день!

Да, спасибо за разъяснения.
Успел обратиться в поддержку, получил ответ. Убрал все цифры по координатам. Заработало авто масштабирование.
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Mon Oct 19 2015 06:28 PM

Кстати о графиках.

Есть проблема. Вывожу текущее значение переменной (например, дельты) на временной график.
Переменная точно имеет два знака после запятой. А на графике - целые числа (в том числе, во всплывающей подсказке).

Как настроить Панель графика, чтобы шкала показывала пару знаков после запятой?
Автор: sar

Re: Как работают блоки в опционных скриптах? - Mon Oct 19 2015 06:48 PM

в редакторе в панели на которую выводите значение, имеется настройка точности шкалы.
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Mon Oct 19 2015 07:22 PM

Причем настройки правой и левой шкалы раздельные.

Также там есть возможность заказать вывод значений сразу в процентах (то есть все числа перед рисованием будут умножены на 100). Это удобно, если на график выводится историческая или подразумеваемая волатильность.

Как Вы вероятно уже поняли в опционном АПИ при передаче значений между блоками принято соглашение, что валитльности указываются всегда в дробном виде. Например, 0.28 вместо 28%.
При этом для удобства пользователя (и только для целей отображения!!!) волатильности выводятся в процентах.

ПС Если Вы будете писать свой блок на АПИ, рекомендую использовать для этого статические функции

TSLab.Script.Handlers.Options.FixedValue.ConvertToDisplayUnits
и
TSLab.Script.Handlers.Options.FixedValue.ConvertFromDisplayUnits
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Mon Oct 19 2015 08:23 PM

Спасибо Sar, спасибо Option Wazard за разъяснения.

Давайте теперь вернемся к исходному вопросу (простите за бестолковость...).
В настройках шкалы по умолчанию стоит: "Точность правой шкалы = -1". Пробовал ставить -2, -10 и т.п. Ничего не получилось - на графике все одно, целые числа.

Вопрос, каковы должны быть конкретные действия, что бы получить на графике два знака после запятой?

К графику прицеплены сигналы: выход от блока DeltaATM и выход бока Формула (значения точно не целые).
Автор: sar

Re: Как работают блоки в опционных скриптах? - Tue Oct 20 2015 10:45 AM

-1 это целые числа 0 это те что считаются в линии 1 2 3 и тд количество цифр после запятых
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Tue Oct 20 2015 01:06 PM

Originally Posted By: Evgeny_z
Вопрос, каковы должны быть конкретные действия, что бы получить на графике два знака после запятой?


Цифру "2" попробуйте поставить?..
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Tue Oct 20 2015 06:02 PM

Originally Posted By: Option Wizard
Originally Posted By: Evgeny_z
Вопрос, каковы должны быть конкретные действия, что бы получить на графике два знака после запятой?


Цифру "2" попробуйте поставить?..


Добрый день!

Да, поставил цифру 2 - сработало.
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Thu Oct 22 2015 02:21 PM

Добрый день!

Нужна консультация, хотелось бы уточнить логику работы 2-х блоков.
В блоке Покупка Опционов есть параметры Сдвиг входа (Entry shift) и Сдвиг выхода (Exit shift) и, соответственно, в блоке Автохеджер дельты - параметры Сдвиг покупок, Сдвиг продаж.

В целом логика понятна, но хотелось проговорить конкретно - к какой цене и как прибавляется параметр смещения. Меняется ли логика выставления цены, если параметр =0 или !=0?
При том, что в настройках агента установлены: в блоке Цена БА - алгоритм BidAskMidPoint, в блоке Преобразовать улыбку - Вид цены Mid.
В других местах ценовых установок не нашел.
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Thu Oct 22 2015 03:16 PM

1. Блок AutoHedge.

Если при дельта-хедже возникает необходимость купить фьючерс, цену заявки можно сдвинуть на заданное количество шагов цены (параметр Buy shift).

Отрицательный Buy shift сдвинет цену ВНИЗ. То есть Вы получаете лучшую цену.

Положительный Buy shift сдвинет цену ВВЕРХ. На быстром рынке Вы получите более высокую вероятность исполнения. Ценой этого будет некоторое проскальзывание на каждой оперции хеджирования.

По умолчанию заявка выставляется по той цене FutPx, которую Вы передаёте в этот блок.

Sell shift работает точно также.

Наверное, проще описать алгоритм в коде (px -- это цена лимитника, который мы сейчас поставим; sec.Tick -- шаг цены инструмента):
px = futPx + SellShift * sec.Tick;
и
px = futPx + BuyShift * sec.Tick;



2. Блок BuyOptions.
Здесь "Entry" (то есть вход в позицию) означает "купить".
Выставление отрицательного Entry shift позволяет получить лучшую цену покупки.

"Exit" (то есть выход из позиции) означет операцию "продать".
Выставление положительного Exit shift позволяет получить лучшую цену продажи. Соответственно, если мы торопимся куда-то, то надо Exit shift делать 0 или даже отрицательным.

В качестве опорной цены используется теоретическая цена опциона исходя из улыбки, которую мы передаём в этот блок. По умолчанию для этого используется наша собственная "рыночная" улыбка. На графиках она всегда рисуется красным. Именно к ней относятся параметры Skew (наклон улыбки) и Shape (крутизна крыльев).



3. Блок SellOptions.

Здесь "Entry" (то есть вход в позицию) означает "ПРОДАТЬ".
Выставление ПОЛОЖИТЕЛЬНОГО Entry shift позволяет получить лучшую цену продажи.

"Exit" (то есть выход из позиции) означет операцию "КУПИТЬ".
Выставление отрицательного Exit shift позволяет получить лучшую цену покупки. Соответственно, если мы торопимся куда-то, то надо Exit shift делать 0 или даже положительным.

Ответил?

ПС Как правило, если возникает задача что-то куда-то сдвинуть, стараюсь использовать при этом операцию сложения. Имея в виду, что если нужного кого-то вычесть, то сдвиг в этой ситуации можно задать отрицательным.

ППС Мне показалось, Вы в тексте затронули ещё 2 блока в общей куче (FutPx и WrapSmile(?)). Задайте вопрос почетче, пожалуйста.
Если про них что-то непонятно.
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Thu Oct 22 2015 04:33 PM

Да, спасибо. Ответ исчерпывающий.

Другие блоки упомянул для полноты картины... мало ли чего.

Изначально я так примерно все и представлял себе.
Сомнения закрались, когда смотришь параллельно цены в менеджере заявок - лучшие покупки, лучшие продажи и т.п. - чисто эмоционально...
Решил, что лучше все битым словом услышать (точнее, увидеть). еще раз спасибо.

Реплика попутно.
"Достают" контрольные панели - как-то работают они не устойчиво.
А именно:
1. Периодически изменяются значения параметров, установленные в панели, на более старые варианты (иногда на очень старые варианты - кто где помнит, удивительно?).
Иногда это происходит после нового запуска программы или агента, иногда самопроизвольно во время работы (не могу уследить почему).
2. Изменение параметра на новое значение в 2-х из 3-х попыток "откатываются" обратно на старое значение. Иногда чтобы изменить параметр (любой числовой) приходится повторять это по нескольку раз...

Сами понимаете, момент не приятный, особенно когда что-то динамично меняется на рынке.

Отпишу все это в поддержку - здесь по моему даже Лог не нужен. Чисто на экране все происходит. В такого не замечали?

P.S. Правда одна оговорка, работаю с таймфреймом 5 секунд... есть нюансы.
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Thu Oct 22 2015 05:35 PM

Originally Posted By: Evgeny_z
Отпишу все это в поддержку - здесь по моему даже Лог не нужен. Чисто на экране все происходит. В такого не замечали?

P.S. Правда одна оговорка, работаю с таймфреймом 5 секунд... есть нюансы.


Вроде, что-то такое наблюдал пару раз давно... Сам живу в ТФ S10 обычно.

Из общих соображений вероятность этого явления должна падать с ростом ТФ и увеличением мощности машины...

tslab.log приложите всё-таки. Чтобы потом лишний раз не бегать...
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Thu Oct 22 2015 06:43 PM

Originally Posted By: Option Wizard
Originally Posted By: Evgeny_z
Отпишу все это в поддержку - здесь по моему даже Лог не нужен. Чисто на экране все происходит. В такого не замечали?

P.S. Правда одна оговорка, работаю с таймфреймом 5 секунд... есть нюансы.


Вроде, что-то такое наблюдал пару раз давно... Сам живу в ТФ S10 обычно.

Из общих соображений вероятность этого явления должна падать с ростом ТФ и увеличением мощности машины...

tslab.log приложите всё-таки. Чтобы потом лишний раз не бегать...


Да, может лишние агенты и окна надо закрыть, попробую.

Приведу пример на эту тему.
Сигнал от блока СуммаОткрытыхПозиций выведен на график в виде гистограммы.
Так вот, на ТФ S5 есть "выпадения" (пропуски в 1 тик) - только на графике, сама позиция не меняется.
А на ТФ М1 - все чисто...
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Thu Oct 22 2015 07:53 PM

В окне Главного Лога приложения при этом не написано случайно что-то типа "Неправильное число баров при пересчете"?
"Максимальное возможное расхождение 1 бар"?
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Thu Oct 22 2015 10:58 PM

Originally Posted By: Option Wizard
В окне Главного Лога приложения при этом не написано случайно что-то типа "Неправильное число баров при пересчете"?
"Максимальное возможное расхождение 1 бар"?


Посмотрел. Действительно есть сообщения, совпадающие по времени с пропусками сигналов, типа:
22:47:24.52 134 Агент 'Ws3': Пересчет по 'SR8750BK5' прошел с разницей в 2 баров (норма 1 бар). Возможны пропуски сигналов.

Выходит, не успевает скрипт. Надо переходить на более длинный ТФ, на те же S10, например.
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Fri Oct 23 2015 11:57 AM

Добрый день!

Перешел на ТФ S10.
Однако смотрю появляются еще иногда пропуски на графике.

Посмотрел в логе:
11:47:11.51 131 Агент 'Ws3': Нет свечи для привязки заявки '246456191'. Дата заявки 23.10.2015 11:47:03.
Автоматическое исполнение заявок временно отключено.

Это что означает - некий сбой? В каких ситуациях появляется?
Я так понимаю, не критично...
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Fri Oct 23 2015 03:12 PM

Не критично.
Чаще всего у меня это наблюдается (если наблюдается) при запуске ТСЛаб пока он ещё докачивает бары.

Пропуски в нормальной ситуации не должны наблюдаться.
Можете примерно написать параметры машины на которой Вы пытаетесь запустить его? Процессор, его частота, количество ядер, объём памяти.

Провайдер Финам?
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Fri Oct 23 2015 04:33 PM

Originally Posted By: Option Wizard
Не критично.
Чаще всего у меня это наблюдается (если наблюдается) при запуске ТСЛаб пока он ещё докачивает бары.

Пропуски в нормальной ситуации не должны наблюдаться.
Можете примерно написать параметры машины на которой Вы пытаетесь запустить его? Процессор, его частота, количество ядер, объём памяти.

Провайдер Финам?


Провайдер Финам.

Нетбук ASUS Ux32LN, Процессор i5, 2 ядра, 2,4 ГГц, 64х, RAM = 8 ГБ/1600 МГц, Windows 8.1

По пропускам - на ТФ S10 стало существенно лучше. Иногда проскакивают - скорее всего уже из-за параллельной работы на ПК (запущено несколько агентов, скрипт в лабе редактировался и т.д.). Регулярных вроде нет.
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Wed Oct 28 2015 01:36 PM

Добрый день!

Заметил следующую проблему.

Подключил блок EMA к выходу блока "Численная дельта на деньгах", вывел значение блока EMA на Контрольную панель, а значение параметра блока EMA Период - на другую Контрольную панель.
Запустил агента - все работает, т.е. значение блока EMA выводится на КП.

При новом запуске программы могут быть две ситуации:

1. Если при выключении программы агенты были запущены - то при включении "клинит" блок EMA, т.е., отсутствуют значения на его выходе.
При этом, при перезапуске агента или программы это неисправное состояние остается.

2. Чтобы все заработало правильно требуется предварительная остановка агента перед выключением программы!
А включение должно проходить строго в следующей последовательности: Включение программы с запущенными (или потом запустить - не проверял) агентами 79-HV и 79-Collect IV, и только после этого - запустить своего агента.

Т.е., полностью автоматический запуск по расписанию - пока не получается...

Отписался в Поддержку... с картинками и Логом.
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Wed Oct 28 2015 02:50 PM

HV и Collect IV надо один раз в квартал запускать на новых инструментах и больше не трогать. То есть они всегда должны быть запущены.

С ЕМА интересное поведение. Надо будет попробовать.
А если её ещё вывести в виде индикатора на график Дельты?..
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Wed Oct 28 2015 03:05 PM

Originally Posted By: Option Wizard
HV и Collect IV надо один раз в квартал запускать на новых инструментах и больше не трогать. То есть они всегда должны быть запущены.

С ЕМА интересное поведение. Надо будет попробовать.
А если её ещё вывести в виде индикатора на график Дельты?..


Да собственно, я их не трогаю. HV и Collect IV запущены всегда.
Однако есть расписание, да и ПК выключаю на ночь.
Но вот такой эффект обнаружился...

Сейчас при запуске программы, видно, что первые секунды на Collect IV - пустые графики. Может с этим как-то связано. Конфликт агентов?

На сколько я понял, блоки расчета дельты получают в конечном итоге информацию из глобалного кэша, т.е., от HV и Collect IV ?
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Wed Oct 28 2015 03:12 PM

Originally Posted By: Evgeny_z
На сколько я понял, блоки расчета дельты получают в конечном итоге информацию из глобалного кэша, т.е., от HV и Collect IV?


Совершенно верно: эти агенты хранят вычисленные характеристики рынка в Глобальном Кеше.
И затем торговые скрипты берут оттуда готовые значения.
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Tue Nov 03 2015 05:46 PM

Добрый день!

Нужна консультация.

Дело в следующем.
Есть блок Автохеджер дельты и есть "кнопочка" - AutoHedge на Контрольной панели, что соответствует входу Ровнять дельту в блоке. При ее выключении останавливается процесс хеджирования, но набранная позиция базового актива остается.

Можно ли каким то образом при отключенном автохедже сбросить (закрыть) позицию БА, не затрагивая набранную позицию опционов?
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Thu Nov 05 2015 10:59 AM

Originally Posted By: Evgeny_z
Можно ли каким то образом при отключенном автохедже сбросить (закрыть) позицию БА, не затрагивая набранную позицию опционов?


Так на вскидку могу предложить следущее:
- смотрите количество фьючерсов в позиции
- выставляете "Target Delta" в настройках автохеджера РАВНОЙ ЭТОМУ КОЛИЧЕСТВУ (понятно, граничные значения настроек Up Delta и Down Delta тоже придется поправить)

В итоге Хеджер начнет верить, что Вы действительно хотите иметь дельту +N фьючерсов и закроет позицию по БА.

После этого отключаете Автохеджирование и, по желанию, ставите обратно Target Delta == 0.

ПС Autohedge -- это не кнопка, а чекбокс должен быть.
Кнопку я делал в другом скрипте. Идея была такая: хеджер выключен, но человек имеет возможность сам руками принять решение "пора ровнять" -- нажимает кнопку -- и вуаля! -- дельта выровнена.

Этот режим полезен тем, кто верит, что умеет анализировать рынок лучше тупого автомата и/или хотел бы хеджироваться на некоторых уровнях взятых из ТА.
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Thu Nov 05 2015 01:43 PM

Originally Posted By: Option Wizard
Originally Posted By: Evgeny_z
Можно ли каким то образом при отключенном автохедже сбросить (закрыть) позицию БА, не затрагивая набранную позицию опционов?


Так на вскидку могу предложить следущее:
- смотрите количество фьючерсов в позиции
- выставляете "Target Delta" в настройках автохеджера РАВНОЙ ЭТОМУ КОЛИЧЕСТВУ (понятно, граничные значения настроек Up Delta и Down Delta тоже придется поправить)

В итоге Хеджер начнет верить, что Вы действительно хотите иметь дельту +N фьючерсов и закроет позицию по БА.

После этого отключаете Автохеджирование и, по желанию, ставите обратно Target Delta == 0.

ПС Autohedge -- это не кнопка, а чекбокс должен быть.
Кнопку я делал в другом скрипте. Идея была такая: хеджер выключен, но человек имеет возможность сам руками принять решение "пора ровнять" -- нажимает кнопку -- и вуаля! -- дельта выровнена.

Этот режим полезен тем, кто верит, что умеет анализировать рынок лучше тупого автомата и/или хотел бы хеджироваться на некоторых уровнях взятых из ТА.


Добрый день!

Quote:
...Этот режим полезен тем, кто верит, что умеет анализировать рынок лучше тупого автомата и/или хотел бы хеджироваться на некоторых уровнях взятых из ТА.


Тут ноги растут из другого места... Этот режим бывает нужен в нештатных ситуациях, которые возникают по разным причинам.
Как от человеческого фактора, так и по техническим причинам, к которым я отношу в том числе и нестабильный интерфейс TSLab (сейчас я говорю о работе Контрольной панели).

Дело в следующем. Контрольная панель - уникальная вещь, дающая большие возможности для управления параметрами агента. Однако работает не стабильно:
- Если меняешь параметр, то он зачастую "откатывается обратно" буквально через тик. Приходится иной раз в несколько повторов достигать нужного значения;
- Сохраненные разными способами параметры вдруг (обычно при перезапуске агента или программы) изменяются на какие-то предыдущие значения, бывает, что на очень старые значения - кто, где их хранит и по какой логике достает - непонятно.
Но бывает очень неприятно, когда вдруг Max Risk изменяет значение при уже устоявшейся рабочей позиции, и агент начинает продавать лоты, когда ты этого не ждешь и когда этого не нужно делать. Увидел, жми "Block Trading", потом разбирайся - какие параметры приняли какие значения в данный момент.

Сейчас приходится работать по такому алгоритму (при том, что агент считается роботом):
- Перед отключением программы установить галочку "Block Trading", это чтобы потом при запуске ОН САМ НЕ ЗАРБОТАЛ и была бы возмжность проверить правильность параметров в Контрольной панели;
- Отключить агента в панели "Центр управления алготорговлей" - иначе при запуске агент запустится не полностью (EMA не дает значений при одновременном запуске агента с агентами HV и IV - уже писалось об этом в поддержку);
- При включении TSLab по расписанию, дождаться открытия рынка, запустить свой агент позже других;
- Проверить параметры агента на Контрольной панели, откорректировать при необходимости;
- Снять галочку "Block Trading".

Далее, если на рынке и у провайдера все ОК, то наслаждаемся торговлей агента.

Поэтому активно пользуемся чекбоксами Block Trading, AutoHedge, Закрыть позицию (устанавливает Max Risk=0).
Хотел сделать еще "Закрыть позицию БА".

Все это нужно для своего спокойствия (пока идет процесс отладки... агента, алгоритма и т.д.), что бы подправлять разные нештатные ситуации.

Quote:
...Так на вскидку могу предложить следущее:
- смотрите количество фьючерсов в позиции
- выставляете "Target Delta" в настройках автохеджера РАВНОЙ ЭТОМУ КОЛИЧЕСТВУ (понятно, граничные значения настроек Up Delta и Down Delta тоже придется поправить)

В итоге Хеджер начнет верить, что Вы действительно хотите иметь дельту +N фьючерсов и закроет позицию по БА...


Спасибо за идею, она рабочая. Что-то похожее руками я уже делал...

Есть еще вариант для управления Дельтой в обход параметров - подставлять на вход Автохеджера (вход Дельты) от блока формула значение количества лотов БА, а он будет "корректировать" закрывая позицию БА.

С уважением, Евгений
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Fri Nov 13 2015 01:37 PM

Добрый день!

Возник маленький вопрос.

Подскажите ка работает блок "Цена БА". Т.е., как определяется цена, которую выдает блок на каждом баре?
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Fri Nov 13 2015 02:54 PM

Originally Posted By: Evgeny_z
Подскажите ка работает блок "Цена БА". Т.е., как определяется цена, которую выдает блок на каждом баре?

Зависит от параметра "Algorythm" == "Алгоритм".
  • FixedPx -- фиксированная цена. Используется значение в параметре "Price" == "Цена"
  • LastTrade -- последний трейд БА
  • BidAskMidPoint -- середина между бидом и аском БА. Лучше подходит для менее ликвидных фьючерсов типа EuZ5, BRZ5 и т.д.
  • TheorPxBased -- На основании теоретических цен опционов. Этот режим имеет смысл включать, если цена приближается к планке по фьючерсу. Если инструмент лег на планку, цена БА перестаёт меняться, а опционы по-прежнему торгуются. Чтобы математикаа при этом не разваливалась, реализован режим вычисления цены БА на основании теоретических цен его опционов.
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Fri Nov 13 2015 03:08 PM

Originally Posted By: Option Wizard
Originally Posted By: Evgeny_z
Подскажите ка работает блок "Цена БА". Т.е., как определяется цена, которую выдает блок на каждом баре?

Зависит от параметра "Algorythm" == "Алгоритм".
  • FixedPx -- фиксированная цена. Используется значение в параметре "Price" == "Цена"
  • LastTrade -- последний трейд БА
  • BidAskMidPoint -- середина между бидом и аском БА. Лучше подходит для менее ликвидных фьючерсов типа EuZ5, BRZ5 и т.д.
  • TheorPxBased -- На основании теоретических цен опционов. Этот режим имеет смысл включать, если цена приближается к планке по фьючерсу. Если инструмент лег на планку, цена БА перестаёт меняться, а опционы по-прежнему торгуются. Чтобы математикаа при этом не разваливалась, реализован режим вычисления цены БА на основании теоретических цен его опционов.



Спасибо!
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Tue Dec 01 2015 01:40 AM

Добрый день!

По новой версии TSLab:

1. Подскажите, как пользоваться блоком "Последнее значение". Не могу понять, т.к. у блока есть вход и нет выхода?
Как связать значение Формулы или ОЗ с параметром, который надо изменить?

2. Опционные скрипты теперь, как я понял, в лаборатории запустить нельзя? Только редактировать?
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Tue Dec 01 2015 08:23 PM

Originally Posted By: Evgeny_z
1. Подскажите, как пользоваться блоком "Последнее значение". Не могу понять, т.к. у блока есть вход и нет выхода?
Как связать значение Формулы или ОЗ с параметром, который надо изменить?

Смотрим описание блока: "Преобразовать последнее значение индикатора в параметр"

В него засовывается обычная серия или индикатор. Блок берет самое последнее значение и превращает его в свой параметр. Выходов нет.

Если помните, этот блок я для Вас делал. Чтобы Вы могли менять Qty блоков Buy|Sell Options динамически.
Для этого можно воспользоваться блоком "Связать парметры".

Кстати, у блоков Buy|Sell Options появились ещё два входа для рисков колов и путов. Попробуйте поставить туда по 1? По задумке это как раз предотвратит перезафил при котировании. Конечно, если мерой риска является количество опционов.

Originally Posted By: Evgeny_z
2. Опционные скрипты теперь, как я понял, в лаборатории запустить нельзя? Только редактировать?

Что значит "нельзя запустить"? Их и раньше нельзя было запускать из лаборатории. Агенты ведь у Вас работают?

В ближайшее время выкачу обновленные версии скриптов под версию 2.0.4.7. Надеюсь, завтра получится. Надо ещё раз тряпочкой стёклышки протереть, сами понимаете...
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Wed Dec 02 2015 12:37 AM

Originally Posted By: Option Wizard
Originally Posted By: Evgeny_z
1. Подскажите, как пользоваться блоком "Последнее значение". Не могу понять, т.к. у блока есть вход и нет выхода?
Как связать значение Формулы или ОЗ с параметром, который надо изменить?

Смотрим описание блока: "Преобразовать последнее значение индикатора в параметр"

В него засовывается обычная серия или индикатор. Блок берет самое последнее значение и превращает его в свой параметр. Выходов нет.

Если помните, этот блок я для Вас делал. Чтобы Вы могли менять Qty блоков Buy|Sell Options динамически.
Для этого можно воспользоваться блоком "Связать парметры".


Да, помню. Спасибо. Пытаюсь освоить, но пока не удалось запустить.
Собрал для примера цепочку: Константа - Формула - Последнее значение. Выход Формулы соединил с блоком - Связать параметры (ведущий). Второй вход - с выхода блока Покупка опционов (параметр Qty)
См. картинку - вложенный файл.
Видно что-то не так делаю - блок Связанный параметр не видит Выражение в Формуле, а цепляется за параметр "Начинать с". TSLab при этом сильно ругается, разок завершил прогу с Fatal Error.
Так и раньше было с блоком Связанный параметр. Видно блок Последнее значение - не заработал у меня?

Quote:

Кстати, у блоков Buy|Sell Options появились ещё два входа для рисков колов и путов. Попробуйте поставить туда по 1? По задумке это как раз предотвратит перезафил при котировании. Конечно, если мерой риска является количество опционов.

Обязательно попробую. Пока не успел...

Quote:

В ближайшее время выкачу обновленные версии скриптов под версию 2.0.4.7. Надеюсь, завтра получится. Надо ещё раз тряпочкой стёклышки протереть, сами понимаете...


Да уж, понимаю. Не просто все...
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Thu Dec 03 2015 02:45 PM

Добрый день!

Так что с Последним значением?...
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Mon Dec 07 2015 07:04 PM

Originally Posted By: Option Wizard
...Кстати, у блоков Buy|Sell Options появились ещё два входа для рисков колов и путов. Попробуйте поставить туда по 1? По задумке это как раз предотвратит перезафил при котировании. Конечно, если мерой риска является количество опционов.


Добрый день!

Дело в следующем.
Опробовал работу блока Покупка опционов с использованием входа PutRisk, пока на виртуальных позициях.
Когда на входе 1 - все работает, набирает без перебора. Когда 0 - режим отключен. Все прекрасно!

Однако, в логике работы блока выявился маленький... момент.
Так, как логика работы изначально мне была не известна, то я начал с простого эксперимента.

Вывел на Контрольную панель устанавливаемое значение (от константы) - PutRisk. Установил MaxRisk=60, PutRisk=5, Qty=10 и запустил набор позиции.

Последовательность набираемой позиции Put оказалась следующей: 0, 20, 28, 34, ..., 53, 55 , 56. И ВСЕ! Далее, она так и осталась на уровне 56, т.е., не набранной до заданного значения.
Аналогичные результаты были с другими значениями PutRisk, отличными от 1.

В целом, ничего страшного не происходит, если знать, что допустимые значения только 0 или 1.
Но возможно стоило бы проявить гуманизм к пользователю, ограничив ввод недопустимых значений, например, программно.

С уважением, Евгений.

P.S. Подскажите все таки, как работать с блоком Последнее значение (см. сообщения выше). Пока не могу запустить его в работу.
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Tue Dec 08 2015 05:08 PM

Originally Posted By: Evgeny_z
В целом, ничего страшного не происходит, если знать, что допустимые значения только 0 или 1.
Но возможно стоило бы проявить гуманизм к пользователю, ограничив ввод недопустимых значений, например, программно.


Возможно, я нечетко написал в том месте, где анонсировал эти параметры.

Это РИСК ОДНОГО ОПЦИОНА.

Если Вы считаете, что Ваш риск -- 5 единиц на один пут, то понятно набор позы остановится на 56 лотах.
И это будет правильно.

Ещё раз поясняю: риск можно считать не только в штуках лотов.
Риск можно считать в гамме, веге, в тетах или воммах.
Вероятно, это покажется поначалу несколько нетривиальной мыслью, но, мне кажется, её надо просто перечитать примерно 100 раз и покрутить в голове.

Уверен, в итоге она вам понравится и Вы ещё будете плеваться на софт, в котором сделано по-другому.



ПС Про блок с параметром я не совсем понял что с кем Вы связываете. Нет под руками простенького скрипта из 2-х трёх блоков для примера?

Блок "Связать параметры" не надо приделывать к формуле.
Нужно взять индикатор (частным случаем которого является формула), пихнуть его на вход блока "Последнее значение".

После этого последнее значение индикатора превратиться в параметр блока "Последнее значение". Этот параметр можно для начала вывести на ControlPane и посмотреть как он живет.

Если всё понятно -- тогда можно попробовать взять блок "Связать параметры" и с его помощью приделать свойство блока "Последнее значение" к свойству Qty блока "Купить опционы".
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Tue Dec 08 2015 06:22 PM

Originally Posted By: Option Wizard
...Возможно, я нечетко написал в том месте, где анонсировал эти параметры.

Это РИСК ОДНОГО ОПЦИОНА.

Если Вы считаете, что Ваш риск -- 5 единиц на один пут, то понятно набор позы остановится на 56 лотах.
И это будет правильно.

Ещё раз поясняю: риск можно считать не только в штуках лотов.
Риск можно считать в гамме, веге, в тетах или воммах.
Вероятно, это покажется поначалу несколько нетривиальной мыслью, но, мне кажется, её надо просто перечитать примерно 100 раз и покрутить в голове.

Уверен, в итоге она вам понравится и Вы ещё будете плеваться на софт, в котором сделано по-другому.


Спасибо за разъяснение... не буду спорить насчет нетривиальности.
По крайней мере, я свой вариант нашел.


Quote:
...ПС Про блок с параметром я не совсем понял что с кем Вы связываете. Нет под руками простенького скрипта из 2-х трёх блоков для примера?

Блок "Связать параметры" не надо приделывать к формуле.
Нужно взять индикатор (частным случаем которого является формула), пихнуть его на вход блока "Последнее значение".

После этого последнее значение индикатора превратиться в параметр блока "Последнее значение". Этот параметр можно для начала вывести на ControlPane и посмотреть как он живет.

Если всё понятно -- тогда можно попробовать взять блок "Связать параметры" и с его помощью приделать свойство блока "Последнее значение" к свойству Qty блока "Купить опционы".


Вариант, который я пытался запустить я привел в прикрепленном файле (в этой ветке - два сообщения выше). На всякий случай повторю этот файл здесь - см. вложенный файл.
Собственно проблема оказалась в том, КАК конкретно ...взять блок "Связать параметры" и с его помощью приделать свойство блока "Последнее значение" к свойству Qty блока "Купить опционы".

Как подключиться к блоку "Последнее значение"? Если у того нет выхода?
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Wed Dec 23 2015 01:22 PM

Ау, разработчики!

Добрый день!
Уважаемый Option Wizard, больше 2-х недель нет ответа как работать с блоком "Последнее значение". Становится традицией...

Хотелось бы все таки получить техническую консультацию по этому вопросу, желательно с примером (то что очевидно для Вас, для нас убогих - далеко не всегда... к сожалению)

С уважением, Евгений.
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Thu Dec 24 2015 12:47 PM

Originally Posted By: Evgeny_z
Хотелось бы все таки получить техническую консультацию по этому вопросу, желательно с примером (то что очевидно для Вас, для нас убогих - далеко не всегда... к сожалению)


1. Мне по-прежнему кажется, что динамическое управление Qty не самый лучший способ обеспечить выполнение ограничения по MaxRisk.
Особенно после того как в 2.0.4.7 были добавлены входы CallRisk, PutRisk блокам "Buy options" / "Sell options".

Под этим углом зрения блок "Last value" -- некий уродец для решения одной очень узкой задачи.
Не уверен, что его надо удерживать в дальнейших релизах.


2. В 2.0.4.7 "Last Value" сделан неверно.
Поэтому и кодогенерация скрипта не проходит.

Спасибо, что проявили настойчивость и обратили моё внимание на это обстоятельство.

Заодно мы выяснили, что блок "Linked parameter" плохо переваривает блоки без выходов.
Полагаю, мы постараемся устранить это ограничение в ближайшее время.


3. В конечном итоге я бы предложил Вам постараться избежать использование блока "Last value".
Давайте ещё раз обсудим, для решения какой задачи Вы собираетесь его использовать теперь и чувствуете, что никаким другим способом её не решить?
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Thu Dec 24 2015 02:43 PM

Добрый день!

Спасибо что ответили.

Originally Posted By: Option Wizard
1. Мне по-прежнему кажется, что динамическое управление Qty не самый лучший способ обеспечить выполнение ограничения по MaxRisk.
Особенно после того как в 2.0.4.7 были добавлены входы CallRisk, PutRisk блокам "Buy options" / "Sell options".

Дело в следующем. Вы совершенно правы, в настоящий момент обозначенный вопрос с Qty - фактически решен.
Блок "Последнее значение" в данном случае я подключал чисто для его освоения - чтобы понять как с ним работать.

Quote:
Под этим углом зрения блок "Last value" -- некий уродец для решения одной очень узкой задачи.
Не уверен, что его надо удерживать в дальнейших релизах.


Насчет "уродца" я как пользователь с Вами не соглашусь. Этот блок дает фактически новое качество, принципиально новую функцию, которой ранее не было в этом "конструкторе".
А запросы на нее - т.е., оперативный доступ к параметрам, были еще при работе в TSLab 1.2.
Задачи с этим блоком решаются действительно "узкие", точнее "конкретные", Но их потенциально много, как много различных параметров в блоках...


Quote:
...3. В конечном итоге я бы предложил Вам постараться избежать использование блока "Last value".
Давайте ещё раз обсудим, для решения какой задачи Вы собираетесь его использовать теперь и чувствуете, что никаким другим способом её не решить?



Если затраты на "запуск" этого блока не супер крутые, то хотелось бы, чтобы в TSLab этот функциональный блок присутствовал.

Для примера, отрабатываю вариант с управлением параметром автохеджера "Целевая дельта", для дельта направленной торговли по тренду.
Сейчас это реализуется подстановкой значений на вход хеджера. А это не во всех релизациях работает (в автомате - работает, при попытке управлять вручную из под кнопки -нет). А это тоже параметр.


P.S. Кстати о роботах. Пришлось притормозить все работы. Невозможно отладить работу скриптов по следующим причинам:

1. Нет "истории". В скрипте около 10-15 параметров, многие из которых на Контрольную панель выведены временно - для первичной настройки и отладки и потом будут зафиксированы.
Сами понимаете - такую комбинаторику и взаимное влияние одного на другое трудно интуитивно "прососать" в режиме он-лайн.
Запускал по 5-7 скриптов с разными установками параметров - чтобы отладиться.
Нарвался на причину №2, еще более серьезную...

2. Нечем достоверно контролировать текущий результат работы агента. я имею ввиду работу блоков Профит, Доход и т.п.

Есть и рабочий фон - раздражающий фактор.
Не до конца отлажен интерфейс. Контрольная панель - "откатываются" параметры при попытке их изменить, при запуске по расписанию - иногда не запускаются индикатроры, в частности МА, Фильтры в таблицах не помнят настроек и т.д.

Эти проблемы Вам известны, отписаны все на поддержку.

Так что будем ждать обновления версии.

С уважением, Евгений.
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Thu Dec 24 2015 03:55 PM

Originally Posted By: Evgeny_z
Насчет "уродца" я как пользователь с Вами не соглашусь. Этот блок дает фактически новое качество, принципиально новую функцию, которой ранее не было в этом "конструкторе".
А запросы на нее - т.е., оперативный доступ к параметрам, были еще при работе в TSLab 1.2.
Задачи с этим блоком решаются действительно "узкие", точнее "конкретные", Но их потенциально много, как много различных параметров в блоках...


Мы, кажется, про разное сейчас говорим. Last Value превращает ИНДИКАТОР в параметр, который можно куда-то выпихнуть на ControlPane.
А Вы просите сделать обратное действие -- ПАРАМЕТР превратить в индикатор. Если я правильно Вас понял.

И ещё есть ощущение, что Вы не совсем четко понимаете себе как работает блок "Linked parameter". Он уже давно присутствует (ещё с вериси 1.2). Наверняка в документации описан подробно.

С его помощью можно завести 2 машки (например, SMA и EMA) и гарантировать, что у них будут всегда одинаковые периоды.

Originally Posted By: Evgeny_z
Если затраты на "запуск" этого блока не супер крутые, то хотелось бы, чтобы в TSLab этот функциональный блок присутствовал.


Пока что он будет присутствовать.
Когда начнет работать нормально, скорее всего удастся окончательно с ним разобраться.
И если он действительно будет полезен -- никуда он не денется.

К сожалению, в данный момент всплыло ещё одно старое ограничение Редактора Скриптов, который не позволяет нормально связывать Last value с Linked parameter. Надеюсь, починим и эту болячку.

Originally Posted By: Evgeny_z
2. Нечем достоверно контролировать текущий результат работы агента. я имею ввиду работу блоков Профит, Доход и т.п.


Если Вы про стандартные блоки -- они с опционами не дружат. Есть свой опционный блок Total profit. Но он тоже даёт только оценку финреза.
Автор: jhgjrht

Re: Как работают блоки в опционных скриптах? - Thu Dec 24 2015 04:36 PM

Заодно, добавьте возможность "связанному параметру" связывать более 2 блоков. Это не будет лишним.
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Thu Dec 24 2015 05:03 PM

Originally Posted By: jhgjrht
Заодно, добавьте возможность "связанному параметру" связывать более 2 блоков. Это не будет лишним.


Ctrl-C + Ctrl-V и потом всю пачку блоков прячете в группу.
Это вполне решает задачу "один-ко-многим", поэтому в ближайшее время вряд ли мы мы будем этим заниматься.

Попробуйте изложить Ваш запрос в ветке "пожелания и предложения"?
Если Вам удастся ясно сформулировать почему это вот так прямо необходимо
и почему нельзя обойтись группирование блоков,
то, полагаю, это доработку поставят в план
и со временем она будет сделана.
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Fri Dec 25 2015 12:41 AM

Добрый вечер!

Дело в следующем.

Originally Posted By: Option Wizard
...Мы, кажется, про разное сейчас говорим. Last Value превращает ИНДИКАТОР в параметр, который можно куда-то выпихнуть на ControlPane.
А Вы просите сделать обратное действие -- ПАРАМЕТР превратить в индикатор. Если я правильно Вас понял.

Нет, тут не сомневайтесь, мы говорим об одном и том же.
Конкретный пример. Допустим, формула (считаем что это индикатор) дает в какой то момент времени значение=8, и параметр блока Автохеджер "Целевая дельта", к примеру, должен установиться =8. И т.д., а не наоборот.

Quote:
И ещё есть ощущение, что Вы не совсем четко понимаете себе как работает блок "Linked parameter". Он уже давно присутствует (ещё с вериси 1.2)...


И тут не сомневайтесь. Неоднократно применял этот блок в версии 1.2 для синхронизации параметров однотипных блоков (например, периоды блоков "Максимум за" и "Минимум за" и т.п.).


Originally Posted By: Evgeny_z
2. Нечем достоверно контролировать текущий результат работы агента. я имею ввиду работу блоков Профит, Доход и т.п.


Какие бы блоки "доход/убыток" ни были, стандартные или нет, они жизненно нужны. И не только для отладки скрипта.
Ведь самый совершенный робот, в конечном итоге, все равно является средством автоматизации ручного трейдинга. Финальные решения о выходе из позиции (да и о входе в нее тоже) приходится принимать зачастую самому.
Зачастую, достаточно быстро (если рынок быстро меняется) - при этом перед глазами должна быть текущая достоверная информация не только о финрезе, как Вы это называете, а также о прибыли/убытке позиции, если позицию закрыть в данный текущий момент. Считать на калькуляторе - некогда...
Кстати, при ручном трейдинге это также актуально.

Так что ждем обновлений.

И... Да пребудет с вами Вола!
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Fri Dec 25 2015 11:40 AM

Originally Posted By: Evgeny_z
Зачастую, достаточно быстро (если рынок быстро меняется) - при этом перед глазами должна быть текущая достоверная информация не только о финрезе, как Вы это называете, а также о прибыли/убытке позиции, если позицию закрыть в данный текущий момент. Считать на калькуляторе - некогда...


Заложу в голову закладку на этот счет.
Но тут несколько иная ситуация: если у Вас на руках сложная опционная позиция Вы не можете закрыть её по рынку.
Поэтому и оценка "Ликвидационная стоимость" совершенно бессмысленна.

"Ликвидация позиции" в случае опционов -- это выровнять дельту.
Обнулить вегу.
Потом тету по возможности.

Но это ещё не означает, что "финрез зафиксировался".
Как быть в этой ситуации?
Что предлагаете?
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Fri Dec 25 2015 02:14 PM

Добрый день!

Originally Posted By: Option Wizard
...Заложу в голову закладку на этот счет.

Спасибо!

Quote:
..Но тут несколько иная ситуация: если у Вас на руках сложная опционная позиция Вы не можете закрыть её по рынку.
Поэтому и оценка "Ликвидационная стоимость" совершенно бессмысленна...

...Что предлагаете?


Что касается закрытия по рынку. Во-первых, согласитесь нужна достоверная информация для принятия решений.
На реальных сделках в таблице "Позиции" есть графа "Оцен.цена". Это как бы худший текущий вариант закрытия и при этом ничего не гарантировано (еще надо закрыться, а как получится - кто знает?)
Но по ней можно ориентироваться при принятии решений - это информация реальная. Ее, наверное, можно использовать в агенте.
Хорошо бы и на виртуальных сделках иметь что-то похожее...

Если в агенте будет подобная информация по всей позиции или по ее частям (может по частям даже лучше - для анализа событий), да еще доступна не только визуально, но и для блоков управления в скрипте (это же робот все таки),
то ПОЯВИТСЯ ВОЗМОЖНОСТЬ анализировать, торговать, отлаживать и т.д. и т.п.

Дальнейшие действия агента или трейдера - уже на выбор, кто чего сообразит - ликвидация позиции, выровнять дельту, обнулить вегу, потом тету по возможности... тут вариантов может быть много.

Сложную позицию можно представить как сумму более простых.
Может начать с частного варианта (но фактически это закроет многие варианты позиций).
Например купленные опционы одного типа и Базовый актив (Стрэддл = Put + фьючерс).
Здесь нужен текущий доход от позиции опционов и доход от позиции Базового актива (при этом идет дельта хеджирование позиции, которое тоже дает доход. И его тоже надо учитывать)

Часть информации, как я понял уже есть.
Например, я "прицепил" блок "Цены позиции (одна серия)" к панели "Позиция" и он дает усредненную цену набранных опционов каждого страйка (только не понятно как сбрасывать старую информацию - каждый раз менять имя агента?)

Т.е., получается, что разрозненная информация присутствует. Только собрать бы ее в несколько блоков типа "Доход...".

Насколько это сложно, честно скажу, имею слабое представление. Но хочется чтобы было...

С уважением, Евгений.
Автор: hell0men

Re: Как работают блоки в опционных скриптах? - Mon Feb 29 2016 11:13 AM

Подскажите какими блоками получить историческую IV в алгоритм? Возможно ли это из глобального кэша вытянуть? Нужны данные хотя бы за месяц чтобы протестировать алгоритм.
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Mon Feb 29 2016 04:43 PM

Originally Posted By: hell0men
Подскажите какими блоками получить историческую IV в алгоритм?
Возможно ли это из глобального кэша вытянуть?
Нужны данные хотя бы за месяц чтобы протестировать алгоритм.


confused у меня мозг взорвался от словосочетания "историческая IV"...

Давайте я терминологию ещё раз озвучу:
1. Есть историческая волатильность (ака HV).
Её история лежит в Глобальном Кеше.
Чтение осуществляется блоком "Global HV" == "Global HV" (категория Options (Indicators)).

2. Есть подразумеваемая волатильность (ака IV).
Её история тоже лежит в Глобальном Кеше.
Чтение осуществляется блоком "Global IV ATM" == "Global IV ATM" (категория Options (Indicators)).



3. Пример использования этих блоков уже показывал один раз.
Смотрите в аттаче будет срипт -- там всё максимально просто.
Показывается как вытаскивать оба вида волатильности из ГК.

Основной нюанс: поскольку при работе через фьючерс скрипт не знает даты экспираций,
их для блоков Global IV ATM нужно задавать в поле Expiry в явном виде.
Зато посмотреть можно всю доступную историю разом.

Если же Вы передаёте на вход блока Global IV ATM уже готовую опционную серию (как в обычном торговом скрипте),
то дату в тело скрипта зашивать не нужно.
Достаточно указать настройку Expiry mode == First expiry.
Автор: hell0men

Re: Как работают блоки в опционных скриптах? - Mon Feb 29 2016 08:52 PM

Спасибо, с фикс датой работает. Я просто пытался подавать туда блок Option Series и Лаб крашился когда я его в поле перетаскивал. Создал пока тикет.

Кэш ограничен датой создания агента IV ? У меня с 21 февраля только по RTS текущему показывает.
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Tue Mar 01 2016 12:01 PM

Originally Posted By: hell0men
Кэш ограничен датой создания агента IV ? У меня с 21 февраля только по RTS текущему показывает.


Да, кеш начинает собираться, когда Вы первый раз запускаете агент Collect IV (ALL).

ПС Если в настройках чарта стоит меньше интервал (по дефолту мы строим 1 месяц для ТФ М1), то, понятно, будет нарисовано только подмножество данных из кеша в соответствии с показываемым интервалом данных.
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Wed Mar 16 2016 01:36 PM

Добрый день!

Нужна консультация по блоку "Автохеджер дельты".

Вопрос такой. Как вывести значения параметров "Up Delta", "Target Delta", "Down Delta", которые выведены на контрольную панель в скрипт.
Через блок "Связанный параметр" они не доступны.

Смысл в чем. Устанавливаются они вручную, а их значения необходимо учитывать в алгоритме скрипта...


Попутно еще вопрос. Что за блок "Логический breaker"?
Автор: sar

Re: Как работают блоки в опционных скриптах? - Wed Mar 16 2016 06:40 PM

http://wiki.tslab.ru/doc20rus/rukovodstv...vaya-matematika
логический разделитель это логический breaker описан в документации
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Wed Mar 16 2016 06:56 PM

Originally Posted By: Evgeny_z
Как вывести значения параметров "Up Delta", "Target Delta", "Down Delta", которые выведены на контрольную панель в скрипт.
Через блок "Связанный параметр" они не доступны.

Смысл в чем. Устанавливаются они вручную, а их значения необходимо учитывать в алгоритме скрипта...


Может быть, попробуйте в обратную сторону?
Сделайте блок Константа с привязкой к ControlPane --
и уже Константу пробуйте связать с параметром UpDelta автохеджера.

Но вообще надо подумать, как это по уму организовать. =)
Автор: hell0men

Re: Как работают блоки в опционных скриптах? - Wed Apr 20 2016 03:26 PM

Есть секундный алгоритм.
Чтобы HV в этот секундный скрипт вывести какой блок корректней использовать расчетный или из кэша? И с какими параметрами? Из кэша только часть данных показывает, расчетный считает видимо по младшему ТФ и выдает 5-7% на RTS. Если захочу со старшего ТФ например взять, то подключаю через сжатие в 60с, пишет Индекс за пределам диапазона.
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Wed May 04 2016 11:28 AM

Originally Posted By: hell0men
Из кэша только часть данных показывает


Проверьте, что у Вас для данного БА запущен агент HV (ALL). Я его раз в квартал перенастраиваю на новые фьючерсы, запускаю и больше не трогаю. Он себе спокойно в бекграунде собирает данные и кладет в кеш на диск. И потом этими данными из кеша можно пользоваться откуда угодно.
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Thu Jun 02 2016 08:14 PM

Добрый день!

Вопрос по работе блока "Покупка опциона".

Хочется уточнить, как работает вход Permission? А то возникли сомнения...
Если на ходе "0", то блок покупать не может, а закрывать позицию - при "0" на этом входе может?
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Fri Jun 03 2016 12:01 AM

Блок "Покупка опциона" будет продавать (смешно, да?)
только если "Текущий риск" > "Максимальный риск".

Вход Permission блокирует только ветку покупок.
Если риск превышен, то блок будет продавать независимо от Permission.
Я считаю, что превышение риска недопустимо и его надо сокращать независимо
от других обстоятельств.

Надеюсь ответил.
Если что-то неясно, давайте разберем на конкретных примерах.
Автор: da4ni4jr

Re: Как работают блоки в опционных скриптах? - Fri Jun 03 2016 12:39 PM

Через какие блоки можно получить Bid/Ask отдельного опциона?
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Fri Jun 03 2016 01:59 PM

Originally Posted By: da4ni4jr
Через какие блоки можно получить Bid/Ask отдельного опциона?


Есть блок "Single Option" == "Один опцион".
Он позволяет вытащить из опционной серии один опцион в виде обычного полноправного инструмента.

Далее используете обычные блоки для получения Бид/Аск.

Напишите, пожалуйста, какой будет результат эксперимента.
Получится или нет.
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Fri Jun 03 2016 02:35 PM

Originally Posted By: Option Wizard
Блок "Покупка опциона" будет продавать (смешно, да?)
только если "Текущий риск" > "Максимальный риск".

Вход Permission блокирует только ветку покупок.
Если риск превышен, то блок будет продавать независимо от Permission.
Я считаю, что превышение риска недопустимо и его надо сокращать независимо
от других обстоятельств.

Надеюсь ответил.
Если что-то неясно, давайте разберем на конкретных примерах.


Да, спасибо.
Подробное описание отсутствует, поэтому думал, что этот вход блокирует работу полностью. Но при попытке управлять работой блока увидел по диаграммам, что при наличии "0" блок продолжает работать...
Что, собственно, Вы и подтвердили.
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Fri Jun 10 2016 05:38 PM

Originally Posted By: Option Wizard
Блок "Покупка опциона" будет продавать (смешно, да?) только если "Текущий риск" > "Максимальный риск".

Вход Permission блокирует только ветку покупок.
Если риск превышен, то блок будет продавать независимо от Permission...
. . . . . . . . . . .
Надеюсь ответил...


Добрый день!

Да, спасибо разобрался с работой блоков покупки. Скрипт заработал.

Вопрос следующий.
Вкладка "Доход" агента показывает убывающий профит в течении сессии, а блок "Профит на деньгах" ("Total prfit") наоборот - показывает растущий.

Правильно ли я понимаю, вкладка "Доход" показывает профит только по базовому активу? Т.е., то что наторговал автохеджер, если так можно выразиться?

Или как-то еще это можно интерпретировать?
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Fri Jun 10 2016 05:55 PM

Originally Posted By: Evgeny_z

Вопрос следующий.
Вкладка "Доход" агента показывает убывающий профит в течении сессии, а блок "Профит на деньгах" ("Total prfit") наоборот - показывает растущий.

Правильно ли я понимаю, вкладка "Доход" показывает профит только по базовому активу? Т.е., то что наторговал автохеджер, если так можно выразиться?


Да. Эта панель правильно работает только в простейшем линейном случае, когда торгуется только один актив.
С опционами правильней ориентироваться на оценку Total profit.
Ну и на брокерские отчеты после экспирации, конечно.
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Tue Jun 21 2016 02:42 PM

Добрый день!

Хочется вывести на контрольную панель цветовые индикаторы, типа квадратика, кружка и т.п., меняющих цвет заливки (или мерцающих и т.п.) в зависимости от подаваемого сигнала - логического или числового для индикации определенных ситуаций, состояний или событий при работе агента.

Скажите, какие либо средства в программе, в визуальном редакторе имеются?
Автор: Option Wizard

Re: Как работают блоки в опционных скриптах? - Tue Jun 21 2016 03:30 PM

Originally Posted By: Evgeny_z
Добрый день!

Хочется вывести на контрольную панель цветовые индикаторы, типа квадратика, кружка и т.п., меняющих цвет заливки (или мерцающих и т.п.) в зависимости от подаваемого сигнала - логического или числового для индикации определенных ситуаций, состояний или событий при работе агента.

Скажите, какие либо средства в программе, в визуальном редакторе имеются?


Для ControlPane сейчас ничего такого нет.
В ближайшей перспективе мы хотим научиться раскрашивать ячейки таблицы (GridPane).

При рисовании графических индикаторов, понятно, можно как угодно выкручиваться.
Например, с помощью API можно написать блок, чтобы он рисовал разные символы разным цветом и разным размером на CanvasPane.

По сути получается, Вы хотите научиться программно менять фон у контролов Button?
Или Вам нужен именно новый контрол "Большая кнопка без текста и возможности её нажать, но зато с цветным фоном"?
Автор: Evgeny_z

Re: Как работают блоки в опционных скриптах? - Tue Jun 21 2016 05:46 PM

Originally Posted By: Option Wizard
...По сути получается, Вы хотите научиться программно менять фон у контролов Button?
Или Вам нужен именно новый контрол "Большая кнопка без текста и возможности её нажать, но зато с цветным фоном"?


Изначально функция простая, это "лампочка-индикатор", которая говорит, что определенное событие наступило.

Просто цветовой индикатор - легко воспринимается и обращает на себя внимание на панели, где много разных окошек с цифрами.
Наличие таких индикаторов было бы неплохим дополнением интерфейса TSLab.

В развитие, могут быть и другие варианты. Например табло с цифрами и меняющимся фоном при определенных значениях. Тоже информативно, в том числе и раскрашивание контролов Button!