Статистика, как способ заглянуть в будущее! - страница 19

 

bstone - Прогноз для желтой и красной линии соответственно на 1 и 2 бара вперед по отношению к синей. Расчет осуществляется на нулевом баре, и то, что Вы видите на картинках формируется в этом виде на нулевом баре без подсматривания в будущее, без перерисовывания прошлого, я это проверял на демо счете (не первый год за мужем за Фореск, отношусь к этому серьезно).

Neutron –«Общий вид кривой баланса, найденный из оценочных интегральных характеристик показан красной линиеей на рис. ниже. Для сравнения, синей линеей приведена кривая баланса, построенная "честной" торговлей ТС, по данным предоставленными Piligrimm - не понял, что за такая честная система?

Выше описанный алгоритм реализован в модуле, который является стационарным блоком (т.е. без переобучения моделей, хотя есть возможность за счет "эквалайзера" производить оптимизацию амплитуда – фазовых характеристик сигналов под конкретный инструмент и таймфрейм), предназначенным для формирования презентативной выборки спектра сигналов (более сотни сигналов полученных по различным алгоритмам) на основе котировок в реальном времени. Торговые решения будут приниматься не по 2 – 3 сигналам представленным на картинках (таких, подобных приведенным, сигналов много, на последнем вышеприведенном рисунке Вы видите спектр из 100 сигналов, многие из которых имеют характеристики не хуже, чем 3 представленных мною выше в качестве примера прогнозирования одного сигнала на 1 и 2 бара вперед), а отдельным динамическим модулем принятия торговых решений.

Этот модуль я уже сделал и обкатал в других экспертных системах разработанных ранее. Суть его в том, что используются три комитета нейронных сетей по 15 НС в каждом. На каждый комитет подается группа по 50 сигналов, со следующим распределением: на первый комитет – сигналы с 1 по 50, на второй – с 26 по 75, на третий – с 51 по 100 из выше описанного первого модуля, таким образом, каждый комитет имеет на половину перекрывающуюся выборку входных сигналов с другим комитетом. Длина обучающей выборки сигналов для каждого комитета 200 баров, комитеты НС работают в бесконечном цикле переобучения в реальном времени. В качестве сигнала, по которому производится обучение, подается сигнал с "индикатора Тренд" хорошо отражающего точки разворота тренда на истории (который я выставлял на продажу, можете посмотреть его работу там). После переобучения 15 НС в комитете, модели этих сетей прогоняются на тестовой выборке, и из 15 выбирается только 9 самых лучших. И эти 9 НС из каждого комитета поступают в блок расчета, где производится расчет на 9 НС и усреднение полученного результата по комитету, и так для каждого комитета. В результате получаем три торговых сигнала рассчитываемых комитетами по приходу каждого нового бара. Коллегиальное торговое решение принимается при совпадении решения всех трех комитетов. Динамичная система, постоянно отслеживающая происходящие изменения на рынке и перестраивающая свои параметры в реальном времени позволяет принимать оптимальные решения для конкретной ситуации. В целом работу всей системы пока не проверял, занимаюсь тем, что "вылизываю" отдельные сигналы первого модуля. И результат этого "вылизывания" привожу на ниже расположенных рисунках. Сигналы показанные на рисунках – это две модификации сигнала, который был представлен ранее в виде красной линии. На первом и втором рисунке сигналы отличаются разными настройками "эквалайзера", я хотел показать, как небольшие изменения параметров меняют форму сигналов. В архиве файл PR – соответствующий первому рисунку, PR30 – соответствующий третьему рисунку. В 1 столбце – данные соответствующие линии красного цвета, во 2 – желтого цвета, с 3 по 6, соответственно - Open, High, Low, Close.

Файлы:
pr_1.zip  221 kb
 
rsi писал(а) >>

Neutron, было бы хорошо оформить способ в виде статьи...

Материал сырой. Думаю, что пока рано оформлять статью.

Piligrimm писал(а) >>

