Арбитраж и все все все
Atom Ответить
12.12.2011


Бодрого дня, уважаемые коллеги и примкнувшие к ним товарищи. Ветка это есть продолжения краткой дискуссии про тематические парки и куртизанок, что была в скайпе.
Предлагаю обсудить тему арбитража. Но прежде чем начать, хотел бы сразу попросить «выступить» всех у кого есть, что сказать по делу и они готовы это сказать. Утверждения типа «на этом можно хорошо зарабатывать имея и пару лямов» и прочие утверждения в стиле Капитана Очевидности лучше пока оставить для скайпа. Если готовы обсуждать открыто (благо форум закрытый – значит можно палить граали), то давайте попробуем.
Так же хочу отметить, что я в этой теме пока как свин в апельсинах. Это связано в первую очередь с возможно не самыми глубокими познаниями в статистике и рядом других причин.
Но для затравки попробую выступить первым.
Хочу сразу поставить все точки над «и» в вопросах терминологии. Есть много разных обзывательств, касательно арбитража. Я предлагаю утвердить слудующее:
- математический арбитраж – арбитраж при котором вероятность благоприятного исхода (гарантированного схождения)близка к 100% - это например игрища со спрэдами между ближним и дальним фьючом. Конечно говорить о 100% удаче не совсем корректно – черных леблядей никто не отменял.
- риск-арбитраж – арбитраж между акциями компаний, затеявших сделку по слиянию (поглощению). В рамках данной темы предлагаю это не трогать ибо на нашем рынке это не актуально, а для буржуйского имеет смысл при наличии больших денег, кучи времени и хорошего понимания фундаментальных факторов.
- межрыночный арбитраж – купили на ММВБ, продали на LSE. Трогать не будем ибо это дорого.
-статистический арбитраж (парный трейдинг) – это именно то, что нам нужно. Назовем это арбитражем при котором ожидается, что спрэд (у нас вроде как это раздвижкой зовется) вернется к своему среднему значению в случае отклонения. При этом «среднее» может быть как и реально mean-reversing, так и 0-reversing (написал с ошибками наверно). Что брать за среднюю обсудим чуть позднее.
«Участниками» парной торговли могут быть – акция+акция (для РФ работает), акция + индустриальный ETF (для РФ не работает), фьючерс-фьючерс (корзина фьючерсов – на РФ возможна, хотя и не всегда приятна), фьючерс-акция (возможна в РФ), ряд других вещей, которые на скудном рынке РФ никак не реализуются.
Нас будет интересовать только два варианта: акция-акция (в том числе и американский рынок) и фьюч-фьючи (в том числе и американский рынок)
Теперь посмотрим из каких «частей» складывается правильная «парная» торговля:
- определение торгуемых инструментов
- определение веса каждого инструмента в паре
- определение точки (причины) входа в позицию
- определение причины выхода из позиции
-ведение позиции в течении сделки

Предлагаю обсудить по очереди каждый из пунктов ибо в подходах существует много разных мнений.

1.Определение торгуемых инструментов.
Для буржуев пары подбираются с учетом следующих факторов: акции должны находиться в одном секторе\индустрии, их корреляция должна быть как можно ближе к 1(-1). Первое требование обусловлено тем, что акции одного сектора будут одинаков реагировать на рыночные риски, имеют схожие операционные модели, ну и «слабые» всегда будут стремиться за «сильными». При работе с фьючерсами обычно также ищут фундаментальные взаимосвязи (например Нефть разных марок, индексы разных стран и т.д.) Что касается корреляции – тот тут я не встретил в литературе единого мнения – как правило указывается, что акции должны коррелировать и значения в 0.5 типа как уже достаточно. «Пацаны» на буржуйских форумах все-таки склоняются к тому, что это значение не должно быть ниже 0.7-0.8. Для нашего рынка это не актуально  ибо акции которыми можно торговать у нас имеют 0.9 и называются Газпромосбербанк.
Некоторые продвинутые участники упоминают еще и необходимость коинтеграции, но мой скудный статистических багаж подсказывает, что добиться коинтеграции у высоко коррелированных инструментов гораздо проще. Но тут я могу быть не прав.

