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

 
Mihail Marchukajtes:
Y Ora capisco. In altre parole, per prima cosa addestriamo, diciamo, una rete senza insegnante. Poi scriviamo i valori ottenuti nei pesi del classificatore e dopo di che il classificatore viene ulteriormente addestrato con un insegnante. Supponiamo di aver ricevuto i pesi del fine-tuning neuronale, i pesi continuano ad essere ottimizzati????? In altre parole, preapprendendo senza un insegnante, impostiamo dei pesi iniziali per il classificatore che lo portano al minimo globale. È così che funziona?

L'apprendimento "profondo" ha senso a causa dell'attenuazione (sigmoide)/crescita esplosiva (ipertangente) delle derivate durante la back propagation, quando gli strati diventano significativamente più di 4-5, questo problema è stato aggirato da una "stampella" di pre-addestramento strato per strato tramite auto-encoders o RBM, che essenzialmente eseguono la selezione gerarchica non lineare delle caratteristiche (come PCA solo non lineare e molte volte), che poi può essere facilmente gestita da strati di alto livello, poi dal solito backprop rapidamente fine-tune tutto il sistema da set di destinazione (con un insegnante).

Vedi: https://www.youtube.com/watch?v=iowsPfk7uUY

Naturalmente, ci sono un sacco di "esperti" con articoli e mangiato i loro cani su ZZ, che sanno a memoria quale pacchetto in R dovrebbe essere usato in tutti i casi, quindi dirò in aria, nessuno mi crederà comunque, Le reti neurali profonde, come la CNN, quando si capisce come funzionano, non si possono usare per le previsioni di mercato, perché una così grande gerarchia di caratteristiche è necessaria solo per immagini, video e NLP, perché c'è una grande gerarchia, il nostro mondo è costruito così, gli oggetti sono fatti di oggetti, ecc. lo stesso con la PNL perché il linguaggio è gerarchico. Non c'è niente di simile nel mercato, si fa trading su un tipo di timeframe, quello che succede su quelli più piccoli è rumore per te. Gli investitori prendono una decisione su un timeframe, non dipendono da ciò che hanno deciso gli scalper e gli HFT, tanto meno gli hedger, gli arbitraggisti, ecc. E la gerarchia nella rete profonda implica coerenza, il piccolo definisce il grande, una valanga è composta da fiocchi di neve.

11. Data mining. Глубокие нейронные сети
11. Data mining. Глубокие нейронные сети
  • 2015.11.24
  • www.youtube.com
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Методы обработки больших объемов данных" (осень 2015) Лекция №11 - "Глубокие нейронные сети" Лектор ...
 
Gianni:

Sembra bello, ma è un po' caro.

1 Vorrei fare pratica su qualcosa di gratuito e vedere come funziona in tempo reale senza lag, e c'è una demo con un lag gigantesco.

2 Può descrivere in poche parole come un tale segnale viene utilizzato nel trading e nel MO? Se non è un segreto, quando vengono rilasciate notizie importanti, hai tempo per fare trading, o qualcuno inizia a colpire il mercato un secondo, mezzo secondo prima e abbocca?

1 Coppia con siti web.

2 Comprare meglio del previsto, vendere peggio del previsto.

 
Il:

L'apprendimento "profondo" ha senso a causa dell'attenuazione (sigmoide)/crescita esplosiva (ipertangente) delle derivate durante la back propagation, quando gli strati diventano significativamente più di 4-5, questo problema è stato aggirato da una "stampella" di pre-addestramento strato per strato tramite auto-encoders o RBM, che essenzialmente eseguono la selezione gerarchica non lineare delle caratteristiche (come PCA solo non lineare e molte volte), che poi può essere facilmente gestita da strati di alto livello, poi dal solito backprop rapidamente fine-tune tutto il sistema da set di destinazione (con un insegnante).

Vedi: https://www.youtube.com/watch?v=iowsPfk7uUY

Naturalmente, ci sono un sacco di "esperti" con articoli e mangiato i loro cani su ZZ, che sanno a memoria quale pacchetto in R dovrebbe essere usato in tutti i casi, quindi dirò in aria, nessuno mi crederà comunque, Le reti neurali profonde, come la CNN, quando si capisce come funzionano, non si possono usare per le previsioni di mercato, perché una così grande gerarchia di caratteristiche è necessaria solo per immagini, video e NLP, perché c'è una grande gerarchia, il nostro mondo è costruito così, gli oggetti sono fatti di oggetti, ecc. lo stesso con la PNL perché il linguaggio è gerarchico. Non c'è niente di simile nel mercato, si fa trading su un tipo di timeframe, quello che succede su quelli più piccoli è rumore per te. Gli investitori prendono una decisione su un timeframe, non dipendono da ciò che hanno deciso gli scalper e gli HFT, tanto meno gli hedger, gli arbitraggisti ecc. E la gerarchia nella rete profonda implica coerenza, che il piccolo definisce il grande, i fiocchi di neve compongono la valanga.