Расчет осуществляется на нулевом баре, и то, что Вы видите на картинках формируется в этом виде на нулевом баре без подсматривания в будущее, без перерисовывания прошлого, я это проверял на демо счете (не первый год за мужем за Фореск, отношусь к этому серьезно).

Суть в том, что используются три комитета нейронных сетей по 15 НС в каждом. На каждый комитет подается группа по 50 сигналов, со следующим распределением: на первый комитет – сигналы с 1 по 50, на второй – с 26 по 75, на третий – с 51 по 100 из выше описанного первого модуля, таким образом, каждый комитет имеет на половину перекрывающуюся выборку входных сигналов с другим комитетом. Длина обучающей выборки сигналов для каждого комитета 200 баров, комитеты НС работают в бесконечном цикле переобучения в реальном времени.

Снимаю шляпу перед проделанной Вами работой и полученным великолепным результатом!

По-сути, представленные данные служат прямым доказательством не мартингальности рынка Forex и, следовательно, возможности неслучайного заработка на нём.

Neutron –«Общий вид кривой баланса, найденный из оценочных интегральных характеристик показан красной линиеей на рис. ниже. Для сравнения, синей линеей приведена кривая баланса, построенная "честной" торговлей ТС, по данным предоставленными Piligrimm - не понял, что за такая честная система?

Загоняем представленный Вами котир (третий столбец в архиве) в Метатрейдер и используем в качестве индикатора на открытиие позицимм жёлтую линию (второй столбец). Пишем ТС (я всё реализовал в среде Mathcad), которая открывает-закрывает позицию на каждом отсчёте временного ряда (Open текущего бара Н4), направление выбираем согласно знаку приращения индикатора. Это я и назвал "честной" торговлей.

Piligrimm, как у вас соотносится между собой оптимальная длина обучающей выборки P, число входов НС d и число настраиваемых в ней весов w?

 
rsi писал(а) >>

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

P.S. Как вариант, на нечёткой шкале оценивания справа могло бы оказаться "на реал!", а слева - "фтопку!" :-)

Поддерживаю.

Действительно, предложенный способ оценки может быть положен в основу общепринятого.

 
Снимаю шляпу перед проделанной Вами работой и полученным великолепным результатом!

По-сути, представленные данные служат прямым доказательством не мартингальности рынка Forex и, следовательно, возможности неслучайного заработка на нём.

Piligrimm, как у вас соотносится между собой оптимальная длина обучающей выборки P, число входов НС d и число настраиваемых в ней весов w?

Работы действительно было много, практически, этой экспертной системой я занимаюсь с марта, проводя за монитором по 10 - 14 часов в сутки, и притом, что использую опыт и наработки многих предыдущих лет. Для построения первого модуля – конструктора сигналов, пришлось обучать сотни моделей, большинство из которых отправились в корзину, и только небольшая часть, отвечающая заданным критериям, вошла в систему. Обучение одной модели занимало время от 6 до 30 часов. Но самым муторным для меня было конструирование из сигналов, выдаваемых построенными моделями, сигналов с нужными мне амплитуда – фазовыми характеристиками, я не нашел способа как – то автоматизировать этот процесс, и приходилось вручную, методом перебора, комбинировать сотни сочетаний из группы различных моделей между собой, пока не найден удовлетворительный вариант (то, что я назвал “вылизыванием” сигналов) и не найден новый оригинальный сигнал, или не улучшен первичный сигнал созданный одной из моделей.

Первый модуль – стационарный, он не предусматривает переобучения, а рассчитан на то, что построенные модели должны стабильно работать в обозримом будущем, не менее 2 – 3 лет. Исходя из этого, я выбрал для обучения таймфрейм Н4 с длиной выборки 5000 баров, на интервале которого рынок много раз менял свои фазы, а диапазон изменения курса (на этом интервале он от 1.16 до 1.6), по моим оценкам не должен выйти в ближайшие несколько лет за эти границы, а это гарантирует устойчивость работы моделей, как показал первый приведенный мною пример. Обученные модели НС и ЛР формализовались в полиномы, после чего переводились на MQL, так что весь первый модуль реализован на MQL, как индикатор, который можно за счет эквалайзера оптимизировать в широком диапазоне амплитуда – фазовых характеристик, получая нужную форму сигналов для создания различных стратегий. С самого начала я задавался целью сделать не узко специализированную систему, под какую – то конкретную стратегию, а открытую систему, своего рода конструктор, в котором при необходимости и дальше используя комбинации имеющихся сигналов, можно получать новые сигналы, с новыми характеристиками в соответствии с требованиями тех стратегий, которые будут проектироваться.

Второй модуль – динамический, реализован на Матлабе. Он предназначен для динамичного отслеживания рыночной ситуации, постоянной адаптации к происходящим изменениям, и выработке взвешенных торговых решений на основе многофакторного анализа информации предоставляемой первым модулем. По сути, этот модуль является распознающей системой, которая обучена по входному вектору из 50 сигналов и на основании эталонного тренда на истории созданного индикатором тренда, распознавать точки разворота тенденции рынка, для заданного диапазона колебаний курса, и на нулевом баре без существенных задержек выдавать сигнал о начинающемся развороте. Для исключения ошибочных решений, влияния помех, я сделал этот модуль избыточным, введя комитет из 15 НС, и сделав три комитета, которые обучались на анализ несколько отличающихся входных векторов (хотя сделано это не от хорошей жизни, я бы с радостью использовал всего один комитет, но обучение НС со 100 входами мой комп просто не тянет). Соответственно пришлось разбивать входной массив на три части, как я описал выше, и обучать НС с 50 входами, которые хотя и под завязку грузят процессор и память, но еще работают. Так что выбор числа входов НС определяется этим. Данный блок предназначен для отслеживания и оценки краткосрочных изменений на рынке без глубокого анализа истории, и по моим эмпирическим выводам длина обучающей выборки должна быть не менее чем в 10 раз больше горизонта прогнозирования или распознавания на котором НС работает без переобучения. Я этот модуль использовал и для работы на таймфрейме М1, где общее время переобучения одного комитета составляло 15 – 17 минут, при том, точность прогноза без переобучения НС была достаточно высокой на 20 барах, т.е. на 20 минут вперед. И от сюда я пришел к выбору длины входного массива для обучения – 200 баров, я пробовал, уменьшать длину выборки до 100 баров, существенно возрастала ошибка на тестовой выборке, увеличение в пределах от 200 до 1000 баров не приводило к существенному повышению точности, но увеличивало время обучения и задействованную память. Я использую стандартные матлабовские функции НС, там веса формируются внутри автоматически.

Что касается прогнозируемости рынка Форекс, я с самого начала, как начал работать с ним, был уверен в возможности его прогнозирования, и за многие годы работы и экспериментов – только укрепился в этой уверенности. И даже по этому поводу написал статью 'Можно ли прогнозировать рынок Форекс? Как создать собственную торговую стратегию?',

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

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

 
Piligrimm писал(а) >>

Что касается прогнозируемости рынка Форекс, я с самого начала, как начал работать с ним, был уверен в возможности его прогнозирования, и за многие годы работы и экспериментов – только укрепился в этой уверенности. И даже по этому поводу написал статью 'Можно ли прогнозировать рынок Форекс? Как создать собственную торговую стратегию?',

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

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

Что-ж, в общих чертах понятно.

Piligrimm, индикатор, собраный Вами в том виде в котором Вы его представили на обозрение, позволяет статдостоверно обыгрывать рынок на Н4. И это, при минимальных рисках. Назовите причины по которым Вы до сих пор не опрокинули Forex?

Что касается расхождений в представленых мной данных, то они обусловлены самой сутью заложенной в методику оценки доходности. Дело в том, что зная интегральные характеристики опредлеляющие некоторый стационарный процесс (в данном случае распределение приращений эквити), мы каждый раз получаем на-руки одну из бесконечного множества его реализаций. В целом эти реализации похожи (скорость роста, флуктуации скорости роста), но в деталях они индивидуальны и неповторимы. Этим и объясняется видимое расхождение. То, что Вы отметили, как противофазу ВСЕГДА, просто случайность. Могло быть и в фазу и что угодно.

 
Neutron >>:

