Topic-icon Трёхконтурная торговая система

Больше
#287

Хочу предложить для совместной реализации, с моей точки зрения, интересный проект по созданию торговой системы, кот. в автоматическом режиме должна будет зарабатывать.
Рассмотрим начальные условия системы, с кот. мы имеем дело (бесспорные):
1. Наличие трендовых и флетовых участков с неизвестными и разными промежутками по времени.
2. Не прогнозируемость направления движения цены.
3. Возможность использования в торговле нескольких инструментов (спот, фьючерсы, опционы).
4. Цель – гарантированная прибыльность 100% годовых и выше при мин. просадках.
Напрашивается одновременная, синхронная работа 3 подсистем (3 роботов)- трендовой, флетовой, хеджевой.
Трендовая и флетовая работают скальпирскими сделками на фьючерсах, а хеджевая- скальпирскими и среднесрочными сделками и опционами, и фьючерсами.
Таким образом должна получится замкнутая система, трендовый и флетовый роботы работают в режиме быстрого зарабатывания и если этого не получается они передают убытки для отработки их «чистильщику» (т.е. 3 подсистеме- хеджеру), а сами продолжают работать в своём режиме.
Таким образом хеджер как бы подчищает все убытки за 2 подсистемами.
Трендовых и флетовых стратегий множество, а вот для успешной и надёжной работы хеджера наиболее пригодна построение опционной конструкции «динамической бабочки».
Динамическая бабочка- это построение обыкновенной бабочки как бы виртуально. Ведь наша цель как можно быстрее отбить убыток и для этого робот должен в динамике собирать и разбирать эту самую бабочку, зарабатывая при этом. В худшем варианте мы можем уйти с собранной бабочкой в средне срок и по мере истечения контракта роллировать, но в конечном итоге всё равно должны решить поставленные задачи для 3 контура.

Приняв, что на малых периодах- хаотическое движение цены, то рассмотрим ценовой график нелинейной структурой и зададим роботам для их работы дискретную структуру. Это придаст роботам, наряду с другими техническими решениями, более универсальный характер:
— для «флэтового» с разбивкой на заданные промежутки по времени (ось Х);
— для «трендового» с разбивкой на заданные промежутки по цене (ось У).
Таким образом роботы будут вести свою работу отдельно на каждом своём участке и вести свой отдельный бух. учёт на каждом промежутке. И если на каком-то участке в результате торговли получится убыток, то робот включает хеджер для отработки этого убытка, а сам забывает про этот участок.
Этим самым мы решаем и ещё одну задачу- максимальное использование ГО (снимаем фьючерсную нагрузку, переложив её на льготную опционную).
Пример теста трендового робота на 5 дневном флэтовым участке

Это не значит, что результат будет всегда положительным, но кол-во и значения отрицательных результатов сократятся.
По хеджеру подробнее здесь skladchik.com/threads/%D0%98%D1%89%D1%83-%D1%81%D0%BE%D0%B0%D0%B2%D1%82%D0%BE%D1%80%D0%B0.150451/.

Итак, в наличии есть трендовый робот, 50% хеджера и нет флэтого робота.
Тех. задания по доработки хеджера и написания флэтого есть, остаётся заинтересовать программиста этого сайта. Прошу поддержать данный проект и высказать свои предложения и задавать вопросы.

Вложения:
Спасибо сказали: Reym

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
#288

Пока мало что понял, но в обсуждении поучаствую.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
#291

Перенес со складчика все по хеджеру, что бы на сторонние форумы не прыгать:

Хочу предложить начать с умного хеджера, т.к. он необходим для помощи любого другого алгоритма и трейдера. Написать его предлагаю в QUIK на языке LUA, запуск в ручную- либо от команды другого робота. Причём он сможет не только хеджировать, но и самостоятельно зарабатывать на рынке. Одновременно робот сможет открывать, контролировать и закрывать одновременно несколько таких хеджеров.

Краткое описание.