Grazie, guarderò sicuramente il video. Ma l'approccio di Reshetov mi è piaciuto di più. Mi sono imbattuto nel suo articolo dove spiega in dettaglio come è impostato il suo predittore, quindi. Non vedo l'ora di rifare il codice dell'articolo. Se ne sta occupando un moderatore. E benvenuto nella discussione, perché ho il mio punto di vista sulla preparazione dei dati e la formazione in general.....
 
Il:

L'apprendimento "profondo" ha senso a causa dell'attenuazione (sigmoide)/crescita esplosiva (ipertangente) delle derivate durante la back propagation, quando gli strati diventano significativamente più di 4-5, questo problema è stato aggirato da una "stampella" di pre-addestramento strato per strato tramite auto-encoders o RBM, che essenzialmente eseguono la selezione gerarchica non lineare delle caratteristiche (come PCA solo non lineare e molte volte), che poi può essere facilmente gestita da strati di alto livello, poi dal solito backprop rapidamente fine-tune tutto il sistema da set di destinazione (con un insegnante).

Vedi: https://www.youtube.com/watch?v=iowsPfk7uUY

Naturalmente, ci sono un sacco di "esperti" con articoli e mangiato i loro cani su ZZ, che sanno a memoria quale pacchetto in R dovrebbe essere usato in tutti i casi, quindi dirò in aria, nessuno mi crederà comunque, Le reti neurali profonde, come la CNN, quando si capisce come funzionano, non si possono usare per le previsioni di mercato, perché una così grande gerarchia di caratteristiche è necessaria solo per immagini, video e NLP, perché c'è una grande gerarchia, il nostro mondo è costruito così, gli oggetti sono fatti di oggetti, ecc. lo stesso con la PNL perché il linguaggio è gerarchico. Non c'è niente di simile nel mercato, si fa trading su un tipo di timeframe, quello che succede su quelli più piccoli è rumore per te. Gli investitori prendono una decisione su un timeframe, non dipendono da ciò che hanno deciso gli scalper e gli HFT, tanto meno gli hedger, gli arbitraggisti, ecc. E la gerarchia nella rete profonda implica coerenza, che il piccolo definisce il grande, i fiocchi di neve formano una valanga.

Per qualche motivo la conversazione scivola costantemente in una discussione sui meriti e demeriti di un modello o di un altro.

Anche se la mia esperienza non è così ampia, il contributo dei modelli stessi al successo del trading è molto piccolo.

È la definizione dell'obiettivo e dei suoi predittori che lo definisce.

Sull'esempio di ZZ, ho cercato più volte di mostrare che anche una variabile bersaglio così ovvia, illustrativa e bella come ZZ non è la stessa e ha ostacoli insormontabili ad un esame più attento.

Se parliamo di predittori, è abbastanza ovvio per me, come persona che si è occupata di economia per tutta la vita, che:

  • un predittore deve essere rilevante per la variabile obiettivo - capacità predittiva per la variabile obiettivo
  • il predittore deve essere davanti alla variabile obiettivo

Se ci si concentra unicamente sulla risoluzione di questi due fondamentali per la previsione economica e forex, allora il successo verrà solo da questi due parametri. E la selezione del modello che si adatta meglio all'obiettivo e ai suoi predittori può migliorare solo marginalmente le prestazioni, può dare alcune considerazioni valide sulla durata del modello senza ri-addestramento.


Ancora una volta, invito a concentrarsi sulla variabile obiettivo e sulla giustificazione dei predittori per questa particolare variabile obiettivo.

PS.

Entrare nelle interrelazioni delle coppie di valute. Ho ottenuto dei risultati sorprendenti per me. In particolare:

  • Le coppie di valute EURUSD e GBPUSD non sono collegate tra loro. E questo nonostante la correlazione ampiamente pubblicata. Costruire modelli VAR su queste coppie è senza speranza.
  • AUDUSD non ha niente a che fare con le principali coppie di valute.

 
SanSanych Fomenko:

Entrare nelle interrelazioni delle coppie di valute. Ho ottenuto dei risultati sorprendenti per me. In particolare:

  • Le coppie di valute EURUSD e GBPUSD non sono collegate tra loro. E questo nonostante la correlazione ampiamente pubblicata. Costruire modelli VAR su queste coppie è senza speranza.
  • AUDUSD non ha niente a che fare con le principali coppie di valute.

sarebbe probabilmente giusto dire la ragione di tali inferenze
 
