…..

 

 

 

 

 

 

 

This entry was posted on Понедельник, 23 июля, 2012 at 21: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.

9 comments so far

amandra
 1 

Доброе утро, Николай!
Некоторые сделки Вася совершает на свече, hi/low которой в последствии оказывается максимумом/минимумом на определенном отрезке. На основе каких признаков принимается решение о перевороте сделки? Ведь определить максимум/минимум на отрезке можно только по завершению следующей, а Вася до ее формирования развернулся.
Спасибо

30 июля, 2012 at 10:16
Kamynin
 2 

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

31 июля, 2012 at 07:14
amandra
 3 

Спасибо. Прочел более ранние статьи,там вы писали, что Вася ищет фигуры свечей. Фигуры ищет на 5 минутном ТФ и/или же на других?

31 июля, 2012 at 08:41
travek
 4 

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

Вы написали, что сеть использует уровни экстремумов. Вы можете рассказать в каком виде вы подаёте в сеть уровни. Поясню. Предположим, мы определили, что сопротивление = 80, поддержка = 79. В сеть передаются сами значения (80,79) ? Или вы как то преобразуете. Встречал описание о нормировании значений по максимуму-минимуму на участке. Но тогда, как я понял, что пологое изменение, что резкий наклон отнормируется одинаково. Можете рассказать что-нибудь по данному вопросу (вид, в котором значения признака-индикатора передаётся в сеть).

Спасибо!

31 июля, 2012 at 19:13
Kamynin
 5 

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

31 июля, 2012 at 19:34
travek
 6 

Николай, спасибо!
Как я понял передача именно значений экстремумов и объясняет (вы писали ранее) о необходимости значительного временного интревале обучения. Т.е. мы должны показать сети как можно больше значений (паттернов / шаблонов /примеров). Но вот что меня заинтересовало. Торгуем акцией, а она может расти до небес. Предположим, мы обучали на интервали 3 года, а она потом резко начала расти без существенных падений. Появляющиеся значения экстремумов отсутствовали на этапе обучения. Я так понимаю, что в таких условиях робот будет не очень-то и умный. Т.е. хорошие показатели достигаются на тех участках, что встречались многократно в прошлом.
Вы начали обучать с 2007 года, но тогда сбер был на высоте, а потом скатился до неприличия (если я правильно помню, то рублей до 14). Но у вас в истории (конец 2008 года) показатели хорошие. Прокомментируйте, пожалуйста.

31 июля, 2012 at 19:47
Kamynin
 7 

Доброе утро,
1) Если существует сильный тренд, то робот начинает переворачивать позицию внутри тренда.
Но есть два момента,которые побуждают его снова входить в правильную позицию.
Во-первых, это откаты. Робот снова входит в правильную позицию после отката.
Во-вторых, это параболик.
Параболик (правда он у меня сильно отличается от классического) — это фактически стоп-лосс.
Однако, параболик дает ложные сигналы при флете.
2) Кроме того, решающие правила построены так, что,хотя признаки явно не нормируются,
но на выходе первого слоя получаются признаки относительного движения цен и объемов.
Поэтому не имеет значения цена в 10 рублей или 100 рублей.
Важен характер движения цены на некотором интервале в прошлом.
Именно эту информацию и дают вторичные признаки (первый слой нейронов), которые строятся из первичных.
3) Продолжаю поиск алгоритмов формирования информативных признаков.
РоботВася совершенствуется.
Процесс напоминает игру в шахматы.

1 августа, 2012 at 07:34
Alexander
 8 

Здравствуйте, Николай!
Давно к Вам не заходил, вижу Вы совершенствуете технологии. Как я понимаю, основная идея состоит в классификации данных по эктремумам сетью SOINN, далее для каждого класса данных Вы обучили обычную сеть на сигналы покупки и продажи? Я правильно понимаю идеологию? История повторяется.
Что касается генетического алгоритма, у меня есть вариант этого дела, который находит максимум и для 60 нейронов и для 200. Если этот максимум существует. Находит быстро, примерно за полчаса максимум. Если экстремума нет, то будет искать бесконечность и в лучшем случае найдёт очень маленький плюс. Например, если сети передавать просто цены. Что в общем-то говорит об отсутствии у неё какого либо интеллекта. Если бы он там был, что бы ей стоило по ценам самй построить нужные признаки? Впрочем это только мой опыт, возможно существуют другие варианты. Идея моей модификации ГА проста. Если известен дапазон искомых данных, скажем от -5 до 5, залаём нулевое начальное приближение, она что-то там находит, если это что-то достаточно лучше предыдущего, сужаем диапазон поиска скажем до +-0.1, берем найденное лучшее в качестве начально приближения и опять ищем хромосомами. Нашли что-то более лучшее, двигается дальше с шагом 0.1, не нашли играемся с шагом поиска. Долго ничего не находим, откатываемся к ПРЕДЫДУЩЕМУ лучшему и по новой. Вот так она довольно бысто находит. Возможно Вам окажется полезным, хотя Америке в этом способе я не открыл, вещь известная.
Не понятно вот что: если роботу передавать только экстремумы, то как это работает на реально потоке данных, ведь факт возникновения экстремума мы узнаем только фо факту закрытия следующей за ним свечи, т.е. с опозданием минимум на 5 минут?

9 августа, 2012 at 13:29
Kamynin
 9 

Добрый день,Александр!
1) Относительно алгоритма оптимизации.
Проблема в том, что решающая функция в моем понимании(варианте) не является гладкой и непрерывной.
Фактически у меня получается задача комбинаторики.
Я использую два алгоритма оптимизации.
Первый (вернее их в Амиброкере есть три , и генетический в том числе) работает успешно при оптимизации параметров индикаторов ( в роботе Вася это параметры параболика).
Второй — это фактически полный перебор.
Но так как в РоботеВася сейчас 280 нейронов второго слоя, то перебор осуществляется лишь с поиском наихудшего и записи его в черный список.
Если реализовать поиск наилучшего сочетания нейронов второго уровня то будет 2^280 вариантов,
а если добавить перебор первичных нейронов то получим …. )
Поиск одного наихудшего нейрона на всей истории занимает примерно 15 минут.
Попытка применить генетический алгоритм не дает ожидаемого результата.
2) Относительно экстремумов. В первой части Вашего комментария есть ответ: «История повторяется.»
Поэтому робот прогнозирует будущее по прошлому.
Новый экстремум появится даже не на следующей свече, а через свечу.
И тогда он будет учитываться роботом или человеком.

9 августа, 2012 at 20:53