C'è uno schema nel caos? Proviamo a trovarlo! Apprendimento automatico sull'esempio di un campione specifico. - pagina 28

 
RomFil #:

Ho aggiunto una colonna: "1" acquisto, "-1" vendita. Credo di aver fatto bene, ma non ho controllato ... :) Pigro.

Sul grafico senza spread e commissioni questo è il risultato in punti:

Risultati: PR=157488 +trades=778 -trades=18 (profitto, numero di trade positivi e negativi)

Spread di 0,00050:


Risultati: PR=117688 +trades=629 -trades=167

Spread a 0,00100:

PR=77888 +trades=427 -trades=369

Spread a 200:


PR=-1712 +trades=241 -trades=555

Complimenti per il tuo super oscillatore!

Ho ottenuto questi risultati tenendo conto del Target_P (i segnali che non coincidono nella direzione vengono esclusi) - sono confuso dalle fluttuazioni all'inizio e poi da una crescita così rapida.

Se non ci sono errori nel tuo codice, puoi considerarti un milionario!

Puoi dirmi qual è il segreto? Ho capito che si tratta essenzialmente di un polinomio che avete in qualche modo spinto nei limiti di un oscillatore.

 
Aleksey Vyazmikin #:

Congratulazioni per il vostro super oscillatore!

Ho ottenuto risultati simili tenendo conto di Target_P (i segnali che non coincidono nella direzione sono esclusi) - è confuso, tuttavia, che fluttui all'inizio e poi cresca così rapidamente.

Se non ci sono errori nel tuo codice, puoi considerarti un milionario!

Puoi dirmi qual è il segreto? Ho capito che si tratta essenzialmente di un polinomio che avete in qualche modo spinto nei limiti di un oscillatore.

Non ci sono quasi segreti. Le ho detto tutto sopra. Nessun polinomio.

Vi darò qualche suggerimento:

1) Obiettivo. Dovrebbe essere determinato da sé, cioè dovreste filtrare i dati in modo tale da massimizzare il profitto potenziale sia sui movimenti forti che su quelli piatti. Per la decomposizione delle serie utilizzavo la wavelet di Dobeshi e direi che è la variante più corretta (anche se ora ne ho trovata una che richiede meno risorse). La cosa più importante nel filtraggio è non farlo "al volo" ed escludere almeno il 10-20% dei dati sui bordi della traccia del campione. È necessario rimuovere i dati sui bordi per escludere gli effetti dei bordi.

2) Oscillatore. Può essere davvero il più semplice. Ad esempio, il dimenticatissimo RVI ... :) È necessario selezionare solo il periodo giusto.

3) Ma la cosa più importante sono le reti neurali "giuste" e l'algoritmo della loro applicazione ... :) Compresa la corretta interpretazione del risultato delle reti neurali.


L'errore nel codice può essere solo nel tempo di apparizione del segnale (anche se ho già controllato otto volte e non ho trovato alcun errore), ma anche se l'apparizione del segnale è spostata a destra (cioè per fare un ritardo artificiale del segnale di 1-2 passi), c'è anche un profitto - meno di quello iniziale, naturalmente, ma le condizioni iniziali dal primo post sono grandi.

 
RomFil #:

Non c'è quasi nessun segreto. Vi ho detto tutto sopra. Niente polinomi.

Scriverò una serie di suggerimenti:

1) Obiettivo. Dovrebbe essere determinato da solo, cioè dovreste filtrare i dati in modo da massimizzare il profitto potenziale sia sui movimenti forti che su quelli piatti. Per la decomposizione delle serie utilizzavo la wavelet di Dobeshi e direi che è la variante più corretta (anche se ora ne ho trovata una che richiede meno risorse). La cosa più importante nel filtraggio è non farlo "al volo" ed escludere almeno il 10-20% dei dati sui bordi della traccia del campione. È necessario rimuovere i dati sui bordi per escludere gli effetti dei bordi.

2) Oscillatore. Può essere davvero il più semplice. Ad esempio, il dimenticatissimo RVI ... :) È necessario selezionare solo il periodo giusto.

3) Ma la cosa più importante sono le reti neurali "giuste" e l'algoritmo della loro applicazione ... :) Compresa la corretta interpretazione dei risultati delle reti neurali.


L'errore nel codice può essere solo nel tempo di comparsa del segnale (anche se ho già controllato otto volte e non ho trovato alcun errore), ma anche se la comparsa del segnale è spostata a destra (cioè per fare un ritardo artificiale del segnale di 1-2 passi), c'è anche un profitto - meno di quello iniziale, naturalmente, ma le condizioni iniziali dal primo post sono grandi.

Il primo suggerimento - riguarda i miei dati, quindi saltiamolo per ora.

Il secondo suggerimento - mi chiedo - hai usato il treno campione?

Terzo suggerimento - e qui non capisco - perché così tante reti neurali? Cosa inserisci nell'input, rendimenti o cosa?

 
Aleksey Vyazmikin #:

Il primo suggerimento riguarda i miei dati, quindi per ora lo saltiamo.

Il secondo suggerimento: mi chiedo se avete fatto dei campionamenti?

Terzo suggerimento - e qui non capisco - perché così tante reti neurali? Che cosa inserisci nell'input, i rendimenti o che cosa?

