Para que um sistema seja capaz de determinar pontos de suporte e resistência ele deve, antes de tudo, determinar a existência (ou não) de uma tendência.

O que é um Suporte ou uma Resistência?
Trata-se, simplesmente, de um ponto a partir do qual houve uma inversão da tendência anteriormente vigente.
Por exemplo:

A tendência é de alta, mas ao atingir os 10 € o título X começou a corrigir. Temos aí uma resistência (a grosso modo).

A tendência é de queda, mas ao atingir os 8 € o título X começou a subir. Temos aí um suporte (novamente a grosso modo).
Portanto, para determinar pontos de suporte e resistência um sistema deve ser capaz de nos dizer que:

Havia uma tendência que, a partir do ponto Y, deixou de existir.
Isto representa "metade" da solução do problema.
Ora, sabemos que havia uma tendência e que a dada altura ela simplesmente deixou de existir. O próximo passo consiste na confirmação (ou não) deste ponto como um suporte ou uma resistência. Para tanto, o sistema deverá verificar na sua base de dados histórica por ocorrências semelhantes à esta no passado.
Um exemplo práctico:

A empresa X estava a apresentar uma clara tendência ascendente de curto prazo (2 semanas) mas que, ao atingir os 10 €, foi abruptamente "destruída".

Ao estudarmos a base de dados histórica da empresa X chegamos a conclusão de que a 3 meses atrás ocorreu um movimento semelhante à este, mas numa zona "ligeiramente" diferente, nos 10,25 €.
Em suma, o objectivo do sistema não é o de apontar zonas precisas de suporte ou de resistência, mas sim o de assinalar "zonas" nas quais historicamente ocorreram reversões de tendência.
Pode parecer engraçado, mas para determinar Suportes e Resistências um sistema deve procurar "APENAS" por quebras de tendência.
Para resumir, o sistema deverá:

Determinar a existência de tendências (curto, médio ou longo prazo)

Determinar o momento em que estas tendências deixaram de existir

Com base em pesquisas históricas, determinar o número de vezes em que determinado ponto (valor da cotação) assistiu a uma quebra de tendência
Por exemplo, o sistema determinou uma quebra na tendência nos 10 € e a sua base de dados indica que "ao redor deste valor" ocorreram mais 3 quebras de tendência nos últimos 3 meses, o que transforma os 10 € num potencial candidato à zona de suporte ou resistência.
Por fim, para determinar se o que temos em mãos é um suporte ou uma resistência basta que o sistema seja capaz de determinar a natureza da tendência quebrada. No exemplo anterior, se as últimas 3 tendências quebradas nos últimos 3 meses na zona dos 10 € eram tendências altistas, então provavelmente estamos diante de uma resistência.
Estes são, em linhas gerais, os conceitos que eu utilizei para a criação do sistema. Volto em breve com mais detalhes.