2.Определение веса инструмента. Тут опять же есть несколько подходов. Самый простой и самый неправильный – поделить один инструмент на другой и полученное значение будет множителем для определения веса инструмента в паре. Более продвинутые предлагают использовать формулу (цена А/бета А)/(цена Б/ бета Б). Даная фишка применима исключительно для акций, торгуемых в штатах (и условно применима для наших). Такой формулой мы учитываем волатильность инструментов относительно «эталона» которым в данном случае выступает индекс. Не могу сказать какие тут минусы ибо «глубоко» протестить это дело трудно так как самому бету считать заманаешься, а исторических данных найти в свободном доступе трудно.
Еще одним способом является простое ATR A/ATR B. Работает для акций и фьючей но не совсем подходит для торговле фьюч-корзина фьючей (использует товарищь Кауфман).
Попадались и иные способы (например с учетом исторической волатильности), но так или иначе все они учитывают волатильность инструментов и гораздо точнее работают нежели простая «дележка» инструментов.
Для корзинки фьючей наибольший интерес предлагает метод предложенный (но не до конца раскрытый) Тарасом в его публикациях на русском трейдере.

3.Определение точки входа. Тут так же есть туча вариантов. Одни строят график спрэда и при отклонении на величину более 1.5-2-2.5(кто как) стандартного отклонения за некий промежуток времени открывают позу в надежде на возврат цены к своему среднему (стоит отметить что ст-откл. также можно посчитать по разному), кто-то в качестве фильтра еще считает Density curve. Однако у данного метода есть один неприятный момент – спрэд может не возвращаться к своему среднему значению достаточно продолжительное время. Нам же интересен короткий горизонт – не далече 3дней (ну или интрадейные колебания).
Другие товарищи считают спрэд не по цене, а через формулу стохастика (без усреднения) и спрэдом для них являются разница двух стохастиков (это предлагает делать Кауфман) или же стохастик построенный по этой разнице взятый за несколько дней (автор он же). Тут у нас решается проблема возврата к «0».
Есть и более изощренный вариант «от Тараса», где цена нормируется с целью избавления от «трендовой» составляющей и предполагается торговля при отходе от среднего.

4.Выход из позиции и управление позицией. Выход прямо зависит от причины входа – это или возвращение к «0» или к средней. Так же используется стоп при достижение порогового значения риска или стоп по времени удержания позы.
Управление позой предполагает добавление к позиции с целью смещения точки безубыточности в случае неверного движения. Однако этот метод весьма требователен к депозиту и устойчивости задницы трейдера.

Ну вот собственно у меня все. Предлагаю высказаться по пунктам у кого есть что сказать.



Спасибо:




41 Ответов
1 2  >
Church

Фотография
Дата: 12.12.2011
Ответить


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

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

Код
library(rusquant)

getSymbols("SBER", from=Sys.Date()-30, src="Finam", period="15min")
getSymbols("SRZ1", from=Sys.Date()-30, src="Finam", period="15min")

spread <- OpCl(SBER) - OpCl(SRZ1)*100
plot(spread)

a = cbind(OpCl(SBER), OpCl(SRZ1))
cor(a, use="complete.obs")


Корреляция:
OpCl.SBER OpCl.SRZ1
OpCl.SBER 1.000000 0.906915
OpCl.SRZ1 0.906915 1.000000


Разумеется, это не совсем корректный способ, зато простой и интуитивно понятный. Статистически более корректная процедура: http://quanttrader.info/public/testForCoint.html
Rplot.jpg 46,2KB (0)
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 12.12.2011
Ответить


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


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

Да, а ты чем рисует спред?
Спасибо:

gambler_max

Фотография
Дата: 12.12.2011
Ответить


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

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

Код
library(rusquant)

getSymbols("SBER", from=Sys.Date()-30, src="Finam", period="15min")
getSymbols("SRZ1", from=Sys.Date()-30, src="Finam", period="15min")

spread <- OpCl(SBER) - OpCl(SRZ1)*100
plot(spread)

a = cbind(OpCl(SBER), OpCl(SRZ1))
cor(a, use="complete.obs")


Корреляция:
OpCl.SBER OpCl.SRZ1
OpCl.SBER 1.000000 0.906915
OpCl.SRZ1 0.906915 1.000000