Умное открытие стредла на заданном страйке, с заданной суммарной дельтой. Затем, исходя из заданной прибыли по хеджеру рассчитывает страйки, где робот будет продавать и выкупать крайние опционы по заданному алгоритму ( зарабатывая при биениях цены), контролируя общую заданную вегу. При достижения вычисленного роботом цены базового актива, робот должен выполнить роллирование с заданным коэффициентом. Так же предусмотрена автоматическая защита по дельте. Кроме того робот зарабатывает по своему алгоритму на покупке-продаже купленных в центре опционов по одной, либо по двум ногам. Таким образом робот активно зарабатывает на всём, чем возможно и тем самым нейтрализует тетту. Как только по хеджеру будет достигнута заданная прибыль, робот по умному закроет его. Если прибыль не будет достигнута в существующем контракте, робот по умному перенесёт этого хеджера в другой контракт, т.е. отроллирует его. И будет добиваться заданной прибыли с учётом предыдущей уже в другом контракте, и так до получения прибыли.

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

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


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

Вопрос: Прочитал описание, и сразу возник вопрос - в системе предусмотрено некоторое количество сделок по управлению позицией. Кто торгует опционы знает, что спред в стакане может быть довольно значительным. Руками можно довольно аккуратно покупать/продавать, а насколько вероятно, что робот на управлении позицией не растеряет в спреде всю заработанную прибыль?

Ответ: Да совершенно верно, только ни некоторое, а большое количество сделок. Поэтому работа руками наоборот будет не эффективна. Написав в своем кратком описание стратегии, что робот умно будет открывать и закрывать сделки, я имела в виду следующее:
- Открытие стредла, что касается опционов осуществляться будет только лимитными ордерами.
- Набор проданных опционов по краям будет только лимитными ордерами.
- Заработок на биении инструментов только лимитными ордерами.
- Закрытие: если в остатки останется стредл, то по опционной ноге закрытие только лимиткой;
Если в остатки остаётся бабочка, то опцион с большим спредом закрытие лимиткой, а с меньшим спредом по рынку ( на ТП это никак не повлияет).


Посмотрите работу робота по открытию и закрытию стредла:


Ещё раз хочу подчеркнуть одно из применений хеджера на примере ранее размещённых видео. Торгуя на фьючерсном рынке, в данном случае это Si даже в терминале МТ5, получаем Stop loss в 10п. Робот в терминале МТ5 передаёт команду хеджеру в терминале QUIK отбить этот проигрыш -10п и заработать ( это уже в настройке хеджера) ещё 10п. Хеджер по этой команде открывает стредл согласно своих настроек, а затем закрывает его рано или поздно с прибылью 20п плюс комиссию. Открытие получилось через синтетику, а могло получиться и через PUT и CAL, могло- и через PUT, CAL и фьючерс. Не важно из чего будет состоять стредл, открываться и закрываться он будет по опционам только лимитными ордерами ( закрытие опциона в деньгах- через синтетику). Таким образом торговля фьючерсами будет приравнена к торговле без Stop loss.

