Если представить Робота Васю как многослойную нейронную сеть, то получим следующее.

В первом слое содержится примерно 400 нейронов, во втором слое 120 и в третьем два.

Второй слой фактически содержит два независимых слоя по 60 нейронов, которые соединяются с последним, принимающем окончательное решение.

И вот решил я провести оптимизацию второго слоя .

Генетический алгоритм оптимизации не смог найти наилучшее решение, которое получается при простом переборе на первом шаге.

Поэтому пришлось написать программу оптимизации на полном переборе различных сочетаний нейронов во втором слое.

Вернее сказать, я лишь приспособил  оптимизатор ,встроенный в Амиброкер для решения своей задачи.

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

При попытке частичной оптимизации слоя на истории с 2007 г по настоящее время на тайме 5 минут, получилось расчетное время оптимизации для слоя в 40 нейронов 65 тысяч лет.

Очевидно, что оптимизацию  120 нейронов  придется ждать сотни тысячилетий.

Увы, Я так долго ждать не смогу, устану.

Поэтому пусть пока работает не оптимизированным.

Вот его результаты на сегодня:

 

 

 

 

 

 

 

 

 

…………………………………….All trades      Long trades      Short trades
Net Profit %                                 1729.26 %            862.39 %             866.87 %
Exposure %                                     20.24 %             11.94 %               8.30 %
Net Risk Adjusted Return %      8545.45 %          7223.58 %            10447.37 %
Annual Return %                              70.24 %             51.36 %                51.49 %
Risk Adjusted Return %               347.10 %            430.17 %                620.49 %


All trades                 2767          1384 (50.02 %)       1383 (49.98 %)
Avg. Profit/Loss %                           0.62 %            0.62 %               0.63 %
Avg. Bars Held                                47.81            55.17                 40.46


Winners              1385 (50.05 %)       672 (24.29 %)         713 (25.77 %)
Avg. Profit %                         2.09 %                     2.27 %                     1.92 %
Avg. Bars Held                          62.47             74.04                      51.55
Max. Consecutive                       43             21                          28
# bars in largest win               87                47                            87


Losers             1382 (49.95 %)        712 (25.73 %)             670 (24.21 %)
Avg. Loss %                        -0.84 %                -0.93 %                -0.75 %
Avg. Bars Held                      33.13               37.35                        28.65
Max. Consecutive                   10              9                                  11
# bars in largest loss             285              285                               72


Max. trade % drawdown             -15.46 %            -15.46 %                   -12.14 %
Max. system % drawdown            -8.44 %              -8.88 %                    -7.52 %
Recovery Factor                   71.06              46.34                        61.75
CAR/MaxDD                          8.32               5.78                         6.85
RAR/MaxDD                            41.13        48.43                         82.55
Profit Factor                     2.48                 2.30                        2.73
Payoff Ratio                     2.48                2.44                           2.56
Risk-Reward Ratio                2.00              2.23                          1.67
Ulcer Index                       1.20                  1.57                         1.66
Ulcer Performance Index            54.19                29.32                         27.77
Sharpe Ratio of trades             5.18                 4.61                           5.84
K-Ratio                           0.0087              0.0098                         0.0073

This entry was posted on Понедельник, 25 июня, 2012 at 22:57 and is filed under QUIK и Amibroker, торговые роботы (МТС), Фондовый рынок. You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.

20 comments so far

amandra
 1 

Добрый вечер!
Что означает «Если представить Робота Васю как многослойную нейронную сеть…»? Используется нейронная сеть или нет?

26 июня, 2012 at 20:54
Kamynin
 2 

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

27 июня, 2012 at 07:36
zovalone
 3 

Добрый день, Николай!
Судя по количеству нейронов в первом слое, сеть имеет 400 входов, или, если вернуться в терминологию робота, 400 признаков на основе которых сеть ищет паттерны для выработки сигналов.
Такое количество входов сети наводит на мысль, что вы подаете на вход часть данных (или все данные) «залубленные» в историю. Если это так, какой глубины исторические данные обрабатывает робот? За последние 15, 30, 60 минут?

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

27 июня, 2012 at 10:23
Kamynin
 4 

