Привожу сравнительные результаты робота Вася и простой стратегии на основе ФНЧ

за прошедший период ноября 2012 г.

Анализируйте, размышляйте, творите.

 

 

 

 

 

 

 

 

All trades Long trades Short trades
Net Profit % 30.64% 11.45% 19.19%
Exposure % 85.96% 33.87% 52.09%
Net Risk Adjusted Return % 35.64% 33.80% 36.84%
Annual Return % 339170.09% 2603.74% 20739.98%
Risk Adjusted Return % 394572.81% 7686.76% 39818.89%
All trades 47 23 (48.94 %) 24 (51.06 %)
 Avg. Profit/Loss % 0.65% 0.50% 0.80%
Winners 45 (95.74 %) 23 (48.94 %) 22 (46.81 %)
 Avg. Profit % 0.68% 0.50% 0.88%
Losers 2 (4.26 %) 0 (0.00 %) 2 (4.26 %)
 Avg. Loss % -0.08% N/A -0.08%
Max. trade % drawdown -0.61% -0.55% -0.61%
Max. system % drawdown -0.57% -0.53% -0.53%
Recovery Factor 47.99 20.77 30.92
CAR/MaxDD 591128.47 4924.38 39129.18
RAR/MaxDD 687688.07 14537.75 75124.48
Profit Factor 203.06 N/A 127.55
Payoff Ratio 9.02 N/A 11.6
Standard Error 147.41 76.4 115.17
Risk-Reward Ratio 636.01 428.42 529.89
Ulcer Index 0.12 0.08 0.1
Sharpe Ratio of trades 29.86 61.13 25.76
K-Ratio 0.2063 0.139 0.1719

 

 

 

 

 

 

 

 

All trades Long trades Short trades
Net Profit % 8.54% 0.15% 8.39%
Exposure % 96.61% 36.80% 59.81%
Net Risk Adjusted Return % 8.84% 0.41% 14.03%
Annual Return % 1110.77% 4.67% 1060.87%
Risk Adjusted Return % 1149.72% 12.68% 1773.65%
All trades 20 10 (50.00 %) 10 (50.00 %)
 Avg. Profit/Loss % 0.42% 0.02% 0.81%
Winners 12 (60.00 %) 5 (25.00 %) 7 (35.00 %)
 Avg. Profit % 0.99% 0.65% 1.24%
Losers 8 (40.00 %) 5 (25.00 %) 3 (15.00 %)
 Avg. Loss % -0.45% -0.61% -0.19%
Max. trade % drawdown -1.51% -1.51% -1.07%
Max. system % drawdown -2.27% -3.02% -1.07%
Recovery Factor 3.58 0.05 7.24
CAR/MaxDD 488.29 1.54 993.35
RAR/MaxDD 505.41 4.19 1660.76
Profit Factor 3.28 1.05 15.11
Payoff Ratio 2.19 1.05 6.48
Standard Error 2.88 3.51 3.73
Risk-Reward Ratio 426.14 -37.77 364.27
Ulcer Index 0.59 1.18 0.49
Sharpe Ratio of trades 9.91 0.45 16.35
K-Ratio 0.1382 -0.0123 0.1182

 

This entry was posted on Вторник, 13 ноября, 2012 at 23:05 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.

13 comments so far

Alexander2
 1 

Здравствуйте, Николай Александрович!

Прочитал с интересом все пять статей про стратегию ФНЧ и Ваши в ней изыскания. Не понял только цели исследования. Ничего нового вроде бы не наблюдается. Кроме идеи адаптации периода фильтра на основании периода цикла, определяемого по диаграмме из экстремумов… Что в общем тоже не ново… Так что же лучше, робот Вася (помня историю предыдущего робота и самого первого — тут какая-то всё же прослеживается преемственность и логика в подходах от одного к следующему) или просто торговля по скользящему среднему? С одним могу согласиться, что вся эта реклама для того, чтобы несли деньги на рынок! Это бесспорно. Так что лучше? Вася или просто одно правило торговли по мувингу, пусть и адаптивному? Стоит ли тогда городить огород из многих правил, выбирая наилучшее для текущей ситуации?
P.S. Неверю я роботам. Поэтому не сделал до сих пор стабильной системы. Если сделаю такую, чтобы не проигрывала, тогда быть может моё мнение изменится.
Руками получается до 15-25% в месяц в среднем! (Рекорд был в прошлом декабре — реально больше 50%). Но, простите не одной акцией, а разными! По ходу многих факторов… Я этим иногда в дневном интервале занимаюсь, иногда в минутном… По разному. Летом вообще не занимался. Грядки копал,образно говоря… Было бы неплохо, если бы, пока я грядки копаю, робот что-либо делал.