Вопрос: Добрый день!
По данной идее у меня есть много комментариев и я их обязательно озвучу, но прежде хотелось бы думать, что мы говорим об одном и том же. Поскольку по описанию не все понятно (ну, или я настолько ограничен, что многое не понял), то давайте по порядку:
1. Покупается стрэддл через синтетику (что правильно) или только через опционы (что нелогично ввиду большего спреда в стакане опционов). Стрэддл покупается в каком страйке? В центральном? Или выше и ниже по рынку? Каким объемом? Покупается просто в любое время или есть какие-то критерии входа?
2. Хорошо, пусть у нас сейчас Long Straddle, который, очевидно, будет терять на времени и чем выше волатильность, тем больше будет тэта-распад. Предлагается отбивать этот убыток (убыток, а не прибыль, как Вы ответили Blavr) через покупку-продажу крайних опционов. Достаточно странное решение, ну ладно. Идем дальше. Когда мы начинаем продавать опционы? Можете продемонстрировать на конкретном примере? Ну, например, цена ФЧС на SI идет выше, мы продаем Put OTM (в каком количестве? какие страйки?) или мы сразу формируем бабочку? Откупаем когда? Когда достигли цель по прибыли в 20 пунктов? Или есть другие критерии. В идеале, конечно, если было бы более подробное описание по пунктам, многое бы сразу было понятно.
3. Вы пишите, что "робот зарабатывает на всем, чем возможно и, тем самым нейтрализует дельту" - это мягко говоря совсем не так. На снижении волатильности вы будете терять, что очевидно. Как этот риск устраняется в данном алгоритме?
4. Предлагается лимитными заявками покупать-продавать опционы. Это хорошо. Но вопрос то в другом. По какой цене вы будете вставать в стакан? По теоретической? Но она обновляется биржей дискретно, а не транслируется непрерывно? Ваш робот будет сам считать теоретическую цену нужных опционов? Откуда берется цена лимитной заявки?
5. Чему равна максимальная дельта стрэддла и максимально возможная вега?
6. Роллировать планируется стрэддл или проданные крайние опционы? В каких точках?
7. В чем состоит алгоритм заработка на стрэддле "на покупке-продаже купленных в центре опционов по одной, либо двум ногам"? Хотя бы в общем виде.
8. В каком сроке открывается стрэддл? Ограничено ли минимальное время до экспирации для данной позиции?
9. Цель по прибыли в 20 пунктов - не кажется, что мизер? Проскальзывание относительно теоретической цены, которое у вас обязательно будет, особенно в крайних опционах, по мне, так существенно помешает. К примеру, при текущей цене Si = 57 400, премия Call OTM страйка 58 000 = 406 (теоретическая цена). Она запросто может в несколько секунд быть в коридоре 390-420. По сути, почти вся ваша прибыль.
На самом деле, пока многое непонятно. Но надеюсь, после получения ответов на свои вопросы или более подробного описания данного алгоритма, ситуация прояснится.
В принципе, думаю, для подобного алгоритма вполне хватит встроенного маркет-мейкера программы Option Workshop. Подобные задачи я через него решаю достаточно просто.


Ответ: Да, спасибо, за вопросы. Постараюсь более или менее подробно ответить.
1. Изначально робот выставляет лимитные ордера по PUT и CAL ( кол-во, время и страйк в настройке) и в зависимости от рынка покупка стредла может получится четырьма способами:- из PUT и CAL,
- из PUT и фьючерса,
- из CAL и фьючерса,
- из PUT из CAL и фьючерса.
Покупка ( и потом продажа) опционов осуществляется лимитными ордерами, поэтому спред нас не должен интересовать.
2. По большому счёту нам надо отбить при наихудшем развитии событий расстояние d (см. рисунок). Я уже ранее писала, что робот не будет пассивен в открытой опционной позиции, а будет активно зарабатывать на всем чем можно, а именно на котировании купленных и проданных опционов отбивать возможные потери. Я не буду сейчас описывать механизм набора позиций, здесь я кратко постаралась описать суть для общего понимания продукта на выходе, а как там внутри- это в ТЗ.
3. Ни дельту, а тетту. Волатильность будут компенсировать проданные роботом крайние опционы.
4. В роботе предполагается несколько алгоритмов по зарабатыванию на опционах при движении базового актива, как простые, так и более сложные, в том числе хотела бы вписать возможность работы, опираясь на свою улыбку волатильности, а не транслируемую биржей.
5. Как в настройке выберешь, так и будет. Хочу подчеркнуть, что данный продукт задуман как помощник трейдеру, как умный инструмент. И поэтому всё в руках трейдера, как он его настроит, под какие задачи, так он и будет работать. Единственно, нужно понимание происходящих процессов на опционном рынке, Но я думаю Вы в своих работах многих просвятите.
6. Роллировать робот будет и края ( на рис. показаны точки ) и саму опционную конструкцию через заданное до экспирации время.
7. Несколько способов на выбор трейдера: котирование несколькими способами, через сетку нескольками способами
8. Всё в настройке робота, каждый выбирает свои сроки.Я бы выбрала за неделю до экспирации месячного опциона и за 2 дня недельного.
9. ТП 20п - это демонстрация работы робота. Теоретическая цена не участвует в закрытии стредла, в видео- опцион закрылся по выставленной лимитке в стакане в нужный, рассчитанный роботом момент , а затем сразу по рынку закрылся фьючерс. Теоретическая цена участвует лишь в расчёте фильтра для price coridor.


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

