Cosa inserire nell'ingresso della rete neurale? Le vostre idee... - pagina 67

 


ChatGPT lascerà il mondo senza persone che cercano di capire le cose da sole. Scoprite il codice dall'articolo. E queste domande non sorgeranno. Siete programmatori e potete farlo. O è così?

La chat GPT ha preso il posto di una fonte di vera conoscenza? Avete visto l'iterazionenella ricorsione. No, non si tratta di elaborare tutti i dati più e più volte (come gli esseri umani che iterano o i NS che ricalcolano tutti i pesi a ogni epoca di apprendimento). Ma ogni volta che il set di dati viene diviso, ad esempio, a metà, ogni metà viene divisa a metà e così via, finché non è impossibile dividere (rimane un solo esempio o tutti gli esempi sono uguali). In questo modo i dati vengono distribuiti sulle foglie in un solo passaggio. Funziona molto velocemente.

Si tratta di selezionare la divisione migliore, ma non di valutare i dati stessi. È quello che ho scritto prima. È necessario valutare i dati per il record da memorizzare.

 
Forester #:


ChatGPT lascerà il mondo senza persone che cercano di capire le cose da sole. Scoprite il codice dall'articolo. E queste domande non sorgeranno. Siete programmatori e potete farlo. O è così?

La chat GPT ha preso il posto di una fonte di vera conoscenza? Avete visto l'iterazionenella ricorsione. No, non si tratta di elaborare tutti i dati più e più volte (come gli esseri umani che iterano o i NS che ricalcolano tutti i pesi a ogni epoca di apprendimento). Ma ogni volta che il set di dati viene diviso, ad esempio, a metà, ogni metà viene divisa a metà e così via, finché non è impossibile dividere (rimane un solo esempio o tutti gli esempi sono uguali). In questo modo i dati vengono distribuiti sulle foglie in un solo passaggio. Funziona molto velocemente.

Si tratta di selezionare la divisione migliore, ma non di valutare i dati stessi. È quello che ho scritto prima. Si vogliono valutare i dati per il record da memorizzare.

Non c'è tempo per digitare manualmente un grande post, gpt è abbastanza buono per questo.

Guardate attentamente, per favore, almeno guardate il codice che mi offrite di guardare. Scoprite dove si trovano le iterazioni, dove si trova la stima e dove si trova l'algoritmo di ottimizzazione. La sua negazione non porterà da nessuna parte.

La ricorsione è un'iterazione.

 
1.Non riuscirete a normalizzare i valori del dataset in modo che siano simili per struttura ad altri input 2.Anche se ci riuscite, sarà rumore bianco e nessuna rete neurale funzionerà correttamente 3.Solo una rete come GPT con migliaia di neuroni e architetture progettate esclusivamente per il trading sarà in grado di fornire previsioni più o meno accurate e di adattarsi al rumore bianco. E questo è un server separato con enormi capacità.
 
Proprio così.
 
Forester #:

...



Tut.
 
Continuo gli esperimenti creativi. Ho tracciato un'immagine mentale, voglio provare a creare dei calchi dei prezzi e utilizzarli nel trading. Ogni calco è come un certo modello enorme, che viene proiettato in modo condizionato nel futuro.

 
In questo thread vedo molti programmatori esperti che stimo, quindi non voglio pestare i piedi a nessuno.

Tuttavia, ragazzi, in base alla mia esperienza personale e alle mie ricerche, i modelli lineari semplici sembrano sempre superare le reti neurali, forse perché i dati finanziari sono molto rumorosi e le reti neurali sono sensibili alla varianza degli input.

In effetti, a mio parere, superare una regressione lineare è impressionante (supponendo che non si stiano mischiando casualmente i set di addestramento e di test).

Non voglio sembrare pessimista, ma tutti i dati che ho analizzato non mi danno la certezza che una rete neurale profonda con anche solo un trilione di parametri possa superare un modello lineare, anche tenendo conto del fenomeno della doppia discesa.

In genere penso che ci sia

1) una fase di pre-elaborazione che non abbiamo realizzato
2) dati utili che stiamo trascurando
Oppure
3) un obiettivo migliore che possiamo prevedere con maggiore precisione.

Mi piacerebbe essere smentito. Anzi, spero di sbagliarmi e che la vera soluzione sia molto più semplice.
 



Poiché tutti i NS sono in grado di riconoscere solo gattini, tumori e giocare a Dota, non sono in grado di riconoscere una strategia di trading, perché questo compito non è per le reti stupide. Di conseguenza, la "generalizzazione" si trasforma in "media", quando il risultato dei NS è costituito da diversi tipi di fit con diverse perversioni.










Se si capovolge un gatto, è sempre lo stesso gatto; se si capovolge un grafico di prezzo, non è più un BUY, ma un SELL. Alla fine, rimango della mia opinione: se si vuole aggiustare, si deve aggiustare in modo specifico. 1. O una tabella Q, in cui a ogni pattern storico viene assegnato un buy o un sell in base alle statistiche. 2. O si filtra l'input (o l'output). Oppure filtriamo l'ingresso (o il numero di uscita del NS) sull'intero intervallo: in alcuni punti - segnale di apertura, in altri - ignoriamo.