Что-ж, в общих чертах понятно.

Piligrimm, индикатор, собраный Вами в том виде в котором Вы его представили на обозрение, позволяет статдостоверно обыгрывать рынок на Н4. И это, при минимальных рисках. Назовите причины по которым Вы до сих пор не опрокинули Forex?


Не буду пока ничего утверждать, но сдается мне, что в данном случае результаты были получены не верно в виду перерисовки индикатора на нулевом баре. Для горизонта в 1 бар, это очевидно - при эмуляции торгов по представленным данным решение принимается на начале бара по данным, которые в реальности были получены на момент его уже полного формирования. Для горизонта в 2 бара надо более детально анализировать.
 
bstone писал(а) >>

Не буду пока ничего утверждать, но сдается мне, что в данном случае результаты были получены не верно в виду перерисовки индикатора на нулевом баре. Для горизонта в 1 бар, это очевидно - при эмуляции торгов по представленным данным решение принимается на начале бара по данным, которые в реальности были получены на момент его уже полного формирования. Для горизонта в 2 бара надо более детально анализировать.

Piligrimm писал(а) >>

bstone - Прогноз для желтой и красной линии соответственно на 1 и 2 бара вперед по отношению к синей. Расчет осуществляется на нулевом баре, и то, что Вы видите на картинках формируется в этом виде на нулевом баре без подсматривания в будущее, без перерисовывания прошлого, я это проверял на демо счете (не первый год за мужем за Фореск, отношусь к этому серьезно).

Тем не менее это очень важный момент.

Давайте попросим Piligrimm ещё раз подтвердить корректность представленных данных. Нужно гарантировать, что прогноз на очередной бар Н4 (красная или жёлтая линии) получен и зафиксирован ДО открытия бара, а не в процессе его формирования.

 
Neutron >>:

Материал сырой. Думаю, что пока рано оформлять статью.

По моему важно еще отслеживать дисперсию распределения

расстояний от точек до построеной по облаку точек прямой. При нулевой

ошибке прогнозирования угол в точности равен 45 градусов, а дисперсия

нулевая. Для реальных потребностей можно выбирать оптимальные наборы

меньших значений сигмы и большего угла наклона.

 

Всем привет!

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

Простите если чего не так понял...


1. что пытаемся прогнозировать? (наверное, будущее значение цены, которое должно сформироваться за опр. время на конкр. ТФ).

Для простоты тр=sl. Цель - чтобы цена дошла до тр, быстрее чем до sl. Cоотношение п/л должно было больше 0,5 с учетом спреда. Лучше больше 0.7.


2. Какие параметры из прошлого будем использовать для нашего прогноза для определения ценой конкр.заданного уровня (тр)? На какой-то странице в данной теме этот вопрос поднимался, но я чё-то не понял...


3. на мой взгляд, прогнозировать рынок дело сложное, может и бесполезное (т.е строить регрессии и т.п., которые с запаздыванием показывыают изменение (наклон) цены, не сильно отличается от МА). Всё-таки, я думаю, главное - движение зависит от кол-ва денег которое некоторые челы поставили с ожиданием роста/падения актива и их жадности и страха в ожидании достижения этого уровня цены. Этот факт на мой взгляд нельзя не учитывать при прогнозе.

 
kch писал(а) >>

1. что пытаемся прогнозировать?

2. Какие параметры из прошлого будем использовать для нашего прогноза...

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

1. Приращение цены на следующем баре.

2. Значение приращений цены натекущем и предыдущих барах.

3. Можете предложить для МТС что-то другое?

Aleku писал(а) >>

По моему важно еще отслеживать дисперсию распределения

расстояний от точек до построеной по облаку точек прямой. При нулевой

ошибке прогнозирования угол в точности равен 45 градусов, а дисперсия

нулевая. Для реальных потребностей можно выбирать оптимальные наборы

меньших значений сигмы и большего угла наклона.

Конечно, вы правы.

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

Причина обращения: