Блог им. elogunov

Наилучшая переворотная стратегия

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

Зачем это может быть нужно

1. Как ещё один бенчмарк для вашей переворотной стратегии в дополнение к buy-and-hold;
2. Чтобы оценить минимальный период, с которым стоит торговать momentum (или что вы там любите) стратегию, чтобы средняя продолжительность её сделки была не меньше, чем у наилучшей возможной стратегии;
3. В качестве способа разметки данных для какого-нибудь алгоритма машинного обучения (supervised learning);
4. Ваш вариант?

Наивный подход

Для начала рассмотрим такую последовательность из 10 цен:
95.52543, 96.45967, 104.40890, 98.76702, 98.37576,
99.04786, 102.59764, 101.40915, 111.34152, 110.65758

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

Для простоты примем, что стратегия всегда входит в каком-то направлении на шаге 1 (два варианта — в лонг или в шорт) и закрывает все позиции на шаге 10 (определяется однозначно действиями на всех предыдущих шагах). На шагах со 2 по 9 стратегия может либо ничего не делать, либо перевернуться. Итого, кол-во возможных вариантов последовательностей трейдов равно 2^9. Пример всех возможных последовательностей трейдов для трёх цен: (+1, 0, -1); (+1 -2 +1); (-1, 0, +1); (-1, +2, -1).

Очевидно, перебор со сложностью O(2^N) займёт уйму времени даже для сотни точек (менее полугода данных на таймфрейме D1). Нужно придумать что-то лучше.

Решение при помощи динамического программирования

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


Для начала зафиксируем все условия:
1. Цель стратегии — получить максимально возможную прибыль на заданном участке;
2. Стратегия строится с заглядыванием в будущее;
3. Торговля идёт без реинвестирования;
4. Позиция стратегии может принимать значение +1 или -1 (в штуках);
5. В конечный момент времени (или раньше, если это улучшает результат) стратегия должна закрыть позицию;
6. Транзакционные издержки — линейные;
7. Market impact отсутствует.

Рассмотрим стратегию, которая входит в начальный момент времени (скажем, в лонг), и в какой-то момент времени закрывает позицию, не делая переворотов. Её прибыль равна приращению цены между моментами открытия и закрытия позиции за вычетом удвоенных транзакционных издержек (fee):
Наилучшая переворотная стратегия
Теперь рассмотрим стратегию, которая делает один переворот в течение периода торговли. Пусть момент времени, в который происходит переворот, будет обозначен как «split», а момент закрытия позиции — как «end». Тогда прибыль стратегии с одним переворотом равна сумме прибыли стратегии, которая не делает переворотов и заканчивает торговлю в момент времени split, а также прибыли, полученной после переворота:
Наилучшая переворотная стратегия
Перебрав все возможные значения split (т.е. от 2 до end-1) сможем найти оптимальную стратегию с одним переворотом, которая начинает с лонга и прекращает торговлю к моменту времени end. Почему split оптимизируется в таких пределах? Потому что если он будет совпадать с 1 или с end — полученная стратегия в какой-то точке отдаст удвоенную комиссию, но ничего не заработает на изменении цены, т.к. оно будет равно нулю.

Теперь, допустим, что мы построили оптимальные стратегии, выполняющие K переворотов и заканчивающие торговлю во все возможные моменты времени от (1+K) до N (кол-во точек цены). Тогда можем построить все оптимальные стратегии, выполняющие K+1 переворот:
Наилучшая переворотная стратегия

Таким образом, приходим к следующему алгоритму:

перебираем кол-во переворотов K от нуля до N-2 {
  перебираем момент окончания торговли стратегии end от минимально возможного (чтобы оставить место для хотя бы ещё одного переворота) до N {
    если K=0 (стратегия без переворотов) {
      просто запоминаем прибыль стратегии[end; K];
    } иначе {
      для всех возможных точек ещё одного переворота ищем такую стратегию[split; K-1] чтобы суммарная прибыль стратигии[split; K-1] и прибыли на промежутке [split; end] была максимальна;
      записываем прибыль оптимальной стратегии[end; K], улучшающей стратегию[split; K-1];
      записываем значение split[end; K], которое определяет, какая стратегия с K-1 переворотом была выбрана
    }
  }
}

