В 2013 году я заинтересовался практическими вопросами прогнозирования на коротких интервалах.

Мне стало интересно, каких результатов можно достичь,

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

В данном сообщении продемонстрирую достигнутые результаты.

Период с 15 февраля 2013 г по настоящее время.

Длительность периода связана с длиной истории ,получаемой с сервера QUIK,  это 3000 свечей на 5 минутном тайме.

Робот как всегда без плеч без реинвестирования, торгует на постоянную сумму.

сделки совершаются на открытии следующей за сигналом свечи.

На графиках изображены сигналы. Сделки на следующей свече после сигнала.

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

Все сделки лишь на следующей за сигналом свече.

Вот результаты:

All trades Long trades Short trades
Initial capital 100000 100000 100000
Net Profit % 117.10% 54.44% 62.66%
Exposure % 71.37% 33.42% 37.95%
Net Risk Adjusted Return % 164.07% 162.89% 165.11%
Annual Return % 71952.68% 3900.82% 6115.56%
Risk Adjusted Return % 100815.59% 11672.93% 16113.53%
All trades 419 210(50.12%) 209(49.88 %)
 Avg. Profit/Loss 279.47 259.22 299.82
 Avg. Profit/Loss % 0.28% 0.26% 0.30%
 Avg. Bars Held 8.65 8.11 9.19
Winners 349(83.29%) 172(41.05%) 177(42.24%)
 Avg. Profit % 0.36% 0.34% 0.38%
 Avg. Bars Held 9.21 8.78 9.62
 Max. Consecutive 28 26 19
 # bars in largest win 19 23 19
Losers 70(16.71%) 38(9.07%) 32(7.64%)
 Avg. Loss % -0.11% -0.11% -0.11%
 Max. Consecutive 3 3 4
Max. trade % drawdown -0.66% -0.66% -0.62%
 
Max. system % drawdown -0.84% -0.98% -0.93%
Recovery Factor 131.78 55.41 64.97
CAR/MaxDD 85850.43 3970.68 6555.64
RAR/MaxDD 120288.25 11881.99 17273.07
Profit Factor 16.28 14.52 18.22
Payoff Ratio 3.27 3.21 3.29
Standard Error 7601.84 3316.64 4409.78
Risk-Reward Ratio 129.82 137.98 120.01
Ulcer Index 0.17 0.15 0.19
Ulcer Performance Index 434894.14 26693.96 32636.79
Sharpe Ratio of trades 41.87 42.3 39.41
K-Ratio 0.0779 0.0828 0.072

А вот картинка ее работы:

рг_2013_m_001

 

 

 

 

 

 

 

 

Более подробная картинка( для любителей подсматривать)

рг_2013_m_002

 

 

 

 

 

 

 

 

Заслуживает внимание величина просадки , которая не превосходит 1%.

Число успешных сделок превышает 83%.

Впрочем это и не удивительно, так как прогноз на коротких интервалах именно эту проблему и решает,

ну и еще конечно создает профит, величина которого за 45 дней получилась неплохой.

Данного робота  я тестирую с начала 2013 года.

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

поэтому он радостно смотрит вперед в будущее и не оглядывается назад.

 

 

This entry was posted on Суббота, 30 марта, 2013 at 15:12 and is filed under торговые роботы (МТС). You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.

46 comments so far

roma095
 1 

Николай, а в основе этого робота что лежит?

30 марта, 2013 at 15:21
Kamynin
 2 

В основе этого робота лежат знания и опыт.

30 марта, 2013 at 15:38
travek
 3 

Николай, здравствуйте!
Можете дать следующую информацию:
1) Какой временной интервал (дата начала; дата окончания) использовался для обучения модуля прогнозирования ?
2) Сколько входных параметров использует прогнозный модуль ?
3) Сколько времени у вас занял процесс обучения прогнозного модуля ?
4) Учтены ли комиссии при оценке результата торговли и в каком размере ?

Спасибо за комментарии.

1 апреля, 2013 at 09:49
Kamynin
 4 

Добрый день,
комиссия 0.025
Остальные вопросы без ответа.

1 апреля, 2013 at 15:33
Cir
 5 

