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

 
Bene. Ho iniziato la settimana prima dell'apertura del mercato, testando attivamente la versione 14. Vorrei dire quanto segue. Più a lungo ci si allena, più ingressi sono coinvolti nel TS. Altri predicati. Ho avuto fino a 8-9 voci al massimo. Tuttavia, la capacità di generalizzazione di solito non è alta. E tali TS difficilmente funzionano. Cioè riescono a malapena a raggiungere il punteggio di 3. Ma i predicati con 4-6 ingressi funzionano nel complesso in modo soddisfacente. Ho aumentato il numero di voci da 50 a 150. Ora è alla terza ora di allenamento. Ma penso che anche il numero di ingressi questa volta non sarà insignificante. Quindi vediamo......
 
Beh, ho notato di nuovo questa cosa. Il fatto è che ho un insieme di dati, perdicts 12 e poi andare loro stessi lag, lag1 e lag2. In precedenza, gli input erano per lo più all'inizio del set, cioè c'erano pochi lag e poi non più di lag1, raramente lag2. Posso capire che il campione sia sovraccarico di dati, ma il fatto è che prima della generalizzazione, lag1 e lag2 erano usati più spesso. Ma è un fatto che prima la generalizzazione era soprattutto nelle colonne iniziali, ora è nelle colonne finali.... praticamente, quindi traiamo alcune conclusioni....
 
Mihail Marchukajtes:
Beh, ho notato di nuovo questa cosa. Il fatto è che ho un insieme di dati, perdicts 12 e poi arrivano i loro lag, lag1 e lag2. In precedenza, gli input erano per lo più all'inizio del set, cioè i lag erano pochi e poi non più di lag1, raramente lag2. Posso capire che il campione sia sovraccarico di dati, ma il fatto è che prima della generalizzazione, lag1 e lag2 erano più frequenti. Ma è un fatto che prima la generalizzazione era soprattutto nelle colonne iniziali, ora è nelle colonne finali.... quasi, quindi si stanno facendo delle inferenze ....

Quindi è necessario tornare alle versioni precedenti.

Il mio volo va bene. Forse perché non ci sono ritardi nel campione?

 
Dr.Trader:

Sembra buono in generale, mi chiedo cosa succederà alla fine.

Sulla commissione - ho postato alcuni esempi, ma ci sono modelli che usano la regressione con arrotondamento per classificare, e non è così chiaro lì. Ho provato due modi diversi di combinare i voti:

1) Arrotondare tutto per classi, prendere la classe per la quale ci saranno più voti.
Cioè avere una previsione di 4 bar da tre modelli
c(0.1, 0.5, 0.4, 0.4) c(0.6, 0.5, 0.7, 0.1) c(0.1, 0.2, 0.5, 0.7) arrotonderei ulteriormente alle classi
c(0, 1, 0, 0) c(1,1,1,0) c(0,0,1,1) , e il vettore finale con le previsioni sarebbe c(0, 1, 1, 0) per numero di voti.

2) l'altra opzione è trovare subito il risultato medio, e solo allora arrotondare alle classi
il risultato sarebbe c((0.1+0.6+0.1)/3, (0.5+0.5+0.2)/3, (0.4+0.7+0.5)/3, (0.4+0.1+0.7)/3)
o (0,2666667, 0,4000000, 0,5333333, 0,4000000), o
c(0, 0, 1, 0)

Puoi vedere che il risultato è diverso, e dipende da quale passo arrotondare. Non so quale sia più standard, ma penso che il secondo modo funzioni meglio con i nuovi dati.

Funzione del pacchetto tsDyn SETAR

Risulta che il valore della soglia (ci possono essere due soglie come in RSI) è variabile. Dà risultati sorprendenti.

Inoltre non dimentichiamo gli algoritmi di calibrazione nella classificazione. Il punto è che la previsione di classe nella realtà non è un valore nominale, l'algoritmo calcola la probabilità di classe, che è un numero reale. Poi si divide questa probabilità per esempio per la metà e si ottengono due classi. E se la probabilità è 0,49 e 051, cioè due classi? Che ne dite di 0,48 e 052? È una divisione in classi? Qui è dove SETAR si dividerebbe in due classi, tra le quali sarebbe Reshetovskie "sul recinto".

 
Dr.Trader:

Sembra buono in generale, mi chiedo cosa succederà alla fine.

Sulla commissione - ho postato alcuni esempi, ma ci sono modelli che usano la regressione con arrotondamento per classificare, e non è così chiaro lì. Ho provato due modi diversi di combinare i voti:

1) arrotondare tutto per classi, prendere la classe che ottiene più voti.
Cioè avere una previsione di 4 barre da tre modelli
c(0.1, 0.5, 0.4, 0.4) c(0.6, 0.5, 0.7, 0.1) c(0.1, 0.2, 0.5, 0.7) Arrotonderei ulteriormente alle classi
c(0, 1, 0, 0) c(1,1,1,0) c(0,0,1,1) , e il vettore finale con le previsioni sarebbe c(0, 1, 1, 0) per numero di voti.

2) l'altra opzione è trovare subito il risultato medio, e solo dopo arrotondarlo alle classi
il risultato sarebbe c((0,1+0,6+0,1)/3, (0,5+0,5+0,2)/3, (0,4+0,7+0,5)/3, (0,4+0,1+0,7)/3)
o (0,2666667, 0,533333, c(0, 0, 1) o
)