SanSanych Fomenko:

Per qualche motivo, la conversazione scivola costantemente in una discussione sui meriti e demeriti di certi modelli.

Anche se la mia esperienza mi dice che il contributo al successo del trading è molto piccolo.

È la definizione dell'obiettivo e dei suoi predittori che lo definisce.

Sull'esempio di ZZ, ho cercato più volte di mostrare che anche una variabile obiettivo così ovvia, illustrativa e bella come ZZ non è la stessa e ha ostacoli insormontabili ad un esame più attento.

Se parliamo di predittori, è abbastanza ovvio per me, come persona che si è occupata di economia per tutta la vita, che:

  • un predittore deve essere rilevante per la variabile obiettivo - capacità predittiva per la variabile obiettivo
  • il predittore deve essere davanti alla variabile obiettivo

Se ci si concentra unicamente sulla risoluzione di questi due fondamentali per la previsione economica e forex, allora il successo verrà solo da questi due parametri. E la selezione del modello che si adatta meglio all'obiettivo e ai suoi predittori può migliorare solo marginalmente le prestazioni, può dare alcune considerazioni valide sulla durata del modello senza ri-addestramento.


Ancora una volta, invito a concentrarsi sulla variabile obiettivo e sulla giustificazione dei predittori per questa particolare variabile obiettivo.

PS.

Entrare nelle interrelazioni delle coppie di valute. Ho ottenuto dei risultati sorprendenti per me. In particolare:

  • Le coppie di valute EURUSD e GBPUSD non sono collegate tra loro. E questo nonostante la correlazione ampiamente pubblicata. Costruire modelli VAR su queste coppie è senza speranza.
  • AUDUSD non ha niente a che fare con le principali coppie di valute.

Sono d'accordo con te, ma vorrei fare una correzione. Chiarimenti soprattutto sul primo punto. Non riguarda l'obiettivo, ma il motivo. Cioè, il predittore è cambiato, l'obiettivo è cambiato, non viceversa. E poi il secondo punto cade semplicemente. Nessuna anticipazione è necessaria. È sufficiente che l'input sia la causa dell'output. E ancora, tutti dimenticano dove lavori. La cosa principale nello scambio è il prezzo. Trovate gli input, che sono la causa delle variazioni di prezzo e qualsiasi TS, vi assicuro, assolutamente qualsiasi TS funzionerà come dovrebbe. Ma questo è un segreto!!!!! Non dirlo a nessuno.... Dovreste comunque leggere il mio articolo. Non pensate che io non stia promuovendo o altro. Naturalmente sono preoccupato di essere l'unico a leggerlo :-) sto scherzando. Così, dopo aver letto, molte domande cadranno. Qui, oltre all'IA stessa (supponiamo che tu abbia una griglia), devi organizzare correttamente la raccolta dei dati, fare attenzione agli indicatori, in modo che non si verifichino sbirciatine, ecc. Penso che questo articolo mostri uno degli approcci al mercato. Ero così attratto dalle griglie che alla fine il trading diventava una seconda natura. Penso che ora ci siano tali specialisti, per i quali il trading è solo una questione di sperimentazione.....
 
Per quanto riguarda l'applicazione delle Reti Neurali Profonde nel trading, c'è una logica, ma il numero di manipolazioni da effettuare è abbastanza grande, supponendo che la rete lavori sull'orologio, ma analizza partendo da minuti, minuti generalizzati, poi cinque minuti generalizzati, ecc. IMHO
 

Mihail Marchukajtes:
Sono d'accordo con te, ma vorrei fare una correzione. Prima di tutto vorrei chiarire il primo punto. Non per relazionarsi con l'obiettivo, ma per esserne la ragione. Cioè, il predittore è cambiato, l'obiettivo è cambiato, non viceversa. E poi il secondo punto cade semplicemente. Nessuna anticipazione è necessaria. È sufficiente che l'input sia la causa dell'output. E ancora, tutti dimenticano dove lavori. La cosa principale nello scambio è il prezzo. Trovate gli input che sono la causa delle variazioni di prezzo e qualsiasi TS, vi assicuro, assolutamente qualsiasi TS funzionerà come dovrebbe.

=================================================================================

Questo è assolutamente il punto giusto. Solo che riformulerei: l'obiettivo dovrebbe essere generato dal o dai predittori.

 
mytarmailS:
Tuttavia, non hai una risposta alla domanda su come implementarlo usando R, se ho capito bene.

La risposta non è così semplice. Ecco un modo, per esempio, con un neurone, ma bisogna capire come funziona un neurone, quali formule ha, ecc.

