Aprendizado de máquina no trading: teoria, prática, negociação e não só - página 2520

 
Valeriy Yastremskiy #:

Um limite de tempo irá reduzir a probabilidade.

Sim, mas você ainda pode encontrar padrões dentro de 3-5 dias com 100% de probabilidade de acionar (eu verifiquei).

Aleksey Nikolayev #:

Sim, bem, metade do problema está resolvido, a outra metade é onde pôr um fim à perda.

Isto não é um TS, apenas uma ideia.

 
Aleksey Nikolayev #:

Oh, olha quem está aqui) Você já sabe como calcular o ACF do SB, não sabe? Ao contrário do smartlab, não me pode banir por essa questão aqui)

Olá Alexey, posso responder à tua pergunta sem perguntar? É que eu tenho lido muito sobre como você pergunta, e eu não podia suportar isso, porque a solução me pareceu muito simples.

Eu criei uma série normalizada de números a partir de valores aleatórios ( 1 ou -1).

E um gráfico clássico de ações a partir dele, somando todos os valores anteriores para o ponto atual.


Então para as séries normalizadas a autocorrelação tenderá a zero.

E para a série do gráfico das ações, a autocorrelação tenderá à unidade.


Mas apenas com séries suficientes, obtive os seguintes resultados quando a série de 100 000 números é suficiente:

0,0010599888334729966 (dados normalizados)

0.9999708433220806 (non-normalized).

Para uma série de 100 números:

0.018773466833541926

0.9367627243658354

Em 10:

-0,499999999999999999999999 (estes valores mudam com cada nova série aleatoriamente)

-0,14285714285714285 (estes valores mudam a cada nova série de forma aleatória)


Estes são apenas casos especiais, mas como você pode ver, com séries pequenas pode mostrar autocorrelação dentro de limites muito amplos e aleatórios .

Dito isto, estaautocorrelação não é propriedade do processo gerador dos dados (no qual não há autocorrelação), o que dificulta a medição e avaliação do processo neste caso.

Vou anexar o meu código Python abaixo, se alguém de repente quiser verificar os cálculos.

import numpy as np
import random

def autocorr(x, t=1):
    return np.corrcoef(np.array([x[:-t], x[t:]]))[0][1]

SB_numbers = []
for i in range (1, 100000):
    r = random.randint(0, 1)
    if r == 0:
        r = -1
    SB_numbers.append(r)
#print(SB_numbers)
    
SB_time_series = []
price = 0
for el in SB_numbers:
    price = price + el
    SB_time_series.append(price)
#print(SB_time_series)
    

    
print('numbers autocorr:',autocorr(SB_numbers, 1))
print('time_series autocorr::',autocorr(SB_time_series, 1))
 
LenaTrap #:

Olá Alexey, posso responder à tua pergunta sem perguntar? É que eu tenho lido muito enquanto você pergunta, e eu não podia suportar isso, porque a solução me pareceu muito simples.

Eu criei uma série normalizada de números a partir de valores aleatórios ( 1 ou -1).

E um gráfico clássico de ações a partir dele, somando todos os valores anteriores para o ponto atual.


Então para as séries normalizadas a autocorrelação tenderá a zero.

E para a série do gráfico das ações, a autocorrelação tenderá à unidade.


Mas apenas com um comprimento de série suficiente, obtive os seguintes resultados quando as séries consistem em 100 000 números:

0,0010599888334729966 (dados normalizados)

0.9999708433220806 (non-normalized).

Para uma série de 100 números:

0.018773466833541926

0.9367627243658354

Em 10:

-0,499999999999999999999999 (estes valores mudam com cada nova série aleatoriamente)

-0,14285714285714285 (estes valores mudam com cada nova série ao acaso)


Estes são apenas casos especiais, mas como você pode ver, com séries pequenas pode mostrar autocorrelação dentro de limites muito amplos e aleatórios .

Dito isto, estaautocorrelação não é propriedade do processo gerador dos dados (no qual não há autocorrelação), o que dificulta a medição e avaliação do processo neste caso.

Vou anexar o meu código Python abaixo, para o caso de alguém querer verificar os cálculos de repente.

Você está calculando a amostra ACF. O que está sendo perguntado é o ACF. Não faz muito tempo neste tópico Valeriy Yastremskiy postou links para manuais em econometria, que contêm fórmulas para ACF para ruído branco e processo AR(1) estacionário. Se não me engano, esta função foi designada lá pela letra grega gamma. Perguntamo-nos qual seria a fórmula para a SB.

 
Por que precisamos de fórmulas se estamos a negociar com base numa amostra?
 
secreto #:
Por que precisamos de fórmulas se trocamos por amostra?

Nós negociamos com base nos preços. O pressuposto de que os preços são uma amostra é uma abstracção e teorização.

 
Aleksey Nikolayev #:

Você está a contar a ACF selectiva. O que está a ser perguntado é o ACF. Não faz muito tempo neste tópico Valeriy Yastremskiy postou links para tutoriais sobre econometria, onde as fórmulas ACF para ruído branco e processo AR(1) estacionário foram dadas. Se não me engano, esta função foi designada lá pela letra grega gamma. A questão é qual seria a fórmula para a SB

Eu consideroo coeficiente de correlação de Pearson, que parece ser o padrão para avaliar a presença de autocorrelação. Infelizmente não tenho bem a certeza do que quer dizer, escreve um termo muito curto "AFC" = função de autocorrelação? Então o que é exactamente o coeficiente Pearson não é satisfatório para si? Na minha opinião, a estimativa foi feita correctamente.

[1, 1, 1, -1, -1, -1, 1, -1, 1, -1, 1, 1, -1, -1, 1, -1, 1, 1, 1]
[1, 2, 3, 2, 1, 0, 1, 0, 1, 0, 1, 2, 1, 0, 1, 0, 1, 2, 3]
-----------
[19 -2  1 -4 -1 -4  3 -4  5  0  3 -2 -1 -4 -1  0  3  2  1]
[42 28 19 12 12 10 15 14 14 12 13  8  8  6 11 14 14  8  3]

É isso que você gostaria de conseguir?


Na verdade, não é uma amostra. Esta é uma série de dados gerados por um processo. Então está completo e não cortado, se o processo funcionou 10 ticks então obtemos um conjunto de dados de 10 elementos, completamente gerados por este processo desde o início até ao fim.
 
LenaTrap #:

Eu consideroo coeficiente de correlação de Pearson, que parece ser o padrão para avaliar a presença de autocorrelação. Infelizmente não tenho bem a certeza do que quer dizer, escreve um termo muito curto "AFC" = função de autocorrelação? Então o que é exactamente o coeficiente Pearson não é satisfatório para si? Na minha opinião, a estimativa foi feita correctamente.

É aí que queres chegar?

Você está tentando substituir a ACF pela sua estimativa de amostra. Comece por definir o ACF, não como aproximá-lo da implementação disponível (amostra).

Exemplo. Que Xi seja ruído branco. Então o seu ACF = COV(Xj,Xk)/sqrt( COV(Xj,Xj)* COV(Xk,Xk)) - é uma função dos dois índices j e k, que é igual a um se j==k e zero quando j!=k.
 
Aleksey Nikolayev #:

Nós negociamos com base nos preços. O pressuposto de que os preços são uma amostra é uma abstracção e teorização.

A teorização é negociada através de fórmulas)
 
Aleksey Nikolayev #:

Você está tentando substituir a ACF pela sua estimativa de amostra. Comece por definir o ACF, não como aproximá-lo a partir de uma implementação disponível (amostra).

Deixe-me explicar novamente as minhas conclusões:

Para uma estimativa geral do AFC ao longo de um processo de caminhada aleatória é necessário:

- tirar uma amostra o maior possível (100.000 mil no meu caso)

- utilizar dados normalizados

Conclusão: o coeficiente de Pearson é zero, tudo o resto é um erro na estimativa do processo a partir da amostra.

Ou seja, o processo de caminhada aleatória não tem qualquer autocorrelação.

É igual a 0. ( 0,0010599888334729966 ) onde 0 é a verdadeira autocorrelação e 0,00105 é o erro.

 
secreto #:
A teorização é a troca de fórmulas)

A tabela de multiplicação é também uma fórmula. Portanto, sua declaração deve ser interpretada da seguinte forma: negociar com fórmulas que você está familiarizado é praticidade, e com as que você não está familiarizado é teorizar)