19 ноября, 2012 at 22:44
Kamynin
 2 

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

20 ноября, 2012 at 21:26
Alexander2
 3 

Два вопроса, если позволите. Из любопытства исключительно. Пока из любопытства, а там глядишь и польза выйдет…
«Самоорганизующийся робот — это предмет будущих исследований.»
ВОПРОС: Вы как-то писали, что используете алгоритмы SOINN (Self organized incremental NN), или это не совсем так?
Если это всё же так, то эта самая SOINN программировалась Вами или использовано какое-либо встроенное куда-то ПО?
Разновидностей алгоритмов под маркой SOINN много: SOINN, SOINN-AM, E_SOINN. Все они с параметрами. Все так или иначе предназначены для поиска и идентификации похожих вещей.

«Относительно робота на основе простой стратегии с мувингом,
я уже отвечал много раз — простая стратегия обречена быть убыточной.»
Второй вопрос филосовский.
Сложна или проста стратегия, так или иначе она системна. Любую систему можно сломать. Как только система станет заметной на рынке — ей конец, это первая причина. Вторая ещё проще — рынку же надо за счёт чего-то расти, вот он и подстраивается. ВЫВОД: раз до сих пор такого робота не избрели, значит это НЕВОЗМОЖНО. Временно да, будет прибыль. Потом он её отдаст. Как и большинство людей, участвующих в рынке. Я сам не исключение.

26 ноября, 2012 at 13:32
Kamynin
 4 

Добрый день,
1)SOINN — самоорганизующийся, но в том виде какой мне известен, он не работает на фондовом рынке.
Он фактически настраивается на простые двухмерные образы.
Я под самоорганизацией робота понимаю несколько другой принцип.
2) Ответ на философский вопрос.
Не вы первый, кто считает, что как только алгоритм станет известен, он перестанет работать.
Я думаю совершенно перпендикулярно.
Думаю Вы знаете рекомендации типа: Следуйте за рынком, Не играйте против рынка ну и тому подобное
О чем эти правила?
Разве они не призывают Вас торговать по увиденной Вами систему?
Разве они призывают играть против системы?
В психологии есть понятие -эффект подражания.
На рынке большинство игроков пытаются подражать рынку или толпе.
Лишь маркет-мейкер играет против рынка, так как его задача сузить спред.
Стратегия на основе мувинга будет убыточна,
потому что она предполагает очень примитивную модель движения рынка.

26 ноября, 2012 at 15:53
Alexander2
 5 

Робот Вася. Указано Profit Factor — 209. Это нереально. То есть это фактически идеальная торговая система. Такого идеала можно легко добиться, оптимизируя на определённом участке. Но будет ли это работать в будущем? Легко проверить, дав роботу хотя бы данные из прошлого, или данные по другой акции. Думаю уже тут будет завал.
30% за такой маленький период это ОЧЕНЬ МНОГО. Я разговариваю с миллиардером? Думаю, что нет. По крайней мере в известных рейтингах нет фамилии Камынин.

Да, случайно можно выцарапать на рынке до 100% за месяц. Но, повторяю, случайно. То есть, в следующий месяц будет или минус, или очень мало. Да и как объяснить роботу, что вот тут уже хватит, а тут ещё не дошли… Внизу рынок или наверху…. Потом, человек же смотрит не на одну акцию. Если в все падают, а эта растёт — одна ситуация, если все подрад растут другая. Где мы находимся относительно более крупного цикла… Да и вообще — сегодня надо торговать или а ну его… Как компьютер это всё может учесть?

