Авторское - страница 6

 
ivandurak:

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

2. Если сжать график до предела на истории будут явно выделяться три области флет, тренд up, тренд down. Пытаться формализовать не буду, не настолько глуп. Задача выделять эти области, и попытаться их идентифицировать на раннем этапе их зарождения.

3. Обучили СОМ на истории. Мечтаю посмотреть траекторию движения текущего момента по карте он лайн. Если траектория погнозируется, тогда на похожих исторических участка можно подобрать профитную стратегию и заранее ее запускать. 

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

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

2 и 4. Согласен, так и есть, причем на форе распределение паттернов будет не равномерно по ячейкам, так как флет будет превалировать. Но это не суть, можно так векторы формировать, что и более равномерно будет (идеально равномерно только на случайных синтетических данных с равномерным распределением ИМХО), но это уже получится гомогенное пространство сродни СБ, так что даже не знаю, нужно ли к этому стремиться. 

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

Я сам до конца не понял одну вещь связанную с Кохоненым: вот есть некие кластеры, они как-то более или менее упорядоченно расположены в пространстве, их (кластеры) СКП проецирует на двумерную поверхность, а всегда ли СКП будет их проецировать одинаково, будет ли плоскость, построенная СКП, всегда проходить одним и тем же образом через пространство признаков при условии одинаковых начальных условий обучения? Пример: http://www.generation5.org/content/1999/images/kohonenImages.png есть самолетик в n-мерном пространстве, всегда ли СКП будет его отображать таким образом, а не в профиль, например...

 
alexeymosc:

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

Что такое СКП? Расшифруйте плиз. 

Нашел только  "Следственный комитет при прокуратуре Российской Федерации (СКП России) ",  чувствую что здесь что то не так.)

 
her.human:

Что такое СКП? Расшифруйте плиз. 

Нашел только  "Следственный комитет при прокуратуре Российской Федерации (СКП России) ",  чувствую что здесь что то не так.)

 

Самоорганизующаяся карта признаков (СКП) Кохонена, или Kohonen Self-Organizing Feature Map, она же SOM.

) Улыбнуло про следственный комитет. 

 
alexeymosc:

Самоорганизующаяся карта признаков (СКП) Кохонена, или Kohonen Self-Organizing Feature Map, она же SOM.

) Улыбнуло про следственный комитет. 

Понятно.

СОМ распределяет паттерны по каким то своим признакам. Как их потом интерпретировать для мне пока понятно.

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

 

Делал советника (в прицепе).  

Что делает советник:

- запоминает все текущие паттерны, которые складываются из 10 различных бинарных сигналов (можно выбрать пока из 17 вариантов),

  всего получилось 2^10=1024 различных комбинаций сигналов, отдельно складываются сигналы на покупку и продажу для каждого паттерна,

- старые паттерны постепенно забываются, по мере поступления новых (забывание регулируется в настройках), 

- вычисляется отношения сигналов для каждого паттерна, типа какой перевешивает (покупка или продажа), формируется сигнал в диапазоне от -1 до +1,

- далее принимается решение вход, выход, переворот, 

  (здесь пока не знаю как лучше  сделать, может чего подскажете как лучше),

В общем считает паттерны прямым путем без ГА и обобщений СОМ. 

 

Можно добавить вариантов сигналов, количество сигналов на входе (увеличить  размер входного вектора), или даже на вход подать выходы из СОМа. 

Кому не лень попробуйте, может возникнут мысли по улучшению.

Красивые картинки рисовать не буду, сами попробуйте.) 

Файлы:
Indic_Stat.mq5  11 kb
 

ivandurak:

2. Если сжать график до предела на истории будут явно выделяться три области флет, тренд up, тренд down. Пытаться формализовать не буду, не настолько глуп. Задача выделять эти области, и попытаться их идентифицировать на раннем этапе их зарождения.

ИМХО, надо так - флет/тренд/случайное блуждание. Для акций Доу-Джонса процентное соотношение примерно 35/40/25%. т.ч. прежде чем искать паттерны и прочее, надо идентифицировать текущее состояние рынка.
 
Dima_S:
ИМХО, надо так - флет/тренд/случайное блуждание. Для акций Доу-Джонса процентное соотношение примерно 35/40/25%. т.ч. прежде чем искать паттерны и прочее, надо идентифицировать текущее состояние рынка.
Можно подробнее, как вам удалось определить  35/40/25%? И что это может дать для торговли в будущем?
 
her.human:

- старые паттерны постепенно забываются, по мере поступления новых (забывание регулируется в настройках),  

Эх, не прогнать в тестере, но по коду идея очень понравилась, как простая реализация адаптивного подхода и обучения.

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

// Было
// arr_buy[index]*=forgetting;   // забываем старые паттерны, если надо
// arr_sell[index]*=forgetting;  // забываем старые паттерны, если надо

// Стало
for (int i = 0; i < ArraySize(arr_buy); i++)
{
  arr_buy[i]*=forgetting;   // забываем старые паттерны, если надо
  arr_sell[i]*=forgetting;  // забываем старые паттерны, если надо
}
 
hrenfx:

Эх, не прогнать в тестере, но по коду идея очень понравилась, как простая реализация адаптивного подхода и обучения.

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

 

Почему не прогнать? Нормально прогоняется и даже оптимизируется. Можно прогонять по ценам открытия.

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

Но можете поэкспериментировать, возможно я ошибаюсь. 

 

 

PS. вспомнил что у вас терминал не установлен. 

Файлы:
 

Если встречаются очень редко - то это скорее исключение из правил. Так что они будут фильтроваться сразу.

P.S. Желательно временной фильтр поставить

Более того, рыночные закономерности колоссально зависят от времени суток, сезонности и т.д. Поэтому при их поиске следует отдельно учитывать временные зоны. Прибыльно-используемая крайние несколько лет ночная торговля некоторых кроссов - яркий пример наличия РЕАЛЬНОЙ закономерности, которая присутствует лишь только в определенном интервале суток. И ее никогда бы не нашли, если бы исследовали весь исходный ВР, без фильтра временных зон.

и разные символы попробовать.

 
hrenfx:

Если встречаются очень редко - то это скорее исключение из правил. Так что они будут фильтроваться сразу.

P.S. Желательно временной фильтр поставить

и разные символы попробовать.

Временной фильтр стоит - это сигналы с 15 по 17, советник их тоже анализирует, возможно немного криво, не доработал еще.

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

 

У меня больше проблема стоит в интерпретации полученной статистики.

На выходе имеется сигнал от +1(все паттерны отработали в лонг) до -1( все паттерны отработали в шорт).

Например получена статистика (сигнал)+0.7 (некоторые называют это вероятностью), т.е. большинство паттернов отработали в лонг. 

Что дальше делать? покупать, продавать, подождать более сильного сигнала, или выйти из рынка?