2) Sì, solo il campione del treno è sovrastimato, perché si considera che il campione del treno e quello del test siano il risultato di uno stesso processo. Se i processi sono diversi, naturalmente non si ottiene nulla.

3) È molto semplice. Avete mai fatto genetica?

Quando la genetica lavora per risolvere un'equazione con dieci variabili, ad esempio, lo stesso risultato (molto vicino) può essere ottenuto con variabili diverse. È lo stesso con le reti neurali. Create e addestrate due reti neurali sugli stessi campioni e poi osservate l'errore di queste reti e i loro coefficienti di peso. Saranno diversi!

Inoltre, per le diverse parti dei grafici è necessaria una diversa profondità dei campioni immessi nell'input delle reti neurali. In altre parole, le reti neurali con diverse profondità di campionamento hanno un'accuratezza diversa su diverse parti del grafico. Quindi, il comitato "giusto" permette di rispondere correttamente su tutta la lunghezza dei campioni. E soprattutto che questo comitato stesso determini questa correttezza. Forse questi sono già i rudimenti dell'IA ... :)

 
RomFil #:

3) È molto semplice. Avete mai fatto genetica?

Quando la genetica lavora per risolvere un'equazione con dieci variabili, ad esempio, lo stesso risultato (molto vicino) può essere ottenuto con variabili diverse. È lo stesso con le reti neurali. Create e addestrate due reti neurali sugli stessi campioni e poi osservate l'errore di queste reti e i loro coefficienti di peso. Saranno diversi!

Inoltre, per parti diverse dei grafici è necessaria una diversa profondità dei campioni immessi nell'input delle reti neurali. In altre parole, le reti neurali con diverse profondità di campionamento hanno un'accuratezza diversa su diverse parti del grafico. Quindi, il comitato "giusto" permette di rispondere correttamente su tutta la lunghezza dei campioni. E soprattutto che questo comitato stesso determini questa correttezza. Forse questi sono già i rudimenti dell'IA ... :)

Mi stai confondendo - non riesco a capire, hai una formula di oscillatore con coefficienti liberi, che sono selezionati attraverso la genetica? La genetica è implementata su una rete neurale (non conosco tale variante)?

È chiaro, ma come avete raccolto e distribuito i coefficienti - sul treno o su un altro campione?

Ho capito bene che l'input è costituito da valori puri con qualche rientranza o addirittura da finestre intere, ma di dimensioni diverse in reti diverse?

 
Aleksey Vyazmikin #:

Mi state confondendo - non riesco a capire, avete una formula di oscillatore con coefficienti liberi, che vengono selezionati attraverso la genetica? La genetica è implementata su una rete neurale (non conosco questa opzione)?

È chiaro, ma come avete raccolto e distribuito i coefficienti - sul treno o su un altro campione?

Ho capito bene che l'input è costituito da valori puri con qualche rientranza o addirittura da finestre intere, ma di dimensioni diverse in reti diverse?

La genetica è la solita, senza rete neurale (a dire il vero la genetica su rete neurale è sconosciuta anche a me).

Tutto è determinato solo su un campione di treni. La commissione stessa determina tutti i coefficienti.

Sì, valori quasi puri, profondità diverse, finestre diverse, ecc.

 
RomFil #:

La genetica è comune, senza le nevrosi (a dire il vero la genetica sulle nevrosi è sconosciuta anche a me).

Tutto è determinato solo su un campione di treni. La commissione stessa determina tutti i coefficienti.

Sì, valori quasi puri, profondità diverse, finestre diverse, ecc.

L'oscillatore è stato citato prima come un'immagine collettiva non applicata nella realtà?

 
Aleksey Vyazmikin #:

L'oscillatore è stato precedentemente citato come immagine collettiva non applicata nella realtà?

No, l'oscillatore non è un'immagine collettiva, ma una realtà (collocata nel seminterrato):


L'oscillatore stesso + i punti è la previsione. I punti appaiono sui primi tick di una nuova barra. Ma la comparsa di un punto non è un segnale per un'operazione - è solo un avvertimento. Si analizza l'ulteriore movimento dei prezzi e solo allora si prende una decisione sull'operazione. Tra l'altro, questo grafico mostra anche uno stop (segno rosso), che nel 98-99% dei casi non viene sfondato - è una difesa contro le forti fluttuazioni. Questo è il segnale di acquisto... :)

 
RomFil #:

No, l'oscillatore non è un'immagine collettiva, è reale (collocato nel seminterrato):


L'oscillatore stesso + i punti è una previsione. I punti appaiono sui primi tick di una nuova barra. Ma la comparsa di un punto non è un segnale per un'operazione - è solo un avvertimento. Si analizza l'ulteriore movimento dei prezzi e solo allora si prende una decisione sull'operazione. Tra l'altro, questo grafico mostra anche uno stop (segno rosso), che nel 98-99% dei casi non viene sfondato - è una difesa contro le forti fluttuazioni. Questo è il segnale di acquisto... :)

Beh, questo è esclusivamente il tuo sistema, e non ha nulla a che fare con i dati che ho fornito, perché non hai usato altri dati per l'analisi?

Ti allego un file - per favore applica su di esso il modello che hai precedentemente addestrato - sono interessato al risultato.

File:
 
Quindi la genetica è responsabile dei dati immessi negli input della rete? E i dati stessi sono la distorsione delle serie temporali?