В структуре торгового робота  условно можно выделить три модуля:

1) Прогнозирование движения рынка.
2) Управление риском.
3)  Управление позицией.

Наибольшую творческую составляющую содержит процесс разработки первого модуля.

Именно по этому вопросу можно найти много идей, основанных на различных сочетаниях различных индикаторов.

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

Поэтому попытки построения систем путем перебора различных индикаторов и их сочетаний – путь увлекательный, но не очень эффективный.

Чтобы сократить путь создания робота  попробую объяснить что и к чему следует применять.

Любой  индикатор – это фильтр,  применение которого направлено на выделение конкретный свойств (признаков)  в истории сделок.

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

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

Данный индикатор представляет собой некоторую разновидность трейлинг стопа. (скользящего стопа).

Поэтому этот индикатор можно включать в любую торговую систему для обеспечения защитного стоп-лосса.

Однако, так как SAR является  стоп-лоссом ожидать высокой доходности от системы, использующей лишь SAR не стоит.

В своих системах я использую SAR как стоп-лоссовый индикатор.

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

При этом уровни сопротивления и поддержки разделяются на первичные, полученные на исходных свечах истории и вторичные, вычисленные на основе первичных.

Основной тайм работы роботов – 5 минут.
Однако, для принятия решения всегда используется тайм день.

 

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

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

Поэтому я просто покажу достигнутые ими результаты.

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

 

Вот результаты последнего робота за период с 21 марта 2012 года по 2 мая 2012.

Данный период определен объемом данных, получаемых с сервера КВИК в режиме реального времени.

График

голубая линия — график Profit%

Таблица
………………All trades               Long trades           Short trades
Net Profit %       57.06 %                25.71 %                   31.35 %

Exposure %                79.54 %                  37.01 %                   42.53 %
Annual Return %            4515.81 %              597.23 %                 912.40 %


All trades  36                   18 (50.00 %)           18 (50.00 %)
Avg. Profit/Loss %           1.59 %                 1.43 %                     1.74 %


Winners     31 (86.11 %)           16 (44.44 %)           15 (41.67 %)
Avg. Profit %               1.92 %                 1.68 %                     2.18 %
Max. Consecutive             18                 9                               9


Losers   5 (13.89 %)             2 (5.56 %)                3 (8.33 %)
Avg. Loss %               -0.51 %                    -0.56 %                 -0.47 %
Max. Consecutive          3                           1                    2


Max. trade % drawdown    -1.31 %                -1.12 %                    -1.31 %
Max. system % drawdown   -2.25 %                -1.74 %                    -1.29 %
Recovery Factor           19.12                  12.78                        21.01
Profit Factor            23.58                   24.02                        23.24
Payoff Ratio             3.80                     3.00                          4.65
Sharpe Ratio of trades   16.71                   20.78                        15.05

За указанный период робот показал 57% прибыли при 2% просадки прибыли и не более 1.5% просадки внутри трейда.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
С целью проверки устойчивости работы робота, он тестировался на истории с 1.01.2007 года по 1.01.2012 года.

Получены следующие результаты:

…………….All trades                 Long trades            Short trades
Net Profit %          1349.15 %                721.98 %                  627.17 %
Exposure %           23.12 %                    10.96 %                    12.16 %


All trades   1417                709 (50.04 %)          708 (49.96 %)
Avg. Profit/Loss %             0.95 %                  1.02 %                0.89 %


Winners      669 (47.21 %)          363 (25.62 %)          306 (21.59 %)
Avg. Profit %                3.13 %                      3.03 %                  3.24 %
Max. Consecutive              13                              11                  12
# bars in largest win        176                            176               86


Losers     748 (52.79 %)          346 (24.42 %)          402 (28.37 %)
Avg. Loss %                 -0.99 %                     -1.10 %                 -0.90 %
Max. Consecutive             9                                11                    9
# bars in largest loss      27                              39                       27


Max. trade % drawdown       -16.85 %                   -15.38 %                   -16.85 %
Max. system % drawdown     -6.95 %                     -8.10 %                     -9.69 %
Profit Factor              2.82                           2.90                      2.72
Payoff Ratio               3.15                           2.77                     3.58
Ulcer Index                1.60                           1.96                     2.10
Sharpe Ratio of trades      4.05                           4.44                     3.69
 

Прибыль составила 1349% при ее просадки не более 10%, просадка внутри трейда не превысила 17%, в том числе и в период кризиса.

Рассмотрим алгоритм формирования локальных экстремумов на графике.

График как говориться еще горячий так как получен сейчас и сегодня.

Локальные экстремумы — это максимум или минимум свечи при смене знака приращения соответствующего экстремума свечи.

На графике:

красный цвет штриховая линия — локальные максимумы,
синий цвет штриховая линия -локальные минимумы
пунктирные линии — это дневные уровни:
желтый цвет  -закрытие предыдущего дня
ну и т д

 

This entry was posted on Пятница, 4 мая, 2012 at 16:19 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.

19 comments so far

travek
 1 

Николай, спасибо за данный пост! Он хоть и простой по содержанию, но очень интересен по сути.
Можно у вас узнать:
1) Что за индикатор нарисован на последнем скрине на данной странице. Интересует тот, что представлен горизонтальной зелёной линией на промежутке между 12-00 и 14-00?
2) Вопрос по применению выделяемых признаков из ряда цен. Вы написали: «Практически все индикаторы построены на основе скользящей средней и фактически обеспечивают наглядное выделение интересующих нас свойств процесса.» Почти все скользящие средние используют параметр Период. Что вы можете сказать из вашего опыта: возможно ли создание эффективного алгоритма, центральным звеном которого является СС с периодом Т (фиксированное число)?
3) Если рассматривать алгоритм принятия решения как вектор признаков и коэффициентов (лиенйное решающее правило), то сколько признаков используете вы (в последнем простом роботе и предыдущем, более сложном) ? Можете ли вы на основании вашго опыта сказать, каков минимум признаков, которые необходимо использовать, для того чтобы алгорит стал эффективным. Я понимаю, что вопрос странный, т.к. признаки есть и хорошие и плохие.

