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

 
Andrey Dik:

Qui ho scritto esattamente quello che sto facendo:

In dettaglio: sulla barra attuale il segnale di acquisto, come comprare, contare il minor numero di barre in avanti nel futuro e controllare se il commercio sarà redditizio, se sì, come chiudere, se non - contare una barra più avanti e controllare di nuovo. E in questo modo raggiungiamo il numero massimo di barre e le chiudiamo definitivamente. Questo è un meccanismo di apprendimento.

Cosa non è chiaro? Non è una fantasia, è esattamente quello che faccio adesso. La funzione obiettivo è la massimizzazione dei profitti con drawdown minimi. Mi alleno usando la mia genetica.

Cosa stiamo insegnando? È possibile implementarlo semplicemente, vero?
 

SanSanych Fomenko:
1. Cosa insegniamo?

2. Non è possibile implementarlo così?

1.la funzione obiettivo è quella di massimizzare i profitti con minimi prelievi. Insegno con l'aiuto della mia genetica.

2. Sì, molto semplice.

 
qualcuno sa come scoprire in quale lingua è scritto il pacchetto R?
 
mytarmailS:
Qualcuno sa come scoprire in quale lingua è scritto il pacchetto R?

Documentazione. Aperto da Aiuto in R:

  • Scrivere estensioni R
  • R Interno

Inoltre, c'è una descrizione dettagliata di come lavorare con Cp

 

Signori, un nuovo compito da parte mia:

Ecco un set di dati in formato .R: https://drive.google.com/open?id=0B_Au3ANgcG7CcjZVRU9fbUZyUkE

Ci sono circa 40.000 righe e 101 colonne nel set. La colonna più a destra è la variabile di destinazione. A sinistra ci sono 100 ingressi.

Vi suggerisco di provare a costruire un modello di regressione che preveda il valore della 101esima colonna in base alle 100 colonne rimanenti, sulle prime 20.000 osservazioni.

Sulle rimanenti 20.000+ osservazioni, il modello costruito dovrebbe mostrare un R^2 di almeno 0,5.

Poi rivelo il modo in cui i dati sono generati e do la mia soluzione.

L'indizio sono i dati delle serie temporali. L'input è di 100 campioni, predetto 1 avanti. Non si tratta di prezzi o quotazioni o dei loro derivati.

Alexey

 
Posso anche pubblicare questi dati in csv. Sarebbe interessante sentire l'opinione dei corifei sul significato dei predittori.

Di nuovo, i dati sono puramente sintetici e per puro divertimento.
 

Ho cercato di trovare l'importanza dei predittori attraverso il pacchetto vtreat. Ma il pacchetto non è in grado di cercare relazioni tra predittori, prende in considerazione solo relazioni dirette tra predittori e target, non molto adatto a questo compito.

treatments <- designTreatmentsN(dat_ready[1:20000,], colnames(dat_ready)[1:100], tail(colnames(dat_ready),1))
treatments$scoreFrame #важность  предикторов определяется через колонку "sig"
treatments$scoreFrame[order(treatments$scoreFrame$sig),] #предикторы  отсортированы по важности

A giudicare dall'importanza di vtreat - lag_diff_51 e lag_diff_52 sono i più utili. A poco a poco ho aggiunto altri predittori dalla lista ricevuta e ho guardato la crescita di R^2 sui dati di allenamento per la foresta. Alla fine mi sono fermato a questi predittori - 51, 52, 53, 54, 55, 17, 68, molto probabilmente sono usati per calcolare l'obiettivo. R^2 su dati di allenamento con loro > 0,9, ma su test e validazioni tutto male. Ora ho bisogno di provare diverse operazioni matematiche con questi predittori, di selezionare formule e così via, in modo che su crossvalidation R^2 aumenti anche. Non lo cercherò più :)

Finito più tardi:
Ho sperimentato un po' di più, ho fatto un mucchio di nuovi predittori da quelli esistenti, con diverse operazioni matematiche. Sia vtreat che forest piacciono molto queste due combinazioni: sum(51,52) e average(51,52). Ma non sono mai stato in grado di ottenere una formula per il valore di destinazione. E nemmeno i modelli addestrati su questi predittori possono prevedere adeguatamente qualcosa.

 

100 voci? Questo è forte.

Perché non mille?

Voi non avete assolutamente idea di cosa sia una rete nervosa.

 
Dr.Trader:

Ho cercato di trovare l'importanza dei predittori attraverso il pacchetto vtreat. Ma il pacchetto non è in grado di cercare relazioni tra predittori, prende in considerazione solo relazioni dirette tra predittori e target, non molto adatto a questo compito.

A giudicare dall'importanza di vtreat - lag_diff_51 e lag_diff_52 sono i più utili. A poco a poco ho aggiunto altri predittori dalla lista ricevuta e ho guardato la crescita di R^2 sui dati di allenamento per la foresta. Alla fine mi sono fermato a questi predittori - 51, 52, 53, 54, 55, 17, 68, molto probabilmente sono usati per calcolare l'obiettivo. R^2 su dati di allenamento con loro > 0,9, ma su test e validazioni tutto male. Ora ho bisogno di provare diverse operazioni matematiche con questi predittori, di selezionare formule e così via, in modo che su crossvalidation R^2 aumenti anche. Non lo cercherò più :)

Finito più tardi:
Ho sperimentato un po' di più, ho fatto un mucchio di nuovi predittori da quelli esistenti, con diverse operazioni matematiche. Sia vtreat che forest piacciono molto queste due combinazioni: sum(51,52) e average(51,52). Ma non sono mai stato in grado di ottenere una formula per il valore di destinazione. E nemmeno i modelli addestrati su questi predittori possono predire adeguatamente qualcosa.

Camminando vicino, ma passando. Non tutto è stato sottolineato. Ci sono correlazioni lineari tra gli output e gli input. Ma non aiutano molto.

La foresta è sovrallenata. È meglio guardare il CV. Il segreto dei dati ve lo dirò più tardi. Dovrebbe essere semplice. C'è molta ridondanza negli ingressi.
 

Inoltre, 0,9 è sovrallenamento. R^2 maggiore di 0,6 su un set di allenamento è un massimo realistico.

Un'altra cosa: ricordatevi delle interazioni. Singole connessioni possono portare in una falsa direzione.

Io stesso sto cercando di risolvere il mio compito. Ho applicato NS a strato singolo. Il test R^2 non supera lo 0,148. Non si adatta...