L'apprendimento automatico nel trading: teoria, modelli, pratica e algo-trading - pagina 2520

 
Valeriy Yastremskiy #:

Un limite di tempo ridurrà la probabilità.

Sì, ma si possono ancora trovare modelli entro 3-5 giorni con il 100% di probabilità di innesco (ho controllato).

Aleksey Nikolayev #:

Sì, beh, metà del problema è risolto, l'altra metà è dove mettere uno stop loss.

Questo non è un TS, solo un'idea

 
Aleksey Nikolayev #:

Oh, guarda chi c'è) Sai già come calcolare l'ACF del SB, vero? A differenza di smartlab, qui non potete bannarmi per questa domanda)

Ciao Alexey, posso rispondere alla tua domanda senza chiedere? È solo che ho letto molto su come lo chiedete, e non potevo sopportarlo, perché la soluzione mi sembrava molto semplice.

Ho creato una serie normalizzata di numeri a partire da valori casuali (1 o -1).

E un grafico azionario classico da esso, sommando tutti i valori precedenti per il punto corrente.


Allora per la serie normalizzata l'autocorrelazione tenderà a zero.

E per le serie del grafico azionario, l'autocorrelazione tenderà all'unità.


Ma solo con una lunghezza sufficiente della serie, ho ottenuto i seguenti risultati quando la serie di 100 000 numeri è sufficiente:

0,0010599888334729966 (dati normalizzati)

0.9999708433220806 (non-normalized).

Per una serie di 100 numeri:

0.018773466833541926

0.9367627243658354

Su 10:

-0.49999999999999999999 (questi valori cambiano con ogni nuova serie in modo casuale)

-0.14285714285714285 (questi valori cambiano con ogni nuova serie in modo casuale)


Questi sono solo casi speciali, ma come potete vedere, con serie di piccole dimensioni può mostrare autocorrelazione entro limiti casuali molto ampi .

Detto questo, questaautocorrelazione non è una proprietà del processo che genera i dati (in cui non c'è autocorrelazione), il che rende difficile misurare e valutare il processo in questo caso.

Allego il mio codice Python qui sotto, se qualcuno vuole improvvisamente controllare i calcoli.

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 #:

Ciao Alexey, posso rispondere alla tua domanda senza chiedere? È solo che ho letto molto mentre lo chiedevi, e non potevo sopportarlo, perché la soluzione mi sembrava molto semplice.

Ho creato una serie normalizzata di numeri a partire da valori casuali (1 o -1).

E un grafico azionario classico da esso, sommando tutti i valori precedenti per il punto corrente.


Allora per la serie normalizzata l'autocorrelazione tenderà a zero.

E per le serie del grafico azionario, l'autocorrelazione tenderà all'unità.


Ma solo con una lunghezza di serie sufficiente, ho ottenuto i seguenti risultati quando la serie è composta da 100 000 numeri:

0,0010599888334729966 (dati normalizzati)

0.9999708433220806 (non-normalized).

Per una serie di 100 numeri:

0.018773466833541926

0.9367627243658354

Su 10:

-0.49999999999999999999 (questi valori cambiano con ogni nuova serie in modo casuale)

-0.14285714285714285 (questi valori cambiano con ogni nuova serie a caso)


Questi sono solo casi speciali, ma come potete vedere, con serie di piccole dimensioni può mostrare autocorrelazione entro limiti casuali molto ampi .

Detto questo, questaautocorrelazione non è una proprietà del processo che genera i dati (in cui non c'è autocorrelazione), il che rende difficile misurare e valutare il processo in questo caso.

Allegherò il mio codice Python qui sotto, nel caso qualcuno voglia improvvisamente controllare i calcoli.

State calcolando l'ACF del campione. Quello che viene chiesto è l'ACF. Non molto tempo fa in questo thread Valeriy Yastremskiy ha postato link a manuali di econometria, che contengono formule per l'ACF per rumore bianco e processo AR(1) stazionario. Se non mi sbaglio, questa funzione era indicata con la lettera greca gamma. Ci si chiede quale sarebbe la formula per SB.

 
Perché abbiamo bisogno di formule se facciamo trading su un campione?
 
secret #:
Perché abbiamo bisogno di formule se facciamo trading a campione?

Noi trattiamo sui prezzi. L'ipotesi che i prezzi siano un campione è un'astrazione e una teorizzazione.

 
Aleksey Nikolayev #:

State contando l'ACF selettivo. Quello che viene chiesto è l'ACF. Non molto tempo fa in questo thread Valeriy Yastremskiy ha postato link a tutorial di econometria, dove venivano date le formule ACF per il rumore bianco e il processo stazionario AR(1). Se non mi sbaglio, questa funzione era indicata con la lettera greca gamma. La domanda è quale formula sarebbe per il SB

Considero ilcoefficiente di correlazione di Pearson, che sembra essere lo standard per valutare la presenza di autocorrelazione. Purtroppo non sono sicuro di cosa intendi esattamente, scrivi un termine molto breve "AFC" = funzione di autocorrelazione? Che cosa esattamente è il coefficiente di Pearson che non vi soddisfa? Secondo me la stima è stata fatta correttamente.

[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]

È questo che vorresti ottenere?


In realtà non è un campione. Si tratta di una serie di dati generati da un processo. Quindi è completo e non tagliato, se il processo ha lavorato 10 tick allora otteniamo un set di dati di 10 elementi, completamente generato da questo processo dall'inizio alla fine.
 
LenaTrap #:

Considero ilcoefficiente di correlazione di Pearson, che sembra essere lo standard per valutare la presenza di autocorrelazione. Purtroppo non sono sicuro di cosa intendi esattamente, scrivi un termine molto breve "AFC" = funzione di autocorrelazione? Che cosa esattamente è il coefficiente di Pearson che non vi soddisfa? Secondo me la stima è stata fatta correttamente.

È a questo che vorrebbe arrivare?

State cercando di sostituire l'ACF con la sua stima campionaria. Iniziate definendo l'ACF, non come approssimarlo dall'implementazione disponibile (campione).

Esempio. Sia Xi un rumore bianco. Allora il suo ACF = COV(Xj,Xk)/sqrt( COV(Xj,Xj)* COV(Xk,Xk)) - è una funzione dei due indici j e k, che è uguale a uno se j==k e zero quando j!=k.
 
Aleksey Nikolayev #:

Noi trattiamo sui prezzi. L'ipotesi che i prezzi siano un campione è un'astrazione e una teorizzazione.

La teorizzazione è il commercio per formule)
 
Aleksey Nikolayev #:

State cercando di sostituire l'ACF con la sua stima campionaria. Iniziate definendo l'ACF, non come approssimarlo da un'implementazione disponibile (campione).

Lasciatemi spiegare di nuovo le mie conclusioni:

Per una stima generale dell'AFC su un processo random walk è necessario:

- prendere un campione il più grande possibile (100.000 mila nel mio caso)

- utilizzare dati normalizzati

Conclusione: il coefficiente di Pearson è zero, tutto il resto è un errore nella stima del processo dal campione.

Cioè, il processo random walk non ha alcun tipo di autocorrelazione.

È uguale a 0. ( 0.0010599888334729966 ) dove 0 è l'autocorrelazione reale e 0.00105 è l'errore.

 
segreto #:
Teorizzare è una formula di trading)

Anche la tabella di moltiplicazione è una formula. Quindi la sua affermazione dovrebbe essere interpretata come segue: fare trading con le formule che si conoscono bene è praticità, e con quelle che non si conoscono è teorizzazione).