Следование рынку не очень мне понятно. Если рынок падает, надо продавать. Но это неверно. Если рынок упал — надо покупать! Если упал ещё, надо ещё покупать! И тут же продавать в безубыток и больше ничего не делать! (последнее самое трудное).
Это не следование, это наоборот. Но по другому не будет прибыли..

Что касается SOINN, то вот названия статей:

Associative Memory for Online Learning in Noisy
Environments Using Self-Organizing
Incremental Neural Network

A Proposal of Stock Price Predictor Using Associated Memory

Параметр DIMENSION там задаётся и необязательно равен 2. Мне думается, что вообще этот параметр для рынка должен быть от нейрона к нейрону величиной переменной. Ибо в одном случае более важны скажем волатильность, в другом образе объём, в третьем и то и другое вместе.
Более интересен параметр Age, который позволяем роботу переобучаться и не «зацикливаться» на достигнутом. Ведь человеческий мозг какие-то знания забывает, какие-то изменяет и дополняет, какие-то просто использует. В итоге это позволит роботу дольше оставаться на плаву. В указанной статье дан самый примитивный вариант с размерностью 10 (9:1) и то они достигли какой-то прибыли. Если передавать роботу более широкий и осмысленный сигнал, возможно он будет эффективно работать… Код самой SOINN то же есть в интернет на языке C++. Как Вы думаете, стоит ли этим заниматься?

Ещё интересно вот тут:

An enhanced self-organizing incremental neural network for online
unsupervised learning — связь один ко многим, и как сократить сеть.

How to Use the SOINN Software:
User’s Guide (Version 1.0)

Вот только откуда я всё это брал — не помню. Все файлы в формате PDF. Исходники для MSVC 6.0

Что касательно сигнала. Если мы хотим покупать и продавать на максимуме и минимуме, то эти значения нас и робота и должны интересовать. Но это два числа. (Прямая от минимума до максимума описывается двумя числами, как и любая другая прямая на плоскости). Когда смотришь на график, так скажем из далека, то глаз очень четко вылавливает некоторые характерные загибы, которые почти однозначно говорят, что дальше будет хвост вверх, или хвост вниз. Не всегда, но части. Соответственно, возможно, что параболической аппроксимации будет достаточно, чтобы передать не только концы кривой, а её ход. Тогда получается три числа. Единственное требование, чтобы эта «парабола», точно прошла через максимум и минимум, поэтому это не регрессия по разности квадратов. Хотя, вопрос то же для исследования.

26 ноября, 2012 at 19:52
Kamynin
 6 

Добрый вечер,
Несколько мыслей вслух.
1) Системами распознавания образов я занимаюсь давно, даже диссертацию с их применением защищал в прошлой жизни.
Обсуждение их достоинств и недостатков — долгая беседа.
2) Я читал одну из статей по SOINN, ничего нового в ней не обнаружил. Классическая модель нейронной сети.
Подобные есть в МАТЛАБ и в ALGLIB
Вся прелесть SOINN в том, что они применили ее в модели механического робота.
Кое-что о нейросетях, мнение, советы и результаты пишу на сайте и в письмах, когда спрашивают.
3) Спорить про прибыль я не буду.
Это спор не о чем. Каждый имеет свое мнение.
Если Вы внимательно посмотрите мои статьи, то узнаете, что на фондовом рынке не делают деньги на основе прогнозов.
Фондовый рынок — это место, где можно взять деньги без возврата и залогов.
Этим и занимаются профессионалы.
Когда надо фирме получить кеш для закрытия долгов, то делают IPO и для этого надувают рынок. Ну и так далее
4) Что касается вопроса когда покупать и продавать.
Покупка на падающем рынке называется «ловля кинжалов». Это очень рисковая стратегия.
РоботВася их ловит.
Сам я удачно ловлю их редко.
5) Про миллиардеров.
Есть гонщики, а есть те,кто делает машины для гонок.
Разницу понимаете?
Ну вот примерно и все..

26 ноября, 2012 at 20:57
Kamynin
 7 

да еще хотел заметить
миллиардеры — это те , кто пилит бюджет, а не те, кто играет на фондовом рынке.