La seconda opzione è l'implementazione più semplice della sostituzione MLP: invece di decine e centinaia di parametri ottimizzabili dei pesi, si può ottimizzare l'intervallo del numero di lavoro. Così ho fatto, trasformando l'ottimizzazione in un feroce retraining, che a volte porta a qualcosa che funziona in avanti. E anche in questa direzione è già possibile lavorare, scegliere, continuare a cercare.




 











Osservazioni recenti: esistono due tipi di dati di input: 1) Sequenza temporale - dati di input omogenei in ordine cronologico: prezzi,letture di indicatori, pattern. 2) Diversi - letture singole, ma le piùrecenti , di strumenti diversi: indicatori, pattern.La prima variante è la peggiore. Più ci addentriamo nella storia, peggiore è il risultato.




Sembra un paradosso, se ci confrontiamo con i trader di successo, che guardano in profondità nella storia.La seconda variante è la migliore. La prima variante non può essere allenata in alcun modo.


Sembrerebbe che più grafici - più informazioni - migliorino i risultati. Ma in pratica tutto è esattamente il contrario. Inoltre - la mia ipotetica giustificazione di questo fenomeno:

Il prezzo ha un modello. Oggettivo, tecnico - è la volatilità. Sì, ci permette di assumere con certezza che in 10 casi su 10, in 10 casi almeno, il prezzo non raggiungerà il valore 0. In 10 casi su 10, il prezzo dell'euro non supererà i 5000 pips in una barra di 5 minuti.
Le cause di forza maggiore rovineranno un po' il quadro assoluto, ma c'è ancora un elemento di probabilità: in questa stessa volatilità ci sono intervalli di oscillazione libera dei prezzi.



E il prezzo durante la barra si trova in questo intervallo medio. E qui possiamo dire con una certa certezza: il prezzo della prossima candela si troverà nell'intervallo da ora a ora, leggermente al di sopra del massimo attuale e leggermente al di sotto del minimo attuale, perché il prezzo tende a muoversi in modo direzionale. Quindi, cosa succede se ci spostiamo di 1 barra indietro? Quale ipotesi sarebbe corretta?

Sì, infatti: il prezzo dopo 1 barra avrà già 4 volte il range possibile della candela. E se ci spostassimo indietro di 10 barre? Quale sarà il prezzo tra 10 barre? La gamma di valori possibili aumenta di molte volte.




E questo fenomeno, a mio avviso, influisce sui risultati francamente scadenti del NS: la mancata libertà di previsione dal passato si sovrappone alla performance complessiva, peggiorandola. Ciò è confermato dalla regola della pratica: maggiore è il numero di input, peggiore è il risultato. Potete anche verificarlo: inserite separatamente una coppia di input freschi e 10 precedenti, anch'essi separatamente.


I risultati del primo saranno molto più stabili. Gli input più recenti sono "nanizzati" da quelli obsoleti nella caldaia generale degli input, dove più spesso mostrano sovrallenamento e assoluta casualità in avanti. Si può replicare: nessuno alimenta solo quelli passati, che costituiscono l'intero schema nella caldaia generale.

E l'array in entrata dovrebbe essere considerato come un pattern indipendente. Ma la statistica ha dimostrato che qualsiasi singolo pattern costituito da una sequenza cronologica tende a funzionare al 50/50.



Cioè, dopo di esso il prezzo continua a curvare a suo piacimento. Ma laseconda variante è una bellezza.



Questa bellezza non solo ha la proprietà principale del predicato - la freschezza dei dati, ma può anche realizzare potenzialmente la funzionalità della cronologia e dei pattern: - l'intera cronologia del grafico può essere realizzata da un numero e da un input, ad esempio: il rapporto tra il prezzo corrente e le ultime N candele.


Oppure la stessa sequenza cronologica, ma con una relazione obbligatoria con il dato più recente: se si tratta di un prezzo, allora il riflesso dell'incremento del prezzo più recente rispetto al resto. E allora la cronologia "morta" e impraticabile inizia a prendere vita.

 
Ivan Butko #:





Ad esempio: il rapporto tra il prezzo attuale e le ultime N candele. Oppure presentare tutta la stessa sequenza cronologica, ma con la relazione obbligatoria con il dato più recente: se si tratta del prezzo - il riflesso dell'incremento del prezzo più recente rispetto al resto. E allora la cronologia "morta" e impraticabile inizia a prendere vita.

Come facevate prima? Avete presentato valori di prezzo assoluti per l'addestramento? Come 1,14241, 1,14248.

Quello descritto è un prezzo relativo. Si può fare la differenza (delta) del prezzo corrente rispetto ad altre barre o al rapporto, come hai descritto.

Mi sono sempre allenato sui delta. Il risultato è lo stesso...