Приветствую, Николай
1) При обучении Вы каким то специальным образом формировали обучающую выборку?
2) Робот как то адаптируется к текущим данным либо обучен на истории и все?
3) Какова емкость сети (сетей) — количество настраиваемых параметров?

26 апреля, 2013 at 15:06
Kamynin
 6 

Добрый день,
На эти вопросы я уже неоднократно отвечал применительно к конкретным роботам.
Поясню еще раз общно.
1) Для обучения используется вся доступная информация на тайме 5 минут.
Все первичные признаки изображены на графиках. Применяется «обучение с учителем»
2) В период своей жизни робот как и человек учится на ошибках.
3) Число нейронов в сети для робота Вася составило примерно 500. Подробнее можно найти в моих ответах на сайте.

26 апреля, 2013 at 16:58
Cir
 7 

И еще , если можно графики с сигналами робота в более крупном масштабе выложите, а то совсем не видно где и куда стрелочки направлены и много станет ясно )))

26 апреля, 2013 at 15:29
Kamynin
 8 

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

26 апреля, 2013 at 17:00
Cir
 9 

Николай, обязательно посмотрю ранние записи. Но не могу удержаться от вопроса. 500 нейронов, думаю с 10-20 признаков + вся история в качестве обучающей выборки, Matlab не потянет обучение такой сети. Каким пакетом Вы пользуетесь для конструирования и обучения нейросетей?

27 апреля, 2013 at 07:05
Kamynin
 10 

Cir,
не могу ничего ответить о том,потянет ли МАТЛАБ 500 нейронов.
Очевидно Вы это знаете.
В своих решениях я использую свои библиотеки плюс свободно распространяемые библиотеки
Библиотеки пишу на С++ с использованием некоторых приемов ускорения вычисления при цифровой обработке сигналов.
Если использую решения МАТЛАБ, то с генерацией их на С++ и дальнейшей оптимизацией.
В настоящее время матлабом для рынков уж давно не пользую,
так как есть свои необходимые библиотеки в сочетании со свободно распространяемыми.

27 апреля, 2013 at 07:26
Cir
 11 

Николай, добрый вечер.
Почитал записи на сайте( еще не все осилил), впечатляет. Не подскажите где можно познакомиться с алгоритмами SOINN? Вы по-прежнему используете этот тип сетей?
И еще нужен практический совет. Предполагается использовать в качестве предиктора стандартную модель Сугено из Fussy Toolbox Matlab. Как известно выход формируется по методу линейной регрессии. Можно ли , по Вашему мнению, пытаться искать эффективные первичные признаки как FIR от свечных данных (1-я разность), максимизирующий коэффициент корреляции с зависимой переменной ? Может имеет смысл учесть дополнительные условия (пока не ясно какие). Буду признателен за совет.

27 апреля, 2013 at 18:00
Kamynin
 12 

Добрый день,
Про SOINN было в инете.
Сейчас не знаю, что есть, так как этот вопрос сейчас вне моих интересов.
~~~~~~~~~~~~~~~~~~~~~~~~~~
Если общно, то уже более полувека все сети строятся практически одинаково.
Нюансы в процессе и критериях обучения.
~~~~~~~~~~~~~~~~~~~~~~~~~~
Сейчас я приостановил работу по развитию роботов, так как в свое свободное время
занялся вопросами реализации практического взаимодействия робота и человека на основе LUA,
встроенного в QUIK.
Как оказалось в этой задаче тоже много вопросов, в том числе и концептуальных.
~~~~~~~~~~~~~~~~~~~~~~~~~~~
В качестве совета:
Можно все, что не запрещено законом.
Последнее, если очень хочется, то тоже можно, но осторожно.
~~~~~~~~~~~~~~~~~~~
Если серьезно, то критерий истины — эксперимент.
Пока не доказано обратное, можно все.
~~~~~~~~~~~~~~~~~~~~~
На сколько я смог понять, Вы сторонник соединения вместе многих методов одновременно.
~~~~~~~~~~~~~~~~~~~~~~~~
Я предпочитаю применять лишь то,
что доказало эффективность в эксперименте или объясняется теорией,
либо хотя бы согласуется с моей рабочей гипотезой.
~~~~~~~~~~~~~~~~~~~~~~~~

28 апреля, 2013 at 12:05
roma095
 13 