26 ноября, 2012 at 21:02
Alexander2
 8 

P.S. Когда я написал — «рынок упал» в предыдущем сообщении, я имел ввиду падение до какого-то разумного предела за который падать неразумно, или, скажем, упал и перестал падать.

Упал и возникла некоторая ситуация для успешной покупки.

Так будет правильней.

26 ноября, 2012 at 20:27
Alexander2
 9 

Большое спасибо. Очень обстоятельный ответ.

Прошу прощения, если обидел Вас, сказав про миллиардеров. Разницу понимаю. Сам не из их числа.

Ещё раз большое спасибо.

26 ноября, 2012 at 21:34
Kamynin
 10 

Посмотрел A Proposal of Stock Price Predictor Using Associated Memory
Дело в том,что они предсказывают цену. Поэтому это и есть самообучение, так как цель точное знание цены.
При создании торгового робота необходимо предсказывать момент изменения позиции, а это делается с учителем.
самообучающихся систем для этих целей я не встречал.
Вот о создании самообучающихся систем для торговли я и говорил.
это иные системы, чем SOINN.

27 ноября, 2012 at 00:08
Alexander2
 11 

Добрый день.

Спасибо за ответ.

Все понятно, одно непонятно. Сигнал Учителя откуда берётся? Это руками введённые сделки? Тогда ложно быть ПО для этого. Вы же не сами печатаете в текстовый файл: «Купи сегодня в 12:32».

Про предиктор.
Сама реализация этого их предиктора не очень нравится. Но идея на мой взгляд вполне живучая и рациональная.
Есть вход, есть выход. Кто сказал, что выходом должна быть цена, а входом только цена. Fn чисел на входе, Rn на выходе. Имеем вектор I=(F, R). Так кажется у них. Причём они сами признаются, что длина вектора R лучше всего 1.

Первое, что мне пришло в голову, это в качестве R использовать 1, 0, -1. 1 — после F состоялся рост за три свечи минимум на 15 копеек, 0 — ничего не состоялось, -1 — падение меня устраивающее состоялось. Можно и посложнее придумать.

Я еще вот о чём сегодня думал. Не знаю, быть может это бред, но раз уж система так хочет распознавать графические образы, так нарисуем ей на матрице, скажем размером 30×200 эти свечки в качестве вектора F просто как черные палки на белом фоне. Первая начинается с нуля до high-low, остальные по шагу цены. Один шаг цены один пиксель. Вопрос сколько их рисовать. Это как вариант, чтобы не передавать цены. Возможно сревнение таких картинок друг с другом будет более понятным алгоритму, чем сравнение массивов из цен. Ведь в базовом варианте они берут просто модуль разности вектров.

Но надо ли вообще туда передавать цены. Это вопрос для исследования. Думаю, что достаточно передавать предыдущее движение от минимума до максимума (уже состоявшееся) (это два или три числа), смотреть по истории, какие движения имели быть после переданного (SOINN должна это всё объединить в разумное количество классов и кластеров), сравнивать с фактически имеющимся (ещё не законченным) и принимать решение. Таким образом F — это путь от минимума до максимума, R — это следующий путь от максимума к минимуму. Очень примитивно изложил, но примерно так я это дело понимаю. Ещё можно передавать туда положение относительно предыдущего цикла (положение относительно максимума и минимума с более крупного временного интервала).

27 ноября, 2012 at 13:20
travek
 12 

Добрый день!

Alexander2, раз вы заговорили про предиктор. Есть ли у вас какие-нибудь результаты, что получалось ?
Недавно мне было интересно узнать, можно ли построить торговлю на основе предсказания значения цены на шаг вперёд. Решил попробовать на RTS-1m. Долго крутил вокруг да около, в итоге ничего хорошего не получилось. При обучении на 3х месяцах на следующих 3 месяцах получалось Direction symmetry что-то около 50.5 %. Результат аналогичен подбрасыванию монетки 🙂 Может быть руки кривые и плохо учил железяку.
Может кто-нибудь свои результаты ещё напишет, что получалось на практике ?

27 ноября, 2012 at 13:59
Alexander2
 13 

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

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

27 ноября, 2012 at 14:25