В результате получим две таблицы размерности N^2, содержащие прибыль стратегии с любым возможным кол-вом переворотов и моментом окончания торговли, а также информацию, необходимую для восстановления оптимальной подстратегии из K-1 переворотов, входящих в любую выбранную стратегию из K переворотов. Вот что получится для примера из 10 цен, рассмотренных в начале, при транзакционных издержках равных 1:
Наилучшая переворотная стратегия

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

Теперь необходимо выбрать какую-то стратегию и построить последовательность трейдов, её реализующую. Можно ограничиться рассмотрением стратегий, заканчивающих торговлю в момент времени N — для этого необходимо найти максимум в последней строке матрицы value.func. Либо просто найти максимум в матрице value.func — тогда полученная стратегия, если это выгодно, закончит торговлю чуть раньше. Я воспользуюсь вторым вариантом:
Наилучшая переворотная стратегия

Т.е. оптимальная стратегия торговли состоит из покупки 1 шт. инструмента в момент времени 1, переворота в момент времени 3, ещё одного переворота в момент времени 5 и закрытия позиции в момент времени 9. Суммарная прибыль составит 21.882364. Закрытие в момент времени 10 ухудшит прибыль до 21.198429, а переворот в шорт в момент времени 9 и закрытие в момент времени 10 — до 20.56299.

Рассмотренный алгоритм имеет временную сложность порядка O(N^3) и требует порядка O(N^2) памяти. Алгоритм необходимо запустить дважды, для стратегии начинающейся с лонга и стратегии начинающейся с шорта, после чего выбрать наилучшую из полученных стратегий. Для траектории цены длиной 2000 точек время работы простейшей однопоточной реализации составляет около 12 секунд; для 1000 точек — порядка 1.3 секунды.

Если требуется понять лишь величину максимально возможной прибыли — то можно хранить лишь два столбца матрицы value.func, что снизит расход памяти до порядка O(N).

Свойства стратегии

1. При нулевых транзакционных издержках прибыль стратегии равна сумме модулей приращений цены; просадки отсутствуют; автокорреляции в позициях стратегии отсутствуют;
Наилучшая переворотная стратегия
2. При положительных транзакционных издержках максимальная просадка стратегии не превышает удвоенной их (издержек) величины; позиции имеют положительную автокорреляцию; среднее время удержания позиции увеличивается по сравнению с вариантом (1);
Наилучшая переворотная стратегия
3. При отрицательных транзакционных издержках стратегия будет пытаться переворачиваться чаще; просадки отсутствуют; позиции стратегии имеют отрицательную автокорреляцию; среднее время удержания позиции уменьшается по сравнению с вариантом (1).
Наилучшая переворотная стратегия

Приложения

1. Реализация алгоритма на C++ (документацию по использованной матричной библиотеке смотреть тут);
2. Тестовый скрипт на R.

Литература

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

1. Беллман Р. Динамическое программирование. — М.: Изд-во иностранной литературы, 1960.
2. Вагнер Г. Основы исследования операций. Том 2. — М.: Мир, 1973. — 489 с.
★96
Класс
avatar

Андрей

Ни фига не понял. Непонятно, но здорово. Потом почитаю.
Вот R снес аж несколько лет назад. Не зашел. Python forever.)) И с ML в нем лучше.
Вот, к примеру, только один модуль scikit-learn. Методы ML:

Учи как хочешь, и чему хочешь.)) И это  только классификация, но есть и прогнозирование.
Ну, да ладно, всяк кулик свое болото…
avatar

3Qu

3Qu, непонятно, но красиво))
avatar

Йоганн

3Qu, а я завязал с Р, когда после обновления на Ubuntu 18.04 RStudio начала нестабильно работать и вылетать через раз
avatar

MadQuant

MadQuant, у меня R с самого начала ничего кроме раздражения и внутреннего протеста не вызывал.
А вот Питон сразу на ура зашёл.
avatar

3Qu

3Qu, судя по картинке, метод ближайших соседей достойно справляется с разными типами задач, причем разделяет с высокой уверенностью. Никогда не относился к нему всерьез. Надо бы протестить…
Собака инвестяка, Вам же в документации к пакету не покажут картинку, где метод откровенно лажает. =)
avatar

ch5oh