Добрый день,
1) 400 нейронов — это не первичные признаки. На их входы поступают признаки.
сколько признаков я точно не знаю, но их точно меньше, чем 400.
2) Про параболик я писал ранее, что это нечто подобное стоп-лоссу.
При смене позиции параболик устанавливается в соответствии с текущей позицией.
При смене позиции робот не учитывает предыдущие результаты своей деятельности.

27 июня, 2012 at 12:50
amandra
 5 

добрый вечер, Николай! Какой тип нейронной сети вы используете?

28 июня, 2012 at 21:01
Kamynin
 6 

Добрый вечер,
Self-Organizing Incremental Neural Network

28 июня, 2012 at 22:02
amandra
 7 

спасибо. Какой смысл деления второго слоя на два независимых слоя?

28 июня, 2012 at 23:51
Kamynin
 8 

Добрый день,
сигнал «купить» и «продать» не связаны и создаются каждый своим слоем.

29 июня, 2012 at 14:24
travek
 9 

Николай, добрый день! У меня есть вопрос как ученика к учителю. Используемый тип сети — Self-Organizing Incremental Neural Network. Как я понимаю, там первые 2 — это конкурирующие слои. Какой тип третьего, последнего, слоя в используемой вами сети. Можете сказать, сколько там нейронов. Спасибо!

6 июля, 2012 at 11:46
travek
 10 

Николай,
1) насчёт нейронов в третьем слоя я зря спросил. Их 2. (просмотрел). Как я понимаю первые два слоя разделили входные данные на классы и кластеры. А что делает третий слой ?
2) Меня заинтересовало следующее. Вы наверное проводили эксперименты. Каковы будут результаты, если на входы подавать только первичные признаки: OHLCV какого-то количества свечей, ну например 7 ? Спасибо!

7 июля, 2012 at 11:42
Kamynin
 11 

Добрый день,
1) Третий слой выдает прогноз — «лонг/нет», «шорт/нет»
В зависимости от состояния, позиция либо изменится, либо нет.
2) Ничего полезного не получится.

9 июля, 2012 at 19:17
travek
 12 

Николай, добрый день!
Вы можете пояснить, правильно ли я понял механизм работы dfitq сети и, если можно, скажите, в чём я ошибаюсь. При обучении, как я понял, на первые слой попадают признаки из истории и прогноз на n шагов в перёд. Сеть формирует кластеры исходя из поданных признаков и прогноза вперёд. Здесь сеть училась сама. В общем-то, она уже готова выдавать buy-sell, но вы прикрутили к ней ещё один слой из персептронов, который, обучили сами, т.е. чуть подправили её ответ. В чём я ошибся ?
Вы ответили на предыдущий мой вопросы про OHLCV, что ничего хорошего не выйдет. Возможно, я не оговорил, что предлагал передать не абсолютные, а какие-нибудь нормализованные (относительные) величины. Изменит ли данная оговорка ваш ответ ?

9 июля, 2012 at 22:47
Kamynin
 13 

Добрый день,
1) Относительно дальнейшего раскрытия структуры и особенностей моей сети.
Увы, не считаю это возможным.
2) Что касается общих принципов построения нейросетей, то мое мнение следующее.
У человека 10 миллиардов нейронов и его надо долго обучать, чтобы из него получился профи.
У нейросети, пусть для определенности, 1000 нейронов.
Т е нейросеть в 10 миллионов раз «тупея» человека.
И Вы хотите накормить ее первичной информацией, которую исказили преобразованием истории сделок в историю свечей,
на произвольно выбранном интервале времени.
Думаю,что ответ на Ваш вопрос о результатах такого эксперимента очевиден.
нейросеть подобна мясорубке:
На входе мясо — на выходе фарш.
На входе г… — на выходе г.., но перемолотое.
Я это уже наблюдал.

10 июля, 2012 at 20:51
amandra
 14 

travek, вы такой же как и я…задаете вопросы, что-то понимаете, что-то не очень…пробовать нужно, Николай Александрович конечно же ответит что-нибудь, но от этого ответа не все прояснится. Пробовать, пробовать и еще раз пробовать.

10 июля, 2012 at 20:35
travek
 15 