Supponiamo che ci sia un neurone semplice, con quattro ingressi, tre percettori in uno strato nascosto e un'uscita. Un tale neurone in termini matematici funzionerebbe così:

#include <math.h>
double sigmoid(double x)
{
     return 1.0 / (1.0 + exp(-x));
}

double NeuralNetwork(double* input, double* bias, double* weight){
    double perc_output[3]; //временный массив для хранения промежуточных результатов каждого перцептрона

    double perc_output[0] = sigmoid(bias[0] + input[0] * weight[0] + input[1] * weight[1] + input[2] * weight[2]  + input[3] * weight[3]);
    double perc_output[1] = sigmoid(bias[1] + input[0] * weight[4] + input[1] * weight[5] + input[2] * weight[6]  + input[3] * weight[7]);
    double perc_output[2] = sigmoid(bias[2] + input[0] * weight[8] + input[1] * weight[9] + input[2] * weight[10] + input[3] * weight[11]);
    double result         = sigmoid(bias[3] + perc_output[0] * weight[12] + perc_output[1] * weight[13] + perc_output[2] * weight[14]);
    return result;
}


Ora puoi prendere una tabella con esempi di allenamento e trovare il risultato per ogni esempio

double nn_input[4]; //массив со входными значениями

double nn_bias[4]; //массив сдвигов, на текущем этапе тут будут рандомные значения
double nn_weight[15]; //массив весов, на текущем этапе тут будут рандомные значения

//для всех обучающих примеров находим по очереди результат нейронки. При этом массивы nn_bias и nn_weight не должны меняться
double results[trainSampleCount];
// trainSampleCount = число обучающих примеров
for(int i=0; i<trainSampleCount; i++){
  nn_input = trainSamples[i]; //синтаксис реально не такой, нужно из обучающей таблицы взять i-тую строку и запихнуть в этот массив nn_input
  results[i] = NeuralNetwork(nn_input, nn_bias, nn_weight);
}

Poi, per esempio, tracciate il profitto delle previsioni nell'array dei risultati e valutatelo.

Il codice di cui sopra può essere infilato nell'ottimizzatore. L'ottimizzatore dovrebbe trovare valori adeguati di pesi e spostamenti negli array nn_bias e nn_weight:
1) scambiare i valori di nn_bias e nn_weight secondo i loro algoritmi
2) trovare i risultati per tutti gli esempi di allenamento
3) tracciare il grafico del commercio
4) stimare il grafico commerciale, utilizzare questa stima come valore di fitness per i successivi passi di ottimizzazione
5) Ripetere i passi 1-4 dell'algoritmo di ottimizzazione finché il grafico dei profitti non diventa accettabile

Questo è tutto quello che c'è da fare, ma c'è una sfumatura - quegli ottimizzatori che ho provato non possono gestire i pesi, trovano solo un minimo locale quando tutti i risultati sono uguali a 0,5 per minimizzare l'errore medio e si bloccano ad esso. Qui bisogna applicare qualche trucco, non sono andato oltre.
Più complessa è la struttura delle neuroniche - più pesi ci saranno, e più difficile è per l'algoritmo di ottimizzazione selezionarli, su grandi neuroniche si bloccano e quasi non migliorano il risultato iniziale.

 
Dr.Trader:

Qui bisogna applicare qualche trucco.

Il trucco è effettivamente noto, solo che non ho visto alcun software per implementarlo. Derivati.

Le neuroniche, la tracciatura dell'equilibrio, la valutazione dei grafici sono tutte formule. E così si possono trovare le derivate di nn_bias e nn_weight rispetto alla stima finale.
In qualche video di formazione su MO il docente parlava di nuovi linguaggi di programmazione del futuro, per esempio qualcuno da qualche parte sta cercando di fare un linguaggio con il calcolo automatico delle derivate per qualsiasi variabile all'interno di qualsiasi formula complessa (non tramite ricalcolo con un piccolo spostamento di valore, ma analiticamente). Questo è il tipo di cosa che aiuterebbe.

Cioè di solito si prende un esempio di allenamento, e per ogni peso si determina analiticamente quanto migliora il risultato, e il peso viene di conseguenza leggermente aumentato o diminuito. Dobbiamo fare lo stesso, ma non un esempio alla volta, ma per tutti, e la derivata non si cerca per i risultati dell'allenamento uno per uno, ma immediatamente per la valutazione finale del grafico.


E un piccolo svantaggio - tutto questo in questa forma non aiuterà nel trading. Aggiustiamo i pesi per il grafico ideale, otterremo il 100% di sovrallenamento e precipitazioni sui nuovi dati. Per un vero profitto sarà necessario pasticciare con la struttura della neuronica, alla fine sarà qualcosa come una rete convoluzionale probabilmente.

Motivazione: