Pergunta

O que eu quero fazer é tomar um certo padrão de ações (definido como uma série de coordenadas X e Y) e compará-la com os preços das ações históricos. Se eu achar qualquer coisa nos preços históricos semelhantes a esse padrão I definido, eu gostaria de devolvê-lo como um jogo.

Eu não sei como determinar quão semelhantes duas linhas curvas são. Eu fiz alguma pesquisa, e você pode encontrar a semelhança de duas retas (com regressão linear), mas eu ainda não encontrei uma boa maneira de comparar duas linhas curvas.

Meu melhor abordagem agora é obter vários altos e pontos baixos a partir dos dados históricos variam Eu estou olhando, encontrar as inclinações das linhas, e comparar os para as pistas do padrão que eu estou tentando corresponder para ver se eles são praticamente o mesmo.

idéias melhor? Eu adoraria ouvi-los!

Editar: Obrigado pela contribuição! Eu considerava os mínimos quadrados aproximar antes, mas eu não tinha certeza de onde ir com ele. Após a entrada recebi porém, acho que se computando os mínimos quadrados de cada linha primeiro a suavizar os dados um pouco, em seguida, raspagem e esticando o padrão como James sugeriu deve obter-me o que eu estou procurando.

Estou pensando em usar isso para identificar certas bandeiras técnicas no estoque para determinar sinais de compra e venda. Já existem sites de lá fora que fazem isso em algum grau (como stockfetcher) , mas é claro que eu gostaria de tentar-me e ver se eu posso fazer melhor.

Foi útil?

Solução

Um dos problemas é que a curva montagem usando funções não lineares nem sempre vai funcionar para alguns de seus padrões dependendo quão complexo eles são. Você poderia usar quadrática ou cúbica ou alguma outra forma de polinômios para obter um resultado mais preciso, mas ele não está indo para o trabalho em todas as situações, particularmente com quaisquer mudanças bruscas nos dados ao longo do tempo.

Honestamente, eu acho que uma solução razoável e relativamente simples é a 'escala' e 'esticar' o seu padrão de modo que ocorre em relação ao mesmo intervalo como os dados históricos. Você pode usar a interpolação para o eixo x e multiplicação mais um deslocamento para o eixo y. Após esse olhar apenas na média das diferenças ao quadrado em cada ponto e se isso for inferior a um valor limite, então você pode considerá-lo uma partida. Ele vai exigir um pouco de ajustes para obter resultados previsíveis, mas eu acho que é uma boa abordagem que deverá permitir-lhe definir qualquer tipo de padrão, sem depender de regressão produzindo uma curva bem equipada. Essencialmente é apenas uma aplicação de estatísticas. Você também pode olhar para desvios-padrão ou variância para uma abordagem mais abrangente.

Outras dicas

computar o total de mínimos quadrados dos resíduos (y diferenças) em cada ponto. Isso deve lhe dar uma medida da adequação geométrica (como semelhante eles olham). Você deve então ser capaz de definir alguma tolerância para 'o suficiente semelhante'.

Consulte http://en.wikipedia.org/wiki/Curve_fitting

Math não é o meu ponto forte, no entanto, você pode ser capaz de usar Correlação .

Calcular o valor da correlação entre os dois conjuntos de dados e e se a correlação é maior do que algum valor (0,8?), Então considerar os conjuntos semelhantes o suficiente .

ou talvez olhar para os derivados?

movimento do preço das ações, em teoria, é geralmente modelado como movimento browniano com um fator de drift. (Eu sei muito pouco, mas dê uma olhada aqui )

Se você não se importa me perguntando, o que pode acabar isso?

Um pensamento pode ser para tirar médias de diferentes intervalos de tempo em movimento (diariamente por semanas, meses, anos; semanal durante meses, anos, etc). E compará-los com médias móveis agora

As médias individuais também lhe daria uma comparação mais fácil .. se itens consecutivos nas médias são de alguma forma normalizada (digamos, de 0..1 a conta para splits, etc), você pode comparar elementos consecutivos em que o vector o outro dentro de algum epsilon gama, e obter um potencial de um jogo.

Apenas um pensamento.

Mathworld ( http://mathworld.wolfram.com/ ) também deve ter alguma opinião sobre curva comparações.

mínimos quadrados não seria o melhor que poderia fazer sobre ele. Use o algoritmo RANSAC. Ele vai lidar com este tipo de dados, porque este tipo de dados é muito imprevisível e muitas vezes é barulhento.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top