Спасибо!

4 мая, 2012 at 22:41
Kamynin
 2 

Добрый день!
1) средняя линия торгового дня
2) Такая система будет прибыльной лишь иногда. Поэтому ее можно будить применять лишь избирательно.
Данный пост — это начало рассказа о том как на основе СС построить другие индикаторы и системы.
Если будет время, то расскажу позже.
3)РоботВася отличается от предыдущего полным отсутствием признаков на основе CC.
В предыдущем был фильтр КАМА. В РоботеВасе функцию КАМА выполняет модифицированный SAR.
В остальном признаки такие же.
Набор признаков в моих роботах сравнительно одинаковый и изменяется медленно.
Набор признаков- это буквы и слова, из которых складывается решение.
Вопрос о применении какого либо признака я решаю путем исследования его эффективности
Все признаки есть на графиках, вроде бы их четырнадцать.
Есть признаки,которые я не использую в роботах,но хотел бы попробовать.
Они сложны и долго вычисляются и резко увеличивают вычислительные затраты.
Число простейших признаков по моим предположением может быть примерно в диапазоне от 10 до 50.

5 мая, 2012 at 07:22
travek
 3 

Николай, добрый день!

Как вы писали в своей заметке, опубликовано много индикаторов, которые позволяют выделять различные признаки. Я вижу, что эффективность большинства слишком зависима от параметра(ов) индикатора. Например если взять индикатор пересечения 2 СС, то зависимость их от длины периода очень сильна: сегодня система работает, а завтра уже нет.

У вас есть рекомендации или каково ваше мнение по:
1) Какие индикаторы вы бы порекомендовали использовать для выделения признаков, обладающие слабой зависимостью изменения значения параметров на результат работы системы. (Здесь я понимаю, что система должна быть основана на анализе не одного признака (работы одного индикатора))
2) Есть ли методы (способы) как можно снижать зависимость изменения параметра индикатора на результат его работы.
3) Исходя из вашего опыта какими индикаторами лучше вообще не пользоваться
4) Не могли бы вы уточнить, какие вторичные признаки вы выделяете из появившихся на графике уровней поддержки/сопротивления.

Огромное вам спасибо!

6 мая, 2012 at 19:18
Kamynin
 4 

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

7 мая, 2012 at 14:28
amandra
 5 

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

8 мая, 2012 at 23:44
Kamynin
 6 

Добрый день!
Нет,я его изменил . Применил полином 2-го порядка.

10 мая, 2012 at 13:45
amandra
 7 

полином 2 порядка для фактора ускорения?

10 мая, 2012 at 20:06
genom
 8 

Здравствуйте, Николай!
Спасибо за ответ в соседней теме.
Тоже заинтересовал параболик, а точнее результат до и после. На сколько произошло улучшение качества сигналов системы? Что улучшилось/ухудшилось?
Как я понял полином должен приблизить расчетные значения параболика поближе к цене или параметрам на которых строится расчет. Параболик это только скользящий стоп в системе или еще как фильтр?

10 мая, 2012 at 20:11
Kamynin
 9 

Добрый день!
Мое мнение — параболик всегда является стоп-лоссом,
так как он срабатывает на движении цены против его движения.
Стоп-лосс работает тоже по этому принципу.
Параболик не является преобразованием цены,
поэтому он не является фильтром.

10 мая, 2012 at 21:39
twister
 10 

Николай, добрый день!
Спасибо за Ваши посты. Читаю и перечитываю их с удовольствием!

Подскажите, пожалуйста, у Вас не поменялся подход к срабатыванию сигнала, т.е. сигнал так же исполняется по цене открытия следующей за сигналом свечи?
Что представляют собой на графике ломаные линии WD, YGP, YGP15? Каково их назначение?

15 мая, 2012 at 08:27
Kamynin
 11 

Добрый день!
В роботе Вася сигнал исполняется в окне 10 секунд до закрытия свечи.
WD — это средняя дневная цена
YGP, YGP15 — это утренний прогноз движения цены.
Они входят в набор признаков для принятия решения.

15 мая, 2012 at 16:39
amandra
 12 

Добрый вечер, Николай!
Если решение принимается перед закрытием свечи, то по какой причине были осуществлены входы/выходы, которые показаны на втором графике?

15 мая, 2012 at 22:51
Kamynin
 13 

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

16 мая, 2012 at 08:29
zovalone
 14 

Здравствуйте, Николай.
Вы в Васе используете нейронную сеть, или все уложилось в линейное описание признаков?

17 мая, 2012 at 17:08
Kamynin
 15 

Добрый день, использую базу знаний.
Это несколько иное, чем классическая нейронная сеть.
Всех роботов я строю по единой технологии.
Разница лишь в наборе признаков ( у роботаВаси нет Фибо и Кама).

18 мая, 2012 at 00:07
amandra
 16 

>>Нет,я его изменил . Применил полином 2-го порядка.
полином 2 порядка для фактора ускорения?

19 мая, 2012 at 10:01
Kamynin
 17 

Добрый день,
в параболике (SAR) нет фактора усреднения.

19 мая, 2012 at 13:33
amandra
 18 

на основании чего вы вычисляете коэффициенты параболы?

23 мая, 2012 at 13:35
Kamynin
 19 

максимум прибыли

23 мая, 2012 at 22:30