...
...............................................................................................................................................................Посвящается Конвертору
В названии работы я специально применил оксюморон «случайная закономерность», как наиболее кратко и при этом полно выражающий суть этого небольшого исследования. В более широком философском смысле я вообще считаю, что случайности нет места в нашем мире, что кажущаяся «случайность» это просто не познанная закономерность. Так, и в результатах подбрасывания монетки больше двух раз возникают закономерности в виде выпадения несколько раз подряд орлов (ну или решек), можно назвать их флуктуациями случайности, но мне видится, что это именно закономерности, от слова «закон» – закон, который гласит, что равновероятные события никогда не распределяются постоянно равномерно. Почему работает этот закон, непонятно, да и не важно, но я решил проверить, можно ли использовать его в трейдинге, если представить ценовое поведение биржевого инструмента как случайный процесс.
Для целей исследования был создан «Генератор случайных акций» (ГСА) - программа, генерирующая случайный график движения цены, максимально приближенный к реальному.
Краткое описание ГСА и принципов его работы:
Программа создает набор баров, соответствующий определенному таймфрейму.
Цена открытия первого бара задается пользователем, цена закрытия - результат прибавления случайного числа к цене открытия (диапазон задается; значения могут быть как положительными (белая свеча), так и отрицательными (черная свеча)). Максимум и минимум цены (тени) - случайные числа в заданных диапазонах, отсчитываются, соответственно, от верхней и нижней границ тела бара. Кроме того, для более точного соответствия поведению реального биржевого инструмента, генерируется значение объема - случайное число в заданном диапазоне.
Все последующие бары генерируются по тому же принципу, за исключением того, что цена открытия у них равна цене закрытия предыдущего бара. Разница между ценой закрытия последнего бара дня и ценой открытия первого бара следующего дня (гэп) генерируется случайно в заданном диапазоне; гэп может быть как положительным, так и отрицательным относительно цены закрытия дня.
Все диапазоны, кроме диапазона изменения объемов, задаются в процентах.
Для генерации случайных чисел используется Random - стандартный класс среды .NET.
Эксперимент был разделен на 2 части.
Часть 1.
На первом этапе были сгенерированы 1000 графиков СА. Из них, с помощью генератора случайных чисел, были выбраны 30, на которых производилась оптимизация Метода.
Метод – реверсивный скользящий стоп Константина Борисовича Копыркина, или NRTR (авторское наименование).
http://konkop.narod.ru/nrma.htm - здесь Рис.1 ПОЛНОСТЬЮ объясняет работу Метода, применяемого в моей работе (текст до и после не совсем относится к описанию Метода, так что просьба сосредоточиться именно на этом рисунке и пояснениях к нему).
Причины выбора именно этого метода простые: NRTR - это скользящий стоп, идущий за ценой на одном и том же расстоянии (К), сколь угодно долго при движении в нужную сторону, и ограничивающий убытки, заранее определенные величиной K, при неблагоприятном движении цены. Для случайного поведения цены это наиболее адекватный подход, с моей точки зрения. Единственный параметр оптимизации - размер скользящего фильтра К, выражаемый в %.
Отличия от авторского подхода:
1. В своей работе я проводил оптимизацию К в широких диапазонах (0.1%...20%).
2. Оптимизацию К проводил отдельно (но взаимозависимо) по лонгам и шортам. Т.е., в моей вариации Метода, всегда использовалось два значения K – Kl и Ks (для лонгов и шортов, соответственно).
Параметры генерации СА:
1. Кол-во баров – 5445, достаточное для получения в среднем не менее 30 сделок при максимально возможном окне К = 20%. С точки зрения подобия реальности такое количество баров соответствует примерно 7.5 календарным месяцам на 15-ти минутных барах. Для экспериментов «out of sample» (вторая часть работы) использовались графики с кол-вом баров 10890, остальные параметры (см. далее п.п. 2-7), такие же.
2. Начальная цена (цена открытия первого бара) - 176
3. Диапазон для генерации тела свечи -1.7..+1.7 (% от цены открытия)
4. Диапазон размеров верхней «тени» свечки 0..+1.3 (% от цены открытия)
5. Диапазон размеров нижней «тени» свечки 0..-1.3 (% от цены открытия)
6. Максимальный размер гэпа: ± 3 (% от цены открытия последнего дневного бара)
7. Диапазон значений объемов: 350 000 – 12 500 000.
Примеры графика «Случайной акции»(СА) с сигналами на вход и выход из позиции, определяемые Методом :
На графиках можно увидеть точки входа и выхода из позиции, обозначенные синим кружком (цена входа-выхода, соответствует цене закрытия бара) и двумя стрелками – серой (означает вход в позицию) и зеленой или красной (выход из позиции, зеленый цвет – с профитом, красный – с убытком). Светло-розовая зона на графиках – зона шорта, светло-зеленая – зона лонга.
На графиках хорошо заметны межсессионные гэпы – 08.11.2010, 09.11.2010, на верхнем графике и 29.04.2011 и 01.05.2011, на нижнем.
В первой части работы оптимизация К проводилась на 30 случайно отобранных (из 1000) СА, по пяти параметрам – профиту (Profit), профит-фактору (PF), отношению средней профитной сделки к средней убыточной (Payoff Ratio), проценту профитных сделок (Win rate ) и коэффициенту восстановления системы (Recovery Factor). Далее значения Kl и Ks усреднялись (Таблица 1).
Таблица 1
Я специально привел все значения Kl и Ks для того, чтобы показать, насколько велик разброс полученных значений. Например, значения Kl (при оптимизации по профиту) составляют 0.5..15.9, а значения Kl при оптимизации по профит-фактору вообще меняются во всем диапазоне оптимизации – 0.1..19.9. Естественно, при таких разбросах параметров трудно ожидать адекватных результатов при простом усреднении. Однако, эксперимент был продолжен, и, используя усредненные значения Kl и Ks, рассчитывался и суммировался профит по всем 1000 СА, сумма входа в сделку была всегда одинакова и составляла 100 000, комиссия и проскальзывания принимались равными 0. Результаты в Таблице 2.
Таблица 2
Наибольшие значения соответствующих параметров в таблице отмечены серым цветом.
Видно, что при оптимизации практически по любому из параметров (за исключением Payoff Ratio), удалось достичь положительных результатов (МО от 1.26% до 3.25%). Однако, при оптимизации по профит-фактору, получается наибольшее количество максимальных значений параметров (три из пяти - PF, Recovery Factor и Win rate).
А, вообще, получен, с моей точки зрения, интересный результат – несмотря на огромный разброс усредняемых параметров, оптимизация приводит к улучшению именно того параметра, по которому она проводилась (за исключением Recovery Factor’a). Это свидетельствует, как минимум, о неслучайном характере полученных результатов.
Далее, я решил проверить практическую применимость подобного подхода путем введения затрат на совершение сделки (учет комиссии и проскальзывания). По тем же 30 случайно выбранным СА были рассчитаны значения Kl и Ks с учетом затрат на совершение сделки, равных 0.05% (или 0.025% на одну сторону, покупку или продажу), при тех же параметрах оптимизации, с последующим усреднением. Результаты приведены в Таблице 3.
Таблица 3
Величина затрат на сделку 0.05% была определена экспериментально. Это максимальное значение, при котором еще сохраняется положительное МО (при оптимизации по профит-фактору, табл. 3 ). Как видно, преимущество оптимизации по PF с введением затрат на сделку еще возросло – теперь здесь максимальны 4 параметра из 5-ти, и добавился еще один – наименьшее значение суммарных затрат на торговлю (на комиссию и проскальзывание).
Часть 2.
Однако, большой разброс параметров при оптимизации контрольной 30-ки, привел меня к мысли немного изменить эксперимент, вернее дополнить исследованиями «out of sample».
Для этого были сгенерированы 30 СА в два раза большей длины (10890 баров) с теми же параметрами ГСА (см. первую часть). Программное обеспечение изменено таким способом, что на первой половине ценового графика (1..5445 баров) проводится оптимизация Метода, затем с полученными значениями Kl и Ks производится «торговля» на оставшемся участке (5446..10890) с определением основных параметров – Profit и Profit Factor (PF). Оптимизация проводилась так же, как и в первой части по пяти параметрам – Profit, PF, Payoff Ratio, Win Rate, Recovery Factor. Результаты расчетов при нулевых затратах на совершение сделки приведены в Таблице 4.
Таблица 4
Как видно, при оптимизации по трем параметрам (PF, Payoff Ratio и Win rate) удалось получить гораздо большую величину профита (матожидания) и PF. Это связано с отсутствием усреднения оптимальных параметров и, соответственно, с более полным использованием «закономерностей» случайности.
Как и в первой части, при оптимизации по PF были получены одни из самых лучших результатов.
Ну и напоследок, получив столь оптимистичные итоги, я решил повторить расчеты с учетом реальных затрат на совершение сделки – 0.15% на одну сторону (0.3% на сделку). Результаты в Таблице 5.
Таблица 5
И здесь удалось получить весьма солидные показатели при оптимизации по PF и Payoff Ratio (примерно 17.5 и 21.5 % годовых на портфеле из 30 СА, если считать в 15-минутном таймфрейме). Однако при оптимизации по PF значения Kl и Ks после введения комиссии почти не изменились (только 4 значения из 60 – я не приводил их значения, чтобы не загружать статью), в отличие от оптимизации по Payoff Ratio (изменилось 39 значений), что говорит, как мне кажется, о более устойчивом (и, соответственно, более надежном) характере оптимизации по PF.
Краткие выводы.
Как видно из результатов данного небольшого исследования, мне вполне удалось заставить «случайные закономерности» ценовых графиков СА приносить профит и попутно оценить способы оптимизации метода их «укрощения».
Да и вообще, как говорится - sapienti sat ))
...............................................................................................................................................................Посвящается Конвертору
В названии работы я специально применил оксюморон «случайная закономерность», как наиболее кратко и при этом полно выражающий суть этого небольшого исследования. В более широком философском смысле я вообще считаю, что случайности нет места в нашем мире, что кажущаяся «случайность» это просто не познанная закономерность. Так, и в результатах подбрасывания монетки больше двух раз возникают закономерности в виде выпадения несколько раз подряд орлов (ну или решек), можно назвать их флуктуациями случайности, но мне видится, что это именно закономерности, от слова «закон» – закон, который гласит, что равновероятные события никогда не распределяются постоянно равномерно. Почему работает этот закон, непонятно, да и не важно, но я решил проверить, можно ли использовать его в трейдинге, если представить ценовое поведение биржевого инструмента как случайный процесс.
Для целей исследования был создан «Генератор случайных акций» (ГСА) - программа, генерирующая случайный график движения цены, максимально приближенный к реальному.
Краткое описание ГСА и принципов его работы:
Программа создает набор баров, соответствующий определенному таймфрейму.
Цена открытия первого бара задается пользователем, цена закрытия - результат прибавления случайного числа к цене открытия (диапазон задается; значения могут быть как положительными (белая свеча), так и отрицательными (черная свеча)). Максимум и минимум цены (тени) - случайные числа в заданных диапазонах, отсчитываются, соответственно, от верхней и нижней границ тела бара. Кроме того, для более точного соответствия поведению реального биржевого инструмента, генерируется значение объема - случайное число в заданном диапазоне.
Все последующие бары генерируются по тому же принципу, за исключением того, что цена открытия у них равна цене закрытия предыдущего бара. Разница между ценой закрытия последнего бара дня и ценой открытия первого бара следующего дня (гэп) генерируется случайно в заданном диапазоне; гэп может быть как положительным, так и отрицательным относительно цены закрытия дня.
Все диапазоны, кроме диапазона изменения объемов, задаются в процентах.
Для генерации случайных чисел используется Random - стандартный класс среды .NET.
Эксперимент был разделен на 2 части.
Часть 1.
На первом этапе были сгенерированы 1000 графиков СА. Из них, с помощью генератора случайных чисел, были выбраны 30, на которых производилась оптимизация Метода.
Метод – реверсивный скользящий стоп Константина Борисовича Копыркина, или NRTR (авторское наименование).
http://konkop.narod.ru/nrma.htm - здесь Рис.1 ПОЛНОСТЬЮ объясняет работу Метода, применяемого в моей работе (текст до и после не совсем относится к описанию Метода, так что просьба сосредоточиться именно на этом рисунке и пояснениях к нему).
Причины выбора именно этого метода простые: NRTR - это скользящий стоп, идущий за ценой на одном и том же расстоянии (К), сколь угодно долго при движении в нужную сторону, и ограничивающий убытки, заранее определенные величиной K, при неблагоприятном движении цены. Для случайного поведения цены это наиболее адекватный подход, с моей точки зрения. Единственный параметр оптимизации - размер скользящего фильтра К, выражаемый в %.
Отличия от авторского подхода:
1. В своей работе я проводил оптимизацию К в широких диапазонах (0.1%...20%).
2. Оптимизацию К проводил отдельно (но взаимозависимо) по лонгам и шортам. Т.е., в моей вариации Метода, всегда использовалось два значения K – Kl и Ks (для лонгов и шортов, соответственно).
Параметры генерации СА:
1. Кол-во баров – 5445, достаточное для получения в среднем не менее 30 сделок при максимально возможном окне К = 20%. С точки зрения подобия реальности такое количество баров соответствует примерно 7.5 календарным месяцам на 15-ти минутных барах. Для экспериментов «out of sample» (вторая часть работы) использовались графики с кол-вом баров 10890, остальные параметры (см. далее п.п. 2-7), такие же.
2. Начальная цена (цена открытия первого бара) - 176
3. Диапазон для генерации тела свечи -1.7..+1.7 (% от цены открытия)
4. Диапазон размеров верхней «тени» свечки 0..+1.3 (% от цены открытия)
5. Диапазон размеров нижней «тени» свечки 0..-1.3 (% от цены открытия)
6. Максимальный размер гэпа: ± 3 (% от цены открытия последнего дневного бара)
7. Диапазон значений объемов: 350 000 – 12 500 000.
Примеры графика «Случайной акции»(СА) с сигналами на вход и выход из позиции, определяемые Методом :