amandra, да, похоже мы в одной лодке. Можем списаться, прояснить кто что пробовал или понимает, если у вас есть желание. Можете написать на моё имя на мэйл ру.

11 июля, 2012 at 07:52
Kamynin
 16 

Добрый день,
Проблема не в том в какой лодке Вы сидите,
а в том что желание общаться не должно подменяться желанием выпытывать информацию.
Общение или дискуссия — это двухстороннее движение, а не допрос с пристрастием.
Реалия жизни такова, двухстороннее движение возникает лишь при условии,
что взамен предоставляется информация, либо деньги.
Тогда возникает обмен, дискуссия, сотрудничество, иначе — это что-то иное.
Вот Вы, travek, какие Ваши достижения мне сообщили?
Какие ноу-хау раскрыли?
Увы…

11 июля, 2012 at 09:46
travek
 17 

Николай, добрый день!
Я с вами полностью согласен, на все 100%, касательно: «желание общаться не должно подменяться желанием выпытывать информацию. Общение или дискуссия — это двухстороннее движение, а не допрос с пристрастием.
Реалия жизни такова, двухстороннее движение возникает лишь при условии, что взамен предоставляется информация, либо деньги. Тогда возникает обмен, дискуссия, сотрудничество, иначе — это что-то иное.» Золотые слова. Я понимаю, что текущий уровень моих знаний таков, что ничего нового для вас я сообщить не могу. Я этого не скрываю. Мне очень нравится ряд ваших идей. которые вы используете. Я понимаю, что кроме непростой технической реализации они идейно не простые. Мой интерес заключается в том, чтобы немного понять их (примерную реализацию и применение), потом можно будет самому это сделать. Пока не понимаешь что нужно сделать, сделать это не получится. Очень интересны ваши идеи относите уровней поддержки-сопротивления. Вроде банальная вещь, но вы её хорошо раскрутили. Насчёт нейронной сети, спасибо что вы подсказали какой тип вы используете. SOINN — достаточно свежая идея. Я видел пару статей, как люди используют её для прогнозирования курса акций. В статьях они брали именно первичные признаки. Постараюсь повторить их эксперименты, но уже с чем-то своим. Как будут результаты — могу поделиться, будет интересно их обсудить. Думаю, что это займёт время, так как на эти развлечения моего свободного времени — минимум. И нужно вспомнить как это всё на C++ делается. PS: если бы мной были получены результаты, похожие на ваши, мой подход к информационному покрытию метода был бы аналогичен вашему.

11 июля, 2012 at 10:16
Kamynin
 18 

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

11 июля, 2012 at 19:59
travek
 19 

Николай, я не переоцениваю возможность извлечения доходов торговлей на фондовом рынке на свои деньги. Это чувство возникает у каждого при «первой встрече» с рынком. Я его уже прошёл. Текущий интерес рассмативаю как хобби и никак не рассчитываю на какие-то прибыли. Краткосрочное пронозирование рынка — интересное занятие для людей с определённым складом ума. Кто-то «Дом2» смотрит, кому-то нужно другое. Полностью согласен с вашим взглядом на то, как делаются большие деньги на ФР. Есть разные стратегии. Большие деньги делают большие деньги. Я бы ещё добавил, что можно хорошо преуспеть, заняв правильную позицию в кризис, нужно только не рассчитывать получить 100500% завтра и, естественно, это должны быть не последние деньги. Ну или на общей волне роста, как например 2006-2007 годы. Так что если у меня что-то не получится(-чается) я не расстроюсь.
Хочу сказать ещё одно. Однако вы это уже подмечали когда-то. К сожалению, совсем нет ресурсов (или я плохо смотрел) по обсуждаемой нами теме с (как бы получше выразиться) качественным уровнем тех, кто пишет. Ваш уровень ушёл далеко от общей интернетовской массы. Все прочее — сплошные варианты стратегий из популярных книжек с математикой уровня 3 класса.

11 июля, 2012 at 22:05
amandra
 20 

Добрый вечер.
В комментарии выше Вы писали «400 нейронов — это не первичные признаки. На их входы поступают признаки. сколько признаков я точно не знаю, но их точно меньше, чем 400.»
Что вы имели в виду по поводу «колько признаков я точно не знаю»?

19 июля, 2012 at 19:51