Разумеется, это не совсем корректный способ, зато простой и интуитивно понятный. Статистически более корректная процедура: https://quanttrader.info/public/testForCoint.html


1.это на R? Блин я его вааще не понимаю...этоб...в экселе там....или еще куда :-(
2.По поводу ссылки. Не совсем понял почему предлагается в начале считать спрэд а потом проверять его? В книге на которую он ссылается более правильный ИМХО подход
Автор топика
Спасибо:

gambler_max

Фотография
Дата: 12.12.2011
Ответить


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


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

Да, а ты чем рисует спред?

вот какраз то по теории вечного свинства в этот протухлый период и можно влететь
Автор топика
Спасибо:

Church

Фотография
Дата: 12.12.2011
Ответить


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


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

Да, а ты чем рисует спред?

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

Комнтеграция тоже не страхует от того что модель рассыплется. В 2008 за пару месяцев статарб хеджфонды просели На 30-40% ак раз потому что конъюнктурные изменения разорвали коинтеграцию по некоторым инструментам.

График строился встроенными средствами R plot(spread)
Спасибо:

Church

Фотография
Дата: 12.12.2011
Ответить


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

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

Код
library(rusquant)

getSymbols("SBER", from=Sys.Date()-30, src="Finam", period="15min")
getSymbols("SRZ1", from=Sys.Date()-30, src="Finam", period="15min")

spread <- OpCl(SBER) - OpCl(SRZ1)*100
plot(spread)

a = cbind(OpCl(SBER), OpCl(SRZ1))
cor(a, use="complete.obs")


Корреляция:
OpCl.SBER OpCl.SRZ1
OpCl.SBER 1.000000 0.906915
OpCl.SRZ1 0.906915 1.000000


Разумеется, это не совсем корректный способ, зато простой и интуитивно понятный. Статистически более корректная процедура: https://quanttrader.info/public/testForCoint.html


1.это на R? Блин я его вааще не понимаю...этоб...в экселе там....или еще куда :-(
2.По поводу ссылки. Не совсем понял почему предлагается в начале считать спрэд а потом проверять его? В книге на которую он ссылается более правильный ИМХО подход

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

В статье я сам не разбирался, нагуглил и линканул. Но я знаю, что робастое тестирование коинтеграции - не самая простая штука.
Спасибо:

Church

Фотография
Дата: 12.12.2011
Ответить


Кстати, высокая коинтеграция при низкой корреляции означает что спреды больше, а значит и профит mean reversion стратегий выше.
Спасибо:

gambler_max

Фотография
Дата: 12.12.2011
Ответить


Church Перейти
Кстати, высокая коинтеграция при низкой корреляции означает что спреды больше, а значит и профит mean reversion стратегий выше.

следовательно сильно выше и риск.
а в принципе, если взять и составить "блок-схему" вычисления коинтеграции, то наверно можно силами того же Си-шарпа реализовать ее в виде ДЛЛ к софту по трейдингу - тому-же Амиброкеру к примеру.
http://quanttrader.info/...erHedgeRatios-slides.pdf - очень интересно (там есть еще и текстовый вариант) Но в любом случае -
он считает спрэд как разницу двух инструментов (как я понял) и вопрос перевода из R в приятное что-то не отпадает
Автор топика
Спасибо:

Church

Фотография
Дата: 12.12.2011
Ответить


Без R ты без проблем можешь строить спреды и изучать графики в экселе. Регрессию фитить вроде тоже можно, с помощью дополнительных пакетов, и весь процесс довольно извращенный.
Не думаю, правда, что это будет эффективно.
Переводить все в C#, мне кажется, имеет смысл уже только для продакшна (разумеется если продакшн в C#).
Спасибо:

gambler_max

Фотография
Дата: 13.12.2011
Ответить


Church Перейти
library(rusquant)
getSymbols("SBER", from=Sys.Date()-30, src="Finam", period="15min")
getSymbols("SRZ1", from=Sys.Date()-30, src="Finam", period="15min")
spread <- OpCl(SBER) - OpCl(SRZ1)*100
plot(spread)
a = cbind(OpCl(SBER), OpCl(SRZ1))
cor(a, use="complete.obs")

Вернемся к нашему гондурасу. В начале пара вопросов по коду. ВОт это
spread <- OpCl(SBER) - OpCl(SRZ1)*100
как я понимаю "в простом" языке говорит "Из сбера вычесть фьюч). Вопросы
1.OpCl - это как правильно интерпретировать?
2.Почему фьючь умножается на 100? Ведь во фьюче и так 100 акций?. Не правильнее ли умножать сам сбер
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 13.12.2011
Ответить


Church Перейти
Кстати, высокая коинтеграция при низкой корреляции означает что спреды больше, а значит и профит mean reversion стратегий выше.


И нужно добавить, что время расхождения пар будет много больше, чем при высокой корреляции. А следовательно растут и риски.
Спасибо:

Church

Фотография
Дата: 13.12.2011
Ответить


gambler_max Перейти
Church Перейти
library(rusquant)
getSymbols("SBER", from=Sys.Date()-30, src="Finam", period="15min")
getSymbols("SRZ1", from=Sys.Date()-30, src="Finam", period="15min")
spread <- OpCl(SBER) - OpCl(SRZ1)*100
plot(spread)
a = cbind(OpCl(SBER), OpCl(SRZ1))
cor(a, use="complete.obs")

Вернемся к нашему гондурасу. В начале пара вопросов по коду. ВОт это
spread <- OpCl(SBER) - OpCl(SRZ1)*100
как я понимаю "в простом" языке говорит "Из сбера вычесть фьюч). Вопросы
1.OpCl - это как правильно интерпретировать?
2.Почему фьючь умножается на 100? Ведь во фьюче и так 100 акций?. Не правильнее ли умножать сам сбер

OpCl это Close/Open. И да, вы правы, этот код неправильный (писал второпях). Правильный:

Код
#install.packages("quantmod")
#install.packages("rusquant", repos="http://R-Forge.R-project.org")

library(rusquant)

getSymbols("SBER", from=Sys.Date()-2, src="Finam", period="5min")
getSymbols("SRZ1", from=Sys.Date()-2, src="Finam", period="5min")

spread <- Cl(SBER)*100 - Cl(SRZ1)
plot(spread)

a = cbind(OpCl(SBER), OpCl(SRZ1))
cor(a, use="complete.obs")


Правильная картинка:
Rplot.jpg 48,6KB (0)
Спасибо:

gambler_max

Фотография
Дата: 13.12.2011
Ответить


А можно ли пример результата по такому арбитражу - чтобы бэнчмарк какой-то иметь. Я тут поупрожнялся немного
Пока посчитаем спрэд «по колхозному» - берем формулу =(Закрытие-МИН(закрытий за предыдущие 8 баров))/(МАКС(Хай за 8 баров)-МИН(Лоу за 8 баров)) и вычисляем для Сбера и его Фьюча.
После этого берем эти два значения и вычисляем разницу (спрэд) между ними. Берем этот спрэд и через формулу=100*(спрэд на текущем баре-МИН(спрэд за 8 баров))/(МАКС(спрэд за 8 баров)-МИН(спрэд за 8 баров)) получаем значение спрэда который колбасится в виде стохастика.
Далее пишем, что если этот стохастико_спрэд меньше 5 баим сбер и селим фьюче_сбер и если он больше 95 то наоборот. Выход при пересечении спрэдом 50 в ту или иную сторону.
Далее достаем из широких штанин бабло в размере достаточном для торговли 100 лотами акций (100*100=10000 акций) и примерно 100 штук фьюча. Соотношение ног ходит в диапазоне от 90 до 130 контрактов фьюча к 100лотам живых акций.
Имеем просто граальную картинку
Задерг в самом конец вызван скорее всего какими то кривостями в котировках.
Грааль нарисован на промежутке в 3 месяца на 5 минутках.
В итоге вот что имеем: профит 252 000рублей. Комиссии и проскальзывание не учитываем (для чистоты эксперимента) При этом около 154000 принес «живой сбер» и 94000 его фьюч. Если прикинуть в рублях сколько денег вливается в сделки то доходность этого грааля около 20% за 3 месяца или что-то коло 80% без реинвестирования в год
А теперь печалько. Было совершено 1292 входа в позу. Учитывая что мы оперируем 100 лотов на акции 100 контрактов фьюча – мы имеем то, что спрэд + комиссия +прочая хрень делает этот вариант арбитража на 5 минутках не самым благодарным занятием.
Ну вот поэтому хотелось бы понять какой на какой резалт стоит обратить внимание
sberbanki.PNG 12,7KB (0)
Автор топика
Спасибо:

Church

Фотография
Дата: 14.12.2011
Ответить


Не понял логику таких вычислений. Да и зачем так. Главный игрок у нас тут - спред, т.к. именно от него образовывается Финансовый результат. Думаю для классического арбитража нужно что-то такое:
Построить временной ряд спреда за последние дни, убедиться (визуально) что он стационарный
Вычислить средний спред и сатандартное отклонение
Выбрать порог входа и порог выхода. Например, входим когда спред уходит в +1 станд.откл. от средней, выходим когда он уходит в -0.5 - и наоборот. Так же выбрать стоп, например, 5 стд. откл.
Все что нужно для бэктеста есть (лучше на тиках).

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

gambler_max

Фотография
Дата: 14.12.2011
Ответить


Church Перейти
Не понял логику таких вычислений. Да и зачем так. Главный игрок у нас тут - спред, т.к. именно от него образовывается Финансовый результат. Думаю для классического арбитража нужно что-то такое:
Построить временной ряд спреда за последние дни, убедиться (визуально) что он стационарный
Вычислить средний спред и сатандартное отклонение
Выбрать порог входа и порог выхода. Например, входим когда спред уходит в +1 станд.откл. от средней, выходим когда он уходит в -0.5 - и наоборот. Так же выбрать стоп, например, 5 стд. откл.
Все что нужно для бэктеста есть (лучше на тиках).

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


ну так расчет и строится на спрэде. Ты в своем примере делишь опен на клоуз, я делю приращение закрытия на диапазон. Другое дело что у тебя спрэд в последствии должен усредняться (как ты и говоришь в последнем посте) я же его перевожу в вариант стохастика. У нас фьючи тяготеют не к направленному движению а к "расколбасу" (хотя не так ярко выраженно как тот же Рассел или Сиплый), поэтому логично вполне делать его вокруг "0". Хотя я не настаиваю что вариант едиснтвенно верный и правильный.

А если у вас результат отрицательный...значит надо искать еще :-)
Автор топика
Спасибо:

Church

Фотография
Дата: 14.12.2011
Ответить


В моем изначальном примере была неправильная формула. Правильная: spread <- OpCl(SBER) - OpCl(SRZ1)*100
В случае когда арбитраж детерминированный и спред обречен на mean reversion.
Спасибо:

gambler_max

Фотография
Дата: 14.12.2011
Ответить


Church Перейти
В моем изначальном примере была неправильная формула. Правильная: spread <- OpCl(SBER) - OpCl(SRZ1)*100
В случае когда арбитраж детерминированный и спред обречен на mean reversion.

не понял - тогда опять возвращаемся к вопросу - почему фъюч на 100 умножаем. У нас тогда перекос получается
Автор топика
Спасибо:

gambler_max

Фотография
Дата: 14.12.2011
Ответить


gambler_max Перейти
Church Перейти
В моем изначальном примере была неправильная формула. Правильная: spread <- OpCl(SBER) - OpCl(SRZ1)*100
В случае когда арбитраж детерминированный и спред обречен на mean reversion.

не понял - тогда опять возвращаемся к вопросу - почему фъюч на 100 умножаем. У нас тогда перекос получается

сам себе отвечу - а зачем там вообще нужно на 100 умножать любую из сторон???
Автор топика
Спасибо:

Church

Фотография
Дата: 14.12.2011
Ответить


gambler_max Перейти
gambler_max Перейти
Church Перейти
В моем изначальном примере была неправильная формула. Правильная: spread <- OpCl(SBER) - OpCl(SRZ1)*100
В случае когда арбитраж детерминированный и спред обречен на mean reversion.

не понял - тогда опять возвращаемся к вопросу - почему фъюч на 100 умножаем. У нас тогда перекос получается

сам себе отвечу - а зачем там вообще нужно на 100 умножать любую из сторон???

Блин, потому что я опять не ту формолу процитировал. :( см. правильную выше.
Потому что фьючь котируется в размере 100 акций базиса.
Спасибо:

gambler_max

Фотография
Дата: 14.12.2011
Ответить


Church Перейти
gambler_max Перейти
gambler_max Перейти
Church Перейти
В моем изначальном примере была неправильная формула. Правильная: spread <- OpCl(SBER) - OpCl(SRZ1)*100
В случае когда арбитраж детерминированный и спред обречен на mean reversion.

не понял - тогда опять возвращаемся к вопросу - почему фъюч на 100 умножаем. У нас тогда перекос получается

сам себе отвечу - а зачем там вообще нужно на 100 умножать любую из сторон???

Блин, потому что я опять не ту формолу процитировал. :( см. правильную выше.
Потому что фьючь котируется в размере 100 акций базиса.

блин я то недоумеваю про это OpCl(SRZ1)*100 - тут не важно что у тебя умножается, раз ты опен на клоуз делишь то 100 не спасет,
а вот если слоуз акции тогда согласен :-)
Автор топика
Спасибо:

Jeta

Фотография
Дата: 15.07.2012
Ответить


В данном случае "OpCl(SRZ1)*100" - неправильно, автор также ведь потом исправился))) Правильно будет:
spread <- OpCl(SBER)*100 - OpCl(SRU2)
plot(spread)
Ведь иначе, смысл арбитража теряется. Мы должны получить "справедливую цену" спота, чтобы отлавливать спред. Умножая спот*100, мы тем самым, приводим цены спота, к общему знаменателю, в последствии удобным для торговли фьючерсом...
Использование OpCl(SRZ1) - думаю (если я не прав, поправьте!) попытка усреднить спред за определенный интервал времени...
Спасибо:

VirKato

Фотография
Дата: 16.07.2012
Ответить


jTr Перейти
В данном случае "OpCl(SRZ1)*100" - неправильно, автор также ведь потом исправился))) Правильно будет:
spread <- OpCl(SBER)*100 - OpCl(SRU2)
plot(spread)
Ведь иначе, смысл арбитража теряется. Мы должны получить "справедливую цену" спота, чтобы отлавливать спред. Умножая спот*100, мы тем самым, приводим цены спота, к общему знаменателю, в последствии удобным для торговли фьючерсом...
Использование OpCl(SRZ1) - думаю (если я не прав, поправьте!) попытка усреднить спред за определенный интервал времени...


Хм, как я понял сообщения выше: OpCl - это доход инструмента за период. Тогда логика его использования следующая: если спот двинулся на 1% вверх, а фьюч двинулся на 3%, то велика вероятность, что в следующий момент времени бумага будет двигаться быстрей фьюча. В конце концов на экспирации они должны быть в одной точке.
Только вот зачем там коэффициент 100, если это доходность? (Sber(t)*100)/(Sber(t-1)*100) == Sber(t)/Sber(t-1)

p.s. ну да, gambler max до меня уже этим интересовался, но ему так и не ответили.
Спасибо:

Jeta

Фотография
Дата: 03.08.2012
Ответить