Здравствуйте Николай. Позвольте задать Вам несколько вопросов.
Хочу спросить по поводу прогнозирования на коротких интервалах — данный робот тоже строится на нейросети?

Как вы считаете, возможно ли построить прибыльного робота, основанного на свечных паттернах?

И последний вопрос — не могли бы вы привести пример прогнозирования на амиброкере? Это работа на незакрытых свечах(заглядывание в будущее) или что то другое?

30 апреля, 2013 at 17:51
Kamynin
 14 

Добрый день,
1)Да, на нейросети, но можно и без нее.
2) На основе свечных паттернах можно построить прибыльного робота.
Пример в этой статье. Понятие нейросеть не отрицает понятие свечных паттернов.
Это просто разные способы описания состояния робота.
3) Последний вопрос не понял.

1 мая, 2013 at 19:26
amandra
 15 

добрый вечер
Вы так же на 5 минутах ищите свечные паттерны? какие из паттернов Вы бы выделили?

1 мая, 2013 at 22:40
Kamynin
 16 

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

2 мая, 2013 at 20:10
roma095
 17 

Николай, как вы относитесь к трудам Эндрюса?
Работают ли его теории на современном рынке?

3 мая, 2013 at 20:01
Kamynin
 18 

Добрый день,
Любой опыт и знания полезны, если их использовать правильно.
Читайте все и проверяйте на эксперименте.
Полагаю, что:
1) Прогнозировать рынок можно, но сложно.
2) Большие деньги на рынках делают не на свои ,а на чужие и без прогнозирования.
3) Прогнозирование рынков — занятие для любознательных.

3 мая, 2013 at 20:40
roma095
 19 

Николай, спасибо за ответ, как всегда интересно.
А почему большие деньги делают без прогнозирования? Покупают на падениях 10-15 процентов и встают в длинную позицию? Но так только на споте получится,так как на фуче есть время экспирации, а отыграть 15 процентное падение через 3 месяца можно и не успеть.

4 мая, 2013 at 09:39
Kamynin
 20 

Добрый день,
Приведу основные способы получения больших денег без прогнозов:
1)Все примеры как стать богатым на рынке, фактически сводятся к одному — надо управлять чужими деньгами.
А что такое эффективные управляющие — это думаю объяснять не надо.
2) Деньги на бирже делают по IPO — реклама+ разогрев рынка фиктивными покупками —
и куча денег у Вас в кармане ( за примерами далеко ходить не надо они на слуху)
3) HFT роботы — по фактическому состоянию рынка
~~~~~~~~~~~~~~~~~~~~~~~~~~
Если на рынке работают большие деньги, то они сами делают рынок , поэтому им не нужен прогноз.
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Прогноз — это удел частных инвесторов, играющих на свои.
~~~~~~~~~~~~~~~~~~~~~~~~~~

4 мая, 2013 at 12:24
roma095
 21 

Полностью согласен, теперь разобрался в вопросе. А Вам приходилось строить FHT роботов?
Не подскажите какие стратегии используют HFT роботы?

4 мая, 2013 at 19:36
Kamynin
 22 

Добрый день,
Стратегии разные.
Начиная с криминальных и до вполне законных.
Кое-что можно найти в инете.
Полезно прочитать интервью с разработчиками робота PANDA.
Настоящие HFT роботы требуют существенных затрат на сопровождение.

6 мая, 2013 at 18:59
Cir
 23 

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

13 мая, 2013 at 18:48
Kamynin
 24 

Добрый день,
Исследовал, но очень давно.
Особых эффектов не получил.
Рассматриваю данное разложение, как способ сжатия исходных данных.
Но , возможно по привычке, предпочитаю спектральный анализ(преобразование Фурье) и разложение по собственным векторам (Преобразование Карунена-Лоэва).
Примерно так.

13 мая, 2013 at 19:41
Cir
 25 

Я буквально сегодня попробовал предиктор в виде линейного классификатора 3-х классов 5-8 свечных импульсов (будущих, естественно), построенных на признаках — коэффициентах вейвлет разложения добеши 2 участков свечного ряда и получил весьма обнадеживающие результаты 55% вероятность правильного распознавания и это при простейшем классификаторе. Примечательно, что на входе свечной ряд (что и хотелось). При использовании более сложных классификаторов ожидаю повысить вероятность до 70%. Замечу, фактически используются признаки ценовых траекторий, без свечных комбинаций и прочего. Ни разложение по собственным векторам ни Фурье ничего подобного не дают. Я приятно удивлен

13 мая, 2013 at 20:04
Kamynin
 26 

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

13 мая, 2013 at 20:08
roma095
 27 

Николай, а вы когда на 5 минутках обучаете сеть, используете какой то лаг в свечах? Или это секретная информация?

14 мая, 2013 at 12:10
Kamynin
 28 

Добрый день,
поясните, что Вы понимаете под понятием «лаг в свечах»

14 мая, 2013 at 15:38
roma095
 29 

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

16 мая, 2013 at 09:34
Kamynin
 30 

Добрый день,
1)Я не выполняю явно никакой нормировки.
На вход сети поступают данные , которые можно видеть на графиках.
2) Сеть не прогнозирует цену.
Ее задача прогнозировать сигналы разворота цен т е моменты смены позиции.
3) Т е на основе полученных данных генерируется одно из трех состояний:
купить/продать/отдыхать.

16 мая, 2013 at 16:56
roma095
 31 

Николай, еще вопрос — как сменить пароль на вашем сайте? стандартный приходится постоянно из почты доставать, неудобно

16 мая, 2013 at 09:35
Kamynin
 32 

В разделе:
пользователи ->Ваш профиль (Profile)
можете прислать мне на ящик , я изменю на сайте.

16 мая, 2013 at 16:59
roma095
 33 

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

16 мая, 2013 at 19:05
Kamynin
 34 

Добрый вечер,
Как говорил Козьма Прудков: Если на клетке слона прочтёшь надпись «буйвол», не верь глазам своим.
Для ответа на Ваш вопрос советую заглянуть в книги,
например: Медведев В Г Потемкин «Нейронные сети» Матлаб 6. Диалог-Мифи М 2002

16 мая, 2013 at 19:40
roma095
 35 

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

27 мая, 2013 at 18:48
Kamynin
 36 

незнаю.

29 мая, 2013 at 12:36
roma095
 37 

Здравствуйте. Правильно ли я понимаю, что учителем вашей нейросети выступает опыт уровней цены. Т.е вы накапливаете информацию о ценах, где происходило какое то накопление. Условно пусть будет 10 свечей в одинаковом диапазоне. Также вы накапливаете информацию о дальнейшем движении цены. А дальше черный ящик на основании совего опыта прогнозирует вероятность поведения цены на определенном уровне. Я прав?

2 июня, 2013 at 09:53
Kamynin
 38 

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

3 июня, 2013 at 07:16
roma095
 39 

Приветствую Николай. А на выходе вы получете некое числовое значение, которое служит сигналом? Например 0-0.3 продажа, 0.3-0.6 — держать или флет 0.6-1 покупка ?

3 июня, 2013 at 12:15
Kamynin
 40 

Добрый день,
совершенно верно.

4 июня, 2013 at 19:07
roma095
 41 

Николай, а правильно я понимаю, что раз вы обучаете точке разворота, то это классификация?

3 июня, 2013 at 20:07
Kamynin
 42 

Можно и так сказать.
Принятие решения от классификации отличается числом классов и необходимостью действий.

4 июня, 2013 at 19:08
belko05
 43 

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

а как вы поступаете с данными между этими моментами? игнорируете?

5 июня, 2013 at 23:02
Kamynin
 44 

Добрый день,
Остальные моменты в обучающей выборке по-умолчанию маркируются сигналом — «отдыхаем».
Т о все моменты времени в обучающей выборке имеют один из трех маркеров: «купить»,»продать»,»отдыхать»

6 июня, 2013 at 11:15
roma095
 45 

Николай, как вы считаете, если не использовать нейросеть, то возможно ли на afl написать прибыльного робота также основываясь на точках разворота в прошлом. то есть описать все цены на которых был разворот. И принимать решение по торговой стратегии?

8 июня, 2013 at 16:15
Kamynin
 46 

можно,
это называется «создать базу знаний»,
но хороший робот на afl будет долго думать.

9 июня, 2013 at 00:20