Свертка данных индикатора в паттерн

 

Есть потребность описать значение индикатора в виде вариантов паттернов. Индикатор имеет 3 буфера, важно получать данные о показателе в начале временного периода (день, неделя или месяц), за временной период (происходило событие или нет) и на текущий момент.

 

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

123456789
OpenDay OpenDay OpenDay InDay InDay InDay NowDay NowDay NowDay
Признак MA_Open MA_Now Price MA_Open MA_Now Price MA_Open MA_Now Price
1 Выше уровня 30 0 0 -1 -1 0 0 -1 0 0
2 Ниже уровня -30 0 0 -1 -1 0 0 -1 0 0
3 Выше нуля 0 0 -1 -1 -1 -1 -1 0 0
4 Над MA_Open -1 -1 0 -1 0 0 -1 0 0
5 Над MA_Now -1 -1 0 0 -1 0 0 -1 0
6 Над Price 0 0 -1 0 0 -1 0 0 -1
7 Пересечение MA_Open -1 -1 -1 -1 0 0 -1 0 0
8 Пересечение MA_Now -1 -1 -1 0 -1 0 0 -1 0
9 Пересечение Price -1 -1 -1 0 0 -1 0 0 -1


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

Прошу сообщество помочь в данном вопросе!

В приложении индикатор. 

Файлы:
 
3 в 81-ой степени
 
Dmitry Fedoseev:
3 в 81-ой степени

Просветите, пожалуйста, как посчитали.

Кажется, что Вы не учли исключаемые ячейки со значением -1 и тот факт, что в остальных ячейках может быть два значения - 1 или 0. 

 
-Aleks-:

Просветите, пожалуйста, как посчитали.

Кажется, что Вы не учли исключаемые ячейки со значением -1 и тот факт, что в остальных ячейках может быть два значения - 1 или 0. 

Таблица 9 на 9 - 81-а ячейка. В каждой ячейке три варианта значений.

Если две ячейки, то 3 умножить на 3 - 9. Ясли 3 ячейки то еще раз умножить на 3 - 27, и т.д. Количество вариантов в одной ячейке возвести в степень равную количеству ячеек. 

 
Dmitry Fedoseev:

Таблица 9 на 9 - 81-а ячейка. В каждой ячейке три варианта значений.

Если две ячейки, то 3 умножить на 3 - 9. Ясли 3 ячейки то еще раз умножить на 3 - 27, и т.д. Количество вариантов в одной ячейке возвести в степень равную количеству ячеек. 

 

Дмитрий, ещё раз, в ячейке может быть как только одно значение (-1), так и два (0 или 1), но не 3!
 
Dmitry Fedoseev:
 

Количество вариантов в одной ячейке возвести в степень равную количеству ячеек. 

 

у нас 44 ячейки, которые могут меняться на 0 и 1, значит 2^44=175921860444 - верно?

 

А если ввести эвристическое условие, и считать что, к примеру MA_Open, если "Выше уровня 30=1" то "Ниже уровня -30=1" не будет иметь смысла и не подлежит перебору? Я так понимаю, что следует в этом случае сворачивать таблицу и одной переменной добавлять больше значений, к примеру будет переменная "Уровень", значение которой будет:
+1 - выше нуля
+2 - выше уровня 30
-1 - ниже нуля
-2 - ниже уровня 30
тогда количество вариантов должно уменьшиться, но как подсчитать правильно сколько их будет, если у каждой ячейки будет разное количество значений?

 

Таким образом получилась такая таблица

 

  
1
23456789
    OpenDay OpenDay OpenDay InDay InDay InDay NowDay NowDay NowDay
Признак MA_Open MA_Now Price MA_Open MA_Now Price MA_Open MA_Now Price
1 Положение относительно начала периода 2 -1 -1 -1 2 2 -1 2 2
2 Над MA_Open -1 -1 0 -1 0 0 -1 0 0
3 Над MA_Now -1 -1 0 0 -1 0 0 -1 0
4 Над Price 0 0 -1 0 0 -1 0 0 -1
5 Пересечение MA_Open -1 -1 -1 -1 0 0 -1 0 0
6 Пересечение MA_Now -1 -1 -1 0 -1 0 0 -1 0
7 Пересечение Price -1 -1 -1 0 0 -1 0 0 -1

Переменная "Положение относительно начала периода" имеет теперь 4 значения. Возможно, таблицу можно ещё больше сжать.

 
-Aleks-:

 

Дмитрий, ещё раз, в ячейке может быть как только одно значение (-1), так и два (0 или 1), но не 3!
А у вас что в приоритете, глупость или просто желание возразить?
 
-Aleks-:

 

у нас 44 ячейки, которые могут меняться на 0 и 1, значит 2^44=175921860444 - верно?

Не знаю, у меня нет ни одной ячейки. 
 
Dmitry Fedoseev:
А у вас что в приоритете, глупость или просто желание возразить?

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