Come potete vedere, il risultato è diverso a seconda del passo da arrotondare. Non so quale dei due sia più standard, ma credo che il secondo metodo funzioni meglio con i nuovi dati.
Questa è la coppia gbpusd. Il che significa che il modello è in attesa di essere testato dalla Brexit. Non ho ancora elaborato i dati dell'anno scorso.... Potrebbe essere una prugna...

A seconda del risultato del test finale imposterò il tono dell'articolo. È sempre un po' una sorpresa vedere che il modello funziona e la norma vedere che si scarica.

Riunirò il comitato come segue:

Costruisco n vettori di predizione di tipo numerico sul numero di modelli sui dati di formazione (regressione dell'aumento di prezzo).

Faccio la media della risposta sui modelli selezionati.

Conto i quantili 0,05 e 0,95.

Alla convalida, ripeto i passi 1 e 2.

Seleziono solo gli esempi in cui la media è al di fuori dei limiti dei quantili.

Moltiplico la risposta per il segno di previsione e sottraggo lo spread.

Sul vettore ottenuto costruisco m sottocampioni con inclusione casuale al ritmo di 1-4 scambi al giorno a seconda dell'orizzonte di previsione.

Il comitato ha già dimostrato un aumento di tre volte del MO rispetto ai modelli singoli. Perché i modelli sono diversi...

 
Как из данных вычленить некие группы данных по условию
Как из данных вычленить некие группы данных по условию
  • ru.stackoverflow.com
нужно найти такие строчки которые повторяются не менее 10 раз в всей выборке и в каждой из найденных одинаковых групок которые повторялись, количество "1" в target.label должно превышать 70% по отношению к "0" вот найденные одинаковые строчки единичек больше чем нулей...
 

Allora risponderò qui.

#пара строк из той таблицы, не буду я всё текстом копировать, потом первая строка повторена ещё дважды
dat <- data.frame(cluster1=c(24,2,13,23,6), cluster2=c(5,15,13,28,12), cluster3=c(18,12,16,22,20), cluster4=c(21,7,29,10,25), cluster5=c(16,22,24,4,11), target.label=c(1,1,0,1,0))
dat <- rbind(dat, dat[1,], dat[1,])
#результат последней строки поменян на 0 для эксперимента
dat[7,"target.label"]=0

library(sqldf)
#для sqldf точек в названиях колонок быть не должно
colnames(dat)[6] <- "target"

dat1 <- sqldf( "select cluster1, cluster2, cluster3, cluster4, cluster5, avg(target) as target_avg, count(target) as target_count from dat group by cluster1, cluster2, cluster3, cluster4, cluster5" )
dat1
dat1[ dat1$target_count>=10 & dat1$target_avg>0.63 , ]
dat1[ dat1$target_count>=10 & ( dat1$target_avg<0.37 | dat1$target_avg>0.63 ), ] #на случай если оба "0" или "1" встречаются чаще 70%
 
SanSanych Fomenko:

Il pacchetto tsDyn è una funzione SETAR

SETAR si riferisce specificamente alla calibrazione del comitato, o questo è un argomento separato per la creazione di modelli finanziari?

Ho sfogliato il manuale del pacchetto, non ho visto quello che mi serve... C'è una situazione: ho una tabella di allenamento con 10000 esempi. E ci sono 100 modelli addestrati su questi esempi. Per testare i modelli potete usarli per predire gli stessi dati di input e ottenere 100 vettori con 10000 predizioni ciascuno. SETAR potrebbe essere usato per unire in qualche modo tutti questi 100 vettori in uno solo?
E poi per una previsione con nuovi dati ci sarebbero di nuovo 100 previsioni e dovremmo fonderle in una sola (non ci sarebbero 100 vettori ma 100 previsioni singole). SETAR sarà in grado di fare anche questo, usando i parametri del comitato ottenuti dai dati di allenamento?

 
Dr.Trader:

SETAR si riferisce specificamente alla calibrazione del comitato, o questo è un argomento separato per la creazione di modelli finanziari?

Ho sfogliato il manuale del pacchetto, non vedo quello che mi serve... Ecco la situazione: ho una tabella di allenamento con 10000 esempi. Ho 100 modelli addestrati su questi esempi. Per testare i modelli potete usarli per predire gli stessi dati di input e ottenere 100 vettori con 10000 predizioni ciascuno. SETAR potrebbe essere usato per unire in qualche modo tutti questi 100 vettori in uno solo?
E poi per una previsione con nuovi dati ci sarebbero di nuovo 100 previsioni e dovremmo fonderle in una sola (non ci sarebbero 100 vettori ma solo 100 previsioni singole). SETAR sarà in grado di fare anche questo, usando i parametri del comitato derivati dai dati di allenamento?

Da quanto ho capito, non ha niente a che fare con i comitati
 
Yury Reshetov:

Allora è necessario tornare alle versioni precedenti.

Sto correndo bene. Forse perché non ci sono ritardi nel campione?

Beh, sì, stavo facendo i lag perché nelle versioni precedenti aumentavano la capacità di conteggio, ma ora con l'algoritmo di prefetching migliorato non è necessario, quindi sto cercando di allenarmi senza di loro. Sto cercando di allenarmi senza di loro. Riferirò più tardi i risultati dell'esercizio di oggi...