Вопрос: Спасибо за ответы. Но давайте по порядку.
1. Не понял про лимитные ордера при открытии стрэддла. Пусть сейчас теоретическая цена Call ATM = 554 рубля, Put ATM = 654 рубля, ФЧС = 57 150 рублей. Очевидно, логично купить Call или Put (разница между ними есть - опционы против рынка отдают временную стоимость медленнее) как можно ближе к теоретической цене и тут же продать-купить ФЧС. Не очень понятно, почему нас спред не будет интересовать. Вариационка то от теоретической цены считается. По какой цене лимитная заявка будет открываться в данном приведенном случае? Я тоже лимитными заявками торгую, но мне приходится самостоятельно рассчитывать теорию, т.к. биржа ее не непрерывно выдает. А без этого весь смысл теряется.
2. Возможно. Методику вы не раскрываете, поэтому возможно. Вот только при снижении волатильности вы не отобьете убытки на котировании. Подобные алгоритмы я торговал еще в 2009 году. Правда сейчас вола пониже, поэтому и шансы повыше.\
3. Да, правильно тэту. Вы не сможете компенсировать волатильность за счет крайних опционов. Есть такой эффект, о котором знают все торгующие не первый день на рынке, а именно подъем крыльев улыбки по мере приближения к экспирации. Этот эффект и на нашем рынке есть, и на западном. Волатильность в крайних опционах будет расти, тем самым уменьшая вам на практике скорость их временного распада.
4. См. пункт 1
5. Да, я в своем курсе как раз на этот вопрос и отвечаю. Каковы должны быть максимальные риски? Поэтому и спросил. Вдруг у Вас есть свои наработки, интересно было бы послушать.
6. В указанных точках (как я понял они за пределами страйка проданных опционов) может часто оказаться, что уже поздно роллировать в силу большого накопленного убытка. Я бы посоветовал раньше включать механизм роллирования. Но, возможно, у Вас есть какое то обоснование.
7. Ничего не могу сказать, т.к. не совсем раскрыт механизм котирования. Я так понимаю, это ваши собственные наработки?
8. За неделю до экспирации месячного опциона Вы получаете сильное ускорение временного распада по купленным опционам + крайние опционы будут стоить очень дешево (здесь про это уже упоминали). Недельные опционы пока только на РТС + не совсем ликвидны.
9. См. пункт 1
Несмотря на все замечания, на мой взгляд, этот ваш торговый алгоритм, даже в таком сыром виде, лучше, чем 90% наработок на тему трейдинга в авторском разделе. Уверен, что идея получит продолжение.


Ответ: 1. Закупиться по теоретической цене или вблизи- это, конечно, хорошо( но порой не факт). Но мы торгуем здесь и сейчас и что не мало важно, в конкретном определённом месте и поэтому роботом одновременно выставляются лимитные ордера в стаканах PUT и CAL по лучшим ценам BID. Догонять же отдельно PUT или CAL, чтобы купить синтетику, считаю в данном случае нецелесообразно, хотя в роботе и это есть.
2. На все случаи застраховаться не возможно, и если- не отобьёт, то уменьшит. Ну мы можем согласиться с каким тос убытком, а можем отроллировать ОК в следующий контракт и т.д. Хочу уточнить, что опционная конструкция (ОК), с помощью выбранных в настройке алгоритмов, предполагается поддерживаться в своей динамике ( "дыхании") в коридоре заданных в настройке 3 параметров : по дельте, по веге, по объёму набранных позиций. При резких движениях предусмотрены хеджеры.
3. Да, хорошо, что вы берёте самый наихудшей вариант развития событий ( цена БА застряла в районе центра стредла). Ну и при этом:
а) смотря о каких краях мы говорим,
б) при нахождении цены базового актива вблизи купленных опционов, мы роллируемся где-то за неделю до экспирацию,
в) см. пункт 2,
г) робот на протяжении жизни ОК постоянно "стрижёт" коппейку.
5. Риски выбирает трейдер, исходя из своего опыта. Множество настроек позволят это сделать. Что касается "бабочки", то это одна из самых безопасных и нейтральных стратегий. Но для себя не использовала её в качестве заработка, С написанием данного робота возможно пересмотрю свою позицию.
6. Роллирование нужно лишь при агрессивной продажи.
Во время работы, как я уже раньше описывала, можно поддерживать параметры в заданном корридоре.
7. Мои, плюс сфотографируемые с передовых терминалов.
8. Об этом уже было пр оговорено. Хорошо, что крайние опционы стали дёшевы, значит мы заработали.
Очень рада за Ваши интересные и познавательные вопрос

Вопрос: 1. Это серьезный момент, особенно актуальный, если у Вас достаточно большой объем позиций. Где-то я здесь чего то недопонимаю. К примеру выставлена лимитные заявки на покупку по опционам Call и Put. Так и не понял по какой цене? По лучшим ценам BID я так понял. Ну допустим Вам удается купить, например Put, по нужной Вам цене. Сразу же после покупки рынок чуть припал и теоретическая цена стала ниже. Вы предлагаете ждать пока исполнится заявка по опциону Call? Почему моментально через синтетику не купить ФЧС? По-моему, это очевидно. Но что-то мне кажется я не понял. На практике стрэддл всегда открывается через синтетику. Особенно сильно вы почувствуете разницу при большом объеме.
5. По бабочке согласен, но ее нелегко открывать, закрывать и перестраивать на российском рынке. Сам ее не применяю по этой причине. В Америке с этим проще. Но вопрос то не в бабочке. Можно открыть 100 бабочек и 10 стрэддлов. Где риски больше? Поэтому на практике (думаю, Вы это понимаете) лимитируются максимально возможные риски позиции. Я именно это имел в виду. Как определить максимальный лимит? Я не согласен, что он зависит от опыта. Я это как риск-менеджер говорю. Допустим, сидят два трейдера - один очень опытный, другой - менее. Значит ли это что я должен более опытному выставить большие лимиты по сравнению с другим трейдерам. Риски должны зависеть от ситуации на рынке и депозита.
Приношу извинения за свои многочисленные вопросы. Просто хотел более подробно разобраться в данном алгоритме, т.к. пока в целом идея ясна, но конкретная форма ее реализации не совсем понятна.


Ответ: 1. Хочу ещё раз подчеркнуть, что планируется создать универсальный инструмент под различные видения и задачи. Поэтому выставляться заявки ( и автоматически поддерживаться на заданную величину indent) на одновременную покупку PUT и CAL или только CAL , или только PUT, могут согласно выбранным настройкам по разному:
а) меньше BID,
б) равным BID,
г) больше BID , но меньше ASK ( внутрь спреда),
д) больше BID и больше ASK ( по рынку).
После выбора одного из вариантов, возникает опять же несколько вариантов развития событий, кот. я уже описывала ранее (лишь небольшое пояснение по тексту: после срабатывания PUT, робот сразу же покупает вычисленное кол-во фьючерсов и снимает вычисленное через дельту заявку на покупку CAL и так до полной покупки стредла с заданным объёмом и заданной суммарной дельтой) . В итоге при выборе варианта а) или б) мы в любом случае получаем на выходе открытие стредла по лучшим ценам. В видео выбран indent=-3.


5. Доверив открытие и закрытие бабочек роботу, мне кажется, многие вопросы снимаются.
Вопросы, спор и предложения, наоборот, приветствуются.
Механизм работы робота.
1) Что уже реализовано:
- одновременное открытие сразу нескольких стредлов согласно настроек по команде из файла на центральном страйке,
- закрытие стредлов по достижении ими заданной прибыли,
- роллирование стредлов на другой контракт на заданный период от экспирации.
2) Что будет реализовано:
- покупка и продажа бабочек с получением заданного ТП на разных страйках,
- одновременное котирование по одной или нескольким страйкам опционной конструкции,
- поддержание каждой отдельной опционной конструкции в заданном коридоре по дельте и веге,
- роллирование края, при достижения ценой базового актива заданной величины,
- дельта хедж, при резком движении цены базового актива.
- котирование по своей улыбки волатильности.

Спасибо сказали: Reym

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
#295

Думаю что если скальперы убытков по фьючу натворят - никакой хедж уже не спасет. Прощаемся с депо. С опционами надо работать а про фьючи вообще забыть!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
#296

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

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
#297

С одними опционами, конечно, можно работать, но большого ТП ( 100% и выше) я уверен не заработать.
И ещё, работа и сами скальперские роботы так устроены, что команду на включение хеджера давать будут во много раз меньше собственных транзакций, а приносить ТП будут приносить существенный.
А при нехватки ГО, предусмотрено отключение работы роботов до восстановления.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Время создания страницы: 0.219 секунд