Кстати, вопрос в тему, как Вы тестируете арбитражные стратегии? С помощью каких инструментов? Для себя лишь выделил следующее:
-Matlab;
-R;
Честно, разрываюсь между Matlab и R.
Поделитесь, если не затруднит, на чем из 2-х выше перечисленных, стоит остановиться и если возможно, простенький примитивный пример...
Спасибо:

Юрий1969

Фотография
Дата: 21.11.2014
Ответить


Jeta Перейти
Кстати, вопрос в тему, как Вы тестируете арбитражные стратегии? С помощью каких инструментов? Для себя лишь выделил следующее:
-Matlab;
-R;
Честно, разрываюсь между Matlab и R.
Поделитесь, если не затруднит, на чем из 2-х выше перечисленных, стоит остановиться и если возможно, простенький примитивный пример...


По тестированию можно сюда обратиться http://robinzonmoney.livejournal.com/
Там же и готовая платформа для торговли любого количества пар. Правда только для ФОРТСа
Спасибо:

Андрей Шабанов

Фотография
Автор статей
Дата: 24.11.2014
Ответить


По своему опыту:

если знания равны то лучше матлаб в силу наличия удобоваримого дебага и большей скорости работы. R всеже погибче будет
Спасибо:
1 2  >

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

loading
clippy