ch5oh, на той картине много методов, которые откровенно лажают. Речь как раз о сравнении ближайших соседей с другими методами на том же наборе данных.
3Qu, А есть что-то в Питоне, что не может сделать R? 
Vladimir Diaditchev, я не настолько хорошо знаю пакеты R, чтобы ответить на этот вопрос. Из того что нужно конкретно мне, в пакетах R нет ничего что бы стоило того, чтобы использовать R.
Ну, и сам R, как язык, очень примитивен. Попадаешь в прошлый век программирования.)
avatar

3Qu

живут же Люди...
avatar

wistopus

как же много нужно посчитать для того чтобы иметь возможность не думать
avatar

Tуземец

При чем здесь split, когда это reversal по описанию.
Как будто автор не знает английского.

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

В реальный торгах каждая последующая цена неизвестна. Да, бывают сильные обвалы и резкое открытие с гэпом вверх, но это редкость. Нам нужны остальные 95% случаев.
А остальные случаи таковы, что за 95 может последовать и 98 и 101, а также 91 или 89. Мы этого зараннее не знаем. Поэтому математичские вводные надо строить из этого.

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

Собственно, я это давно уже сделал. «Оцениваем» показатель цены (числа 60, 90 и 100 имеют очень разную природу, например, с позиции модели Бенфорда, т.е. логарифмов). Смотрим и оцениваем размер каждого следующего движения (насколько вверх/вниз). И смотрим всё это в контексте предыдущих локальных хайев, локальных лойев. Под эту классификацию сделана отдельная арифметическая моедель.
И наблюдаем за пересечением уровнем этих цен на данный момент.

Вот это так или иначе дает сигнал для входа и выхода.
avatar

thankODD

thankODD, 
При чем здесь split, когда это reversal по описанию. Как будто автор не знает английского.
A strategy with K reversals operates within interval from 1 to «end». «Split» is a point which splits this interval into pair of two adjacent intervals so that to maximize total PnL from an optimal substrategy with K-1 reversals, which is traded within interval from 1 to «split», and an additional position held from «split» to «end».
В реальный торгах каждая последующая цена неизвестна.
You'd better read the «Why is it necessary» section once again.
avatar

Eugene Logunov

Eugene Logunov, 
You'd better read the «Why is it necessary» section once again.

Машинное обучение. Ну да.
Я же говорю, не надо ничего усложнять.
Эта машинка по факту только и будет заниматься сравнениями и арифметикой.
А когда ей придется скушать паттерны очень больших или очень малых ценников (как Транснефть или TGKA или еще хуже TGKD в России) она поплывет крышей и сильно изуродует свое понимание обычных акций.

Средневзвешенные коэффициенты в ней сдвинутся.

Обучать закону Бенфорда машинку через обучение и выборки как-то странно, когда есть готовая несложная формула. А это суровая реальность всех чисел, в любой области жизни.

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

Заодно и объемы. Моментум точно нащупает. Бурный рост на слабых объемах — фуфловый рост. Бурные объемы на лойях — к росту.
avatar

thankODD

thankODD, 
Потому что рынок на самом деле прост. Он двухмерен. Или вверх, или вниз.

Это спорно. Есть еще скорость, а это уже плюс минимум одно измерение. А если копать глубже, можно еще парочку придумать :)
avatar

Dmitryy

Dmitryy, 
Скорость чего? Потоков котировок? Это глупо.
Во времена, когда котировки писали мелом на доске или на биржевой телеграфной ленте, конечно, скорость ощущалась. Как бы, в раздумьях участники или хапают по маркету кто сколько может.

Есть рыночные инструменты, которые не имеют потоков котировок. Один день — одна котировка. И всё.

Например, очень уважаемый и теперь не очень доступный бесплатно Baltic Exchange Index с целым семейством индексов.

www.bloomberg.com/quote/BDIY:IND

График при этом вполне рыночный. Если аргумент или гипотеза где-то сбоит на общем рынке — вряд ли это серьезная гипотеза.
avatar

thankODD

thankODD, скорость изменения цены — первая производная, скорость изменения волатильности — вторая производная. Как ни крути, двухмерностью и не пахнет.
avatar

Dmitryy

Dmitryy, 
Вы опять мыслите в катерогии российских вузов.

Где учат как бы «математике» лишь бы чему-то учить, совершенно не объясняя физического и практического смысла, как и зачем это применяется на практике и имеет ли смысл.

Наверное, закончив вуз, надо перестать играть в детский сад, и строго себе объяснять, зачем и с какой целью я считаю.

Проще говоря, плясать от предметной области и её практической реальной стороны. А не в стиле — вижу цифры, давайте считать производные, интегралы и косинусы. Это очень глупый подход.

Вы думаете за 50+ лет в мире этого так никто и не сделал? И не слепил свой «отстающий» индикатор этим путем, который так никому и не помог?

Надо эту шаблонность постоянно держать в голове и помнить, что надо идти другим путем.
avatar

thankODD

thankODD, после российского вуза, у меня эти знания не откладывались. Только с приходом на рынок и открыв для себя несколько англоговорящих авторов, я начал понимать математику по новому. Я бы вам объяснил на пальцах, но вы похоже закрылись и больше нацелены на убеждении, а не понимании.
avatar

Dmitryy

Dmitryy, 

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

Осталось протестировать плотнее, потому что многие вещи пока в рукописях. Всё руки не доходят доделывать свои скрипты баз данных.

Пока я рынке одним глазом, что называется.
avatar

thankODD

thankODD,
то что у вас есть свое учение — это круто. Как золотоискатель золотоискателя — Уважаю.

Тем не менее, позволю высказать свое мнение:
— если все что может измениться — это цена или вверх, или вниз — это все же в классическом понимании одно измерение (ось цены).
— при наличии своей уникальной технологии можно так в неё влюбиться и увлечься отрицанием общепринятых моментов, что в итоге через кучу лет так ничего по факту и не заработать, да ещё и услышать от какого то юнца, что 80% твоей уникальной технологии, на автоматизацию которой ты потратил годы, получается банальным выбором типа графика цены. Но все равно толку от этого 0.

В общем, мечтать о фундаментальной уникальности своей технологии — очень комфортно. Но желательно чтобы кто-то, кому вы доверяете, и кто не побоится высказать свое честное мнение о вашей технологии сделал бы это (вернее о продуктивности её использования — как минимум пусть посмотрит ваш брокерский отчет). 
Исключительно для снижения риска вреда от субъективного отношения к своей технологии.

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

В любом случае — удачного поиска грааля! Я как и все знаю, что его нет, но тоже все равно ищу.
avatar

Носорог

Dmitryy, насколько я помню, необходимым условием для существования производной является непрерывность функции. О какой производной вы говорите? 
Артур Идиатулин (Tickmill), а какая Вам больше нравится? 
https://en.wikipedia.org/wiki/Greeks_(finance)

То, что цены дискретные в терминале, не значит, что к ним неприменимы непрерывные функции.

avatar

Dmitryy

Dmitryy, а греки тут причем? чувствительность цены (ну или дельты цены) опциона к изменению цены базового актива вроде как не то же самое, что гипотетическая производная цены по времени (что характеризует скорость).
Артур Идиатулин (Tickmill), греки это и есть производные инструменты БА. Скорость изменения цены БА представляет интерес только в связке с другими показателями, такими как СКО и МО. А это всё составляющие тех самых греков, по-этому мы не можем говорить о двухмерности рынка, когда у нас есть рычаги (в лице опционов), использовать другие измерения. Если взять страйк, цену БА и время — уже 3 измерения. А еще есть СКО, СКО СКО и так далее.
avatar

Dmitryy

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

SergeyJu

SergeyJu, понятие производной работает с понятием предела, которое опирается на такое понятие как бесконечно малая. Не знаю о какой производной для дискретных процессов вы говорите, наверно имеете ввиду отношение приращений, с чем я не спорю
Артур Идиатулин (Tickmill), в математике, кроме азов матанализа, существуют и другие, более продвинутые методы. Обсуждать не хочу, тем более уже был прецедент.  Один пурист-недоучка регулярно «разоблачает» А.Г., что тот использует непрерывные аналоги для дискретных процессов. 
avatar

SergeyJu

Артур Идиатулин (Tickmill), есть понятие обобщённой производной. Ценовой ряд заменяется некоей дифференцируемой функцией. Которая отличается от него в количестве точек бесконечно малой меры. При этом интегралы Лебега обеих функций на любом интервале ненулевой меры совпадают.
Далее работают с этой функцией, изучают её свойства. Вместо ценового ряда. Что на практике будет означать, что значения двух функций совпадают в 99% (например) точек.
avatar

MS

thankODD, thankODD, Очевидно, что время выкидывать нельзя, так как временная стоимость денег это азы финансов. На всё следует смотреть не с точки зрения цен, но доходностей в годовом выражении. Существует огромная разница между тем вырастет цена с 50 до 100 за месяц или два года. Это на порядок отличающиеся доходности. Время — не просто важный фактор для любой модели трейдинга, но неотъемлемый, и любая финансовая или торговая модель должна явно или неявно включать в себя дисконтирование. 
avatar

DR. LECTER

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

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

Те же самые колебания.

Время в финансах придумал человек. В природе всё несколько хаотично.
avatar

thankODD

thankODD, никто не ищет временные шаблоны. Финансы как ничто иное отлично подчиняются законам природы, которые отлично описываются уравнениями с кучей производных. Например уравнение теплопроводности — это почти копия уравнения БШ.

Самолеты летают по отлично описанным дифференциальным уравнениям. 
avatar

Dmitryy

Dmitryy, пока не попадут в зону турбулентности. А там дифуры эти не работают. Кто опишет уравнения турбулентности — получит Нобелевку и славу не ниже Эйнштейна.
avatar

MS

thankODD, я всегда подозревал, что банкиры, берущие % за свой кредит, нарушают законы природы. :)

А те, кто кладёт на депозит под проценты — тоже просто неучи! 100$ сто лет назад и сейчас — это одно и тоже.
Сейчас пишу с сарказмом. 
avatar

Носорог

Евгений, не подскажите сервисы бесплатные где можно поискать акции по фильтрам аля: Дивиденд 2019 > 2018 > 2017 и т.п.
avatar

noTrust

noTrust, Увы, не встречал бесплатных скринеров с подобной функциональностью. Возможно, стоит сформулировать задачу в терминах dividend growth? 

Неплохой скринер у https://www.zacks.com/screening/stock-screener?icid=home-home-nav_tracking-zcom-main_menu_wrapper-stock_screener
avatar

Eugene Logunov

Круто!!! Реально, просто завидую) но ейдж всегда рождается от лени, а не от знания. От знания рождается работа ;)
avatar

vitsantal

vitsantal, 
От знания рождается работа ;)
Или дёргающийся глаз o_O



avatar

Eugene Logunov

Eugene Logunov, или работа И дергающийся глаз! ))
avatar

tashik

Считать оптимальную стратегию по прошлому -  очень простая конкретная  задача.  Но будущее неизвестно. Возьмем Вашу последовательность   значений.  И предположим  по каким то причинам  в начальный момент Вы не купили 1 акцию, а продали ее.  Что будете делать?!
avatar

LevNNN

LevNNN, Если я открыл позицию без какой либо на то причины — то закрою её, потому что риски мне не нужны. Если есть какой-то view относительно будущего движения — встану в его сторону.
avatar

Eugene Logunov

А можно посмотреть результаты тестирования Вашей стратегии на реальных данных?!
Как я понял, то на основании  k временных  точек Вы пытаетесь предсказать k+1  временную точку. 
avatar

LevNNN

LevNNN, 
А можно посмотреть результаты тестирования Вашей стратегии на реальных данных?!
Исходя из принципов построения конкретно этой стратегии — её результат будет хорошим на любых данных. На последних 5000 торговых дней по S&P с комиссией 1 индексный пункт на таймфрейме D1 она выглядит как-то так:


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

Она строится с заглядыванием в будущее, т.е. предназначена для анализа истории, а не для торговли. Очевидно же, что без машины времени подобную систему будет трудновато торговать))
avatar

Eugene Logunov

Eugene Logunov, на битке можно прогнать, дн?
Алексей Т, Да, как в 17 году. И следующие два года сиди в убытке, пока счет не закончится.
«С*ка, ну ничему не учит рынок людей»© Майтрейд
avatar

Sarge Chebotte

История  не интересна для практических целей. Интересно  предсказать будущее. 
avatar

LevNNN

LevNNN, Предсказание будущего невозможно, поэтому не интересно. А вот историю анализировать можно, поэтому интересно.
avatar

Dmitry Mikheev

Ах ты Господи! Ну и навороты! По-моему, гораздо проще и без «заглядывания» в будущее в качестве «идеальной модели» построить график Зигзаг. задав минимальную глубину графика (процентное расстояние по цене актива) в выбранном соотношении с процентом комиссии. Например, если комиссия составляет 0.05%, то глубину графика берём 0.1%, чтобы половину «идеального» выигрыша в самом худшем «идеальном» случае оставить себе.
И отпадает проблема Буриданова осла на первой сделке.
Rostislav Kudryashov, 
По-моему, гораздо проще и без «заглядывания» в будущее в качестве «идеальной модели» построить график Зигзаг.
Вместо «заглядывания в будущее» получится «перерисовывание прошлого» :)

Но, да, это тоже один из способов построить систему c максимальным профитом.
avatar

Eugene Logunov

Eugene Logunov, однопроходный алгоритм O(n). Покажет максимальный возможный профит.

Чаще всего делается так. Bid и Ask маркапится на величину комиссии. После чего гонится однопроходный ЗЗ с нулевым мин. коленом.

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

А так же, как часть критерия отбора mean-reverse символов, включая синтетические.

ЗЫ Часто на основе этого строят график зависимоти максимального профита от величины транзакционных издержек. Издалека похожа на гиперболу. Самое интересное — левая часть, где можно видеть вкусные аномалии.
avatar

fxsaber

Не понял практический смысл, таблица динамического программирования рисуется на основе заглядывания в будущее. Таким образом ищется оптимальная стратегия на исторических данных, причем специфичная для каждого БА. А что потом, не можем же мы её применить к новым данным? 
avatar

Dmitryy

Dmitryy, Способы использования указаны в части «Зачем это может быть нужно». Торговля этой стратегии не предполагается. К новым данным можем применить, но только когда они будут доступны (т.е. станут историческими), при этом какая-то часть стратегии перерисуется.
avatar

Eugene Logunov

те речь об том, как оптимально отторговать, если знаешь траекторию рынка (а то ведь смартлабовские лосейники даже с гроалем опозорятся).
ps operations research & dynamic programming — эх, "... как много в этом звуке для сердца русского слилось!" 
ps2 картинка с котиком и calculus book — это прям про меня))


avatar

wot

Что это было?! Ни одного интеграла в статье. Местами даже понятно. Все признаки деградации. Если так дальше пойдет, этот инопланетянин вообще в человека превратится…
avatar

(1:10) || algo

Ничего не понял. Таким же образом и «прибыльную» стратегию на случайном блуждании можно построить. И какой в этом смысл? 
avatar

А. Г.

А. Г., Автор предлагает унифицированный протокол для категоризации стратегий. В границах этого бектеста можно построить распределение P/L всех стратегий в поле некоторого алгоритма(переворот) — и вы в конце торгового отрезка (1,5,60 итд мин по ходу дня например) видите где на плотности распределений P/L (от мин до макс) находится ваша — настоящая реальная, показывает ли она результат лучше медианы (например) или хуже.
Я так понимаю.
avatar

Сергей

"… а деньги то хгде, хгде деньги-то..."
Зачем так сложно? Тут с помощью ДП все за линию решается — можно хоть миллион точек обработать за секунду.
avatar

MadQuant

Интересно, а как автор предложил бы торговать следующие ряды:
0,5 0,4 0,3 0,22 0,15 0,1 0,07
0,5 0,6 0,69 0,76 0,82 0,87 0,9
avatar

Glago

Glago, стредл на 0.5 страйке :)
avatar

Dmitryy

Крутой топик)
avatar

KarL$oH

выражаясь дипломатическим языком «я удивлён»
Однако, фундаментальненько!
avatar

Dmitry Mikheev

Апокрифично
Автор, зачем вам цены 6 знаков после запятой? Реальные платежи округляются до копеек?
Владимир М., Вообще, контракты разные бывают. Взять CME'шный фьючерс на RUB/USD: сейчас по нему котировка примерно 0.014600x0.014605. Согласитесь, есть разница между торговлей по цене 0.014600 (соответствует курсу USD/RUB 68.4932) и 0.014 (соответствует курсу USD/RUB 71.4286)?

А цены в статье вообще сгенерированы случайно. Округлять было лень, да и незачем.
avatar

Eugene Logunov

красиво и много чисел.тупо-заумно
avatar

френк


теги блога Eugene Logunov

....все тэги



2010-2020
UPDONW