Несмотря на кажущуюся простоту, находить все эти паттерны не так уж и просто. В качестве начального приближения можно сделать вот, например, так:
бычье поглощение:
Open[-1] > Close[-1] && Open < Close[-1] && Close > Open[-1]
медвежье:
Open[-1] < Close[-1] && Open > Close && Close < Open[-1]
молот:
Math.Max(Open[-1], Close[-1]) > Math.Max(Open, Close)
&& Math.Min(Close, Open) > Low + 0.618*(High - Low)
&& High < Math.Max(Close, Open) + Math.Abs(Close - Open)
повешенный:
Math.Max(Open[-1], Close[-1]) < Math.Max(Open, Close)
&& Math.Min(Close, Open) > Low + 0.618*(High - Low)
&& High < Math.Max(Close, Open) + Math.Abs(Close - Open)
завеса из темных облаков:
Open[-1] < Close[-1] && Open > High[-1] && Close < 0.5*(Close[-1] + Open[-1])
просвет в облаках:
Open[-1] > Close[-1] && Open < Low[-1] && Close > 0.5*(Open[-1] + Close[-1])
Open - открытие свечи, Close - закрытие и т.д. Все это в формуле.
Далее добавить по вкусу учет размера свечей и прочие фильтры.
_________________________
Не пишите мне! Никому ничего делать не буду.