На графиках можно увидеть точки входа и выхода из позиции, обозначенные синим кружком (цена входа-выхода, соответствует цене закрытия бара) и двумя стрелками – серой (означает вход в позицию) и зеленой или красной (выход из позиции, зеленый цвет – с профитом, красный – с убытком). Светло-розовая зона на графиках – зона шорта, светло-зеленая – зона лонга.
На графиках хорошо заметны межсессионные гэпы – 08.11.2010, 09.11.2010, на верхнем графике и 29.04.2011 и 01.05.2011, на нижнем.
В первой части работы оптимизация К проводилась на 30 случайно отобранных (из 1000) СА, по пяти параметрам – профиту (Profit), профит-фактору (PF), отношению средней профитной сделки к средней убыточной (Payoff Ratio), проценту профитных сделок (Win rate ) и коэффициенту восстановления системы (Recovery Factor). Далее значения Kl и Ks усреднялись (Таблица 1).
Таблица 1

Я специально привел все значения Kl и Ks для того, чтобы показать, насколько велик разброс полученных значений. Например, значения Kl (при оптимизации по профиту) составляют 0.5..15.9, а значения Kl при оптимизации по профит-фактору вообще меняются во всем диапазоне оптимизации – 0.1..19.9. Естественно, при таких разбросах параметров трудно ожидать адекватных результатов при простом усреднении. Однако, эксперимент был продолжен, и, используя усредненные значения Kl и Ks, рассчитывался и суммировался профит по всем 1000 СА, сумма входа в сделку была всегда одинакова и составляла 100 000, комиссия и проскальзывания принимались равными 0. Результаты в Таблице 2.
Таблица 2

Наибольшие значения соответствующих параметров в таблице отмечены серым цветом.
Видно, что при оптимизации практически по любому из параметров (за исключением Payoff Ratio), удалось достичь положительных результатов (МО от 1.26% до 3.25%). Однако, при оптимизации по профит-фактору, получается наибольшее количество максимальных значений параметров (три из пяти - PF, Recovery Factor и Win rate).
А, вообще, получен, с моей точки зрения, интересный результат – несмотря на огромный разброс усредняемых параметров, оптимизация приводит к улучшению именно того параметра, по которому она проводилась (за исключением Recovery Factor’a). Это свидетельствует, как минимум, о неслучайном характере полученных результатов.
Далее, я решил проверить практическую применимость подобного подхода путем введения затрат на совершение сделки (учет комиссии и проскальзывания). По тем же 30 случайно выбранным СА были рассчитаны значения Kl и Ks с учетом затрат на совершение сделки, равных 0.05% (или 0.025% на одну сторону, покупку или продажу), при тех же параметрах оптимизации, с последующим усреднением. Результаты приведены в Таблице 3.
Таблица 3

Величина затрат на сделку 0.05% была определена экспериментально. Это максимальное значение, при котором еще сохраняется положительное МО (при оптимизации по профит-фактору, табл. 3 ). Как видно, преимущество оптимизации по PF с введением затрат на сделку еще возросло – теперь здесь максимальны 4 параметра из 5-ти, и добавился еще один – наименьшее значение суммарных затрат на торговлю (на комиссию и проскальзывание).
Часть 2.
Однако, большой разброс параметров при оптимизации контрольной 30-ки, привел меня к мысли немного изменить эксперимент, вернее дополнить исследованиями «out of sample».
Для этого были сгенерированы 30 СА в два раза большей длины (10890 баров) с теми же параметрами ГСА (см. первую часть). Программное обеспечение изменено таким способом, что на первой половине ценового графика (1..5445 баров) проводится оптимизация Метода, затем с полученными значениями Kl и Ks производится «торговля» на оставшемся участке (5446..10890) с определением основных параметров – Profit и Profit Factor (PF). Оптимизация проводилась так же, как и в первой части по пяти параметрам – Profit, PF, Payoff Ratio, Win Rate, Recovery Factor. Результаты расчетов при нулевых затратах на совершение сделки приведены в Таблице 4.
Таблица 4

Как видно, при оптимизации по трем параметрам (PF, Payoff Ratio и Win rate) удалось получить гораздо большую величину профита (матожидания) и PF. Это связано с отсутствием усреднения оптимальных параметров и, соответственно, с более полным использованием «закономерностей» случайности.
Как и в первой части, при оптимизации по PF были получены одни из самых лучших результатов.
Ну и напоследок, получив столь оптимистичные итоги, я решил повторить расчеты с учетом реальных затрат на совершение сделки – 0.15% на одну сторону (0.3% на сделку). Результаты в Таблице 5.
Таблица 5

И здесь удалось получить весьма солидные показатели при оптимизации по PF и Payoff Ratio (примерно 17.5 и 21.5 % годовых на портфеле из 30 СА, если считать в 15-минутном таймфрейме). Однако при оптимизации по PF значения Kl и Ks после введения комиссии почти не изменились (только 4 значения из 60 – я не приводил их значения, чтобы не загружать статью), в отличие от оптимизации по Payoff Ratio (изменилось 39 значений), что говорит, как мне кажется, о более устойчивом (и, соответственно, более надежном) характере оптимизации по PF.
Краткие выводы.
Как видно из результатов данного небольшого исследования, мне вполне удалось заставить «случайные закономерности» ценовых графиков СА приносить профит и попутно оценить способы оптимизации метода их «укрощения».
Да и вообще, как говорится - sapienti sat ))