L'uso dell'intelligenza artificiale in MTS - pagina 18

 
rip:
njel:
Signore e signori, cosa dare come input? Una candela?
Rispetto per l'autore ...
Si prega di formulare una regola di formazione della rete sul forum.

--
rip
Solo la topologia della rete è più o meno chiara dal codice. Almeno l'autore ha organizzato le funzioni e i loro commenti in modo tale che uno possa capire in generale.

Ho cercato ulteriormente nel codice e ho scoperto che i miei grafici non contengono abbastanza barre. Li ho aumentati fino a 16000. L'ho eseguito e ho ottenuto 6 accordi di tutto il periodo con non molto grande, ma una perdita del 9% sul risultato finale. Pochi scambi - un piccolo scarico.

In breve, è chiaro che nulla è chiaro a tutti, ma come usare questo Expert Advisor dopo tutto? Ci dovrebbero essere delle raccomandazioni, giusto? Forse sto facendo qualcosa di sbagliato?

Non ha senso continuare a scavare nel codice e cercare di analizzarlo da solo. Affermare che l'Expert Advisor è in perdita o in profitto da 6 trade è inutile. È solo una perdita di tempo.
 

A quanto pare è necessario un piccolo chiarimento

L'Expert Advisor è uno scarico, o almeno non redditizio. È stato pubblicato per quelle persone che vogliono giocare con le reti neurali ma non vogliono scrivere tutto da zero.
La configurazione della rete è scritta piuttosto universalmente. In realtà ci sono solo due limitazioni - minimo due strati e un neurone di uscita.

Ora, per quanto riguarda il motivo per cui l'Expert Advisor non funziona così com'è.
Non può farlo perché il compito di prevedere n tick da m tick precedenti è ovviamente irrisolvibile. La griglia non può trovare dipendenze per una buona previsione. Se cerchiamo di classificare gli indicatori, anche questo fallirà, ma la griglia non può dividere i dati di input in classi.
Questo significa che è necessario elaborare i dati per la griglia in un modo più creativo. Questo è quello che farò.

Queste sono le mie conclusioni. Dopo la comprensione e l'analisi del mio Expert Advisor, coloro che sono interessati raggiungeranno lo stesso o, forse, alcune idee nuove.

In effetti, l'Expert Advisor può essere considerato come una biblioteca per lavorare con le reti neurali, datevi il lavoro per capirle e usarle.

Se qualcuno si è fatto l'idea, dopo il mio messaggio precedente, che questo EA può essere giocato, o non ha letto attentamente, o non sono stato abbastanza chiaro.
Ho parafrasato Figar0: "Per niente redditizio, ma informativo.

Ora per alcune risposte personali.

Reshetov E in generale, come deve essere usato correttamente e se vale la pena usarlo? Perché capire il codice di qualcun altro è un compito noioso e ingrato. E se si conosce l'algoritmo, è molto più facile scrivere il proprio programma da zero che capire quello di qualcun altro
.

Se intendi il commercio, probabilmente non dovresti usarlo. Almeno io non lo farei. Ha valore solo come codice.
In realtà, sono parzialmente d'accordo che si può scrivere il proprio programma da zero conoscendo l'algoritmo. Non sono così sicuro della semplicità.
Ma sei il benvenuto a scrivere algoritmi. Si possono facilmente trovare libri sulle reti neurali, sui principi di formazione e altre cose su Internet. Mentre scrivevo questo Expert Advisor, la mia collezione ha raggiunto facilmente due dozzine di libri e articoli.


Mathemat
Non credo che questo codice abbia qualcosa in comune con l'Expert Advisor di Reshetov ...

Quello che hanno in comune è che entrambi hanno reti neurali con indicatori come input :) La differenza è che io non ho uno ma molti neuroni, rispettivamente, ho scritto il mio algoritmo per l'allenamento.


Si prega di formulare una regola di apprendimento per la rete nel forum.

Se è per me, per favore approfondisci. Non capisco bene cosa vi interessa.





 
maveric писал (а):


Si prega di formulare una regola di formazione della rete nel forum.

Se è per me, per favore approfondisci. Non capisco bene cosa vi interessa.


Lei è molto esperto di reti neurali, perché non scrive un articolo sull'argomento, in particolare concentrandosi sugli algoritmi di apprendimento per le reti multistrato. Sarebbe interessante per molte persone. Gli articoli qui sono pagati, il tuo lavoro non andrà sprecato.
 
Integer писал (а):
maveric ha scritto (a):


Si prega di formulare una regola di formazione della rete nel forum.

Se è per me, per favore approfondisci. Non capisco bene cosa vi interessa.


Lei ha una buona conoscenza delle reti neurali, perché non scrive un articolo sull'argomento, in particolare concentrandosi sugli algoritmi di apprendimento per le reti multistrato. Sarebbe interessante per molte persone. Gli articoli qui sono pagati, il tuo lavoro non andrà sprecato.
Non mi sembra una buona idea :)
Ho imparato le reti neurali da libri e articoli scritti da persone serie, non segreti, ma facili da trovare su Internet.
Ho paura che finisca come nell'aneddoto in cui Moisha cantava i Beatles ad Abram :)
 

Si prega di formulare una regola di formazione della rete nel forum.

Se è per me, per favore approfondisci. Non capisco bene cosa vi interessa.

Hai risposto alla mia domanda ;) In questo caso, avete sviluppato una rete che approssima la serie temporale n-steps ahead. Si prendono come input i valori di chiusura e/o i valori dell'indicatore. Ok, allora un'altra domanda. Per quanto riguarda la classificazione - hai detto che dovremmo cercare di classificare gli indicatori, posso approfondire questa idea? Sì, ho un'altra osservazione: la pratica ha dimostrato che i migliori risultati si ottengono quando si allenano reti (allenamento con un insegnante), il cui campione di allenamento ha una distribuzione normale. Ho fatto ricerche di serie temporali formate da citazioni diverse volte, molto tempo fa... La sua distribuzione non ha niente a che vedere con la distribuzione normale. Forse dovremmo analizzare la costruzione di un campione di allenamento e ridurlo a un campione con una distribuzione normale. In questo caso il MSE diminuirà molto più velocemente e si vedranno risultati migliori nel campione di test.
 
maveric:


Ora, per quanto riguarda il motivo per cui l'Expert Advisor non funziona così com'è.
Non funziona perché il compito di prevedere n zecche sulla base delle m zecche precedenti è ovviamente irrisolvibile. La griglia non può trovare dipendenze per una buona previsione. Se cerchiamo di classificare gli indicatori, anche questo fallirà, ma la griglia non può dividere i dati di input in classi.
Questo significa che è necessario elaborare i dati per la griglia in un modo più creativo. Che è quello che farò dopo.


Forse potremmo aprire un nuovo thread, dove potremmo discutere della formazione e del pre/post trattamento dei campioni? Penso che sarebbe interessante per un certo numero di visitatori.
 
rip:

Si prega di formulare una regola di formazione della rete nel forum.

Se è per me, per favore approfondisci. Non capisco bene cosa vi interessa.

Hai risposto alla mia domanda ;) In questo caso, avete sviluppato una rete che approssima la serie temporale n-steps ahead. Si prendono come input i valori di chiusura e/o i valori dell'indicatore. Ok, allora un'altra domanda. Per quanto riguarda la classificazione - hai detto che dovremmo cercare di classificare gli indicatori, posso approfondire questa idea? Sì, ho un'altra osservazione: la pratica ha dimostrato che i migliori risultati si ottengono quando si allenano reti (allenamento con un insegnante), il cui campione di allenamento ha una distribuzione normale. Ho fatto ricerche di serie temporali formate da citazioni diverse volte, molto tempo fa... La sua distribuzione non ha niente a che vedere con la distribuzione normale. Forse dovremmo analizzare la costruzione di un campione di allenamento e ridurlo a un campione con una distribuzione normale. In questo caso il MSE diminuirà molto più velocemente e si vedranno risultati migliori nel campione di test.

Non solo una distribuzione normale. Almeno i set di campioni dovrebbero essere anche coerenti.
In generale, è il seguente modo.
Troviamo l'inizio della prima tendenza ("up down flat") Un certo numero di barre prima di questo inizio sarà un'entrata nella griglia, l'intera tendenza che lo segue sarà arrotolata nella forma di 1 0 0 200 6 i primi tre numeri sono identificatori di tendenza gli ultimi due sono il cambiamento generale del prezzo e la lunghezza (in barre) della tendenza. Il prossimo esempio si forma non prima della fine di questa tendenza.
Non è possibile prevedere la lunghezza della tendenza, ma solo il cambiamento assoluto del prezzo su di essa.
Questo renderà gli insiemi di esempi (più) coerenti.
Otterremo N1 N2 N3 esempi per tre tipi di tendenze.
per esempio
SU ( 1 0 0 ) - 100
piatto( 0 1 0) - 200
giù( 0 0 1) - 250

Come fare una distribuzione normale.
1. se il numero minimo di esempi (100) ci soddisfa, possiamo stupidamente tagliare il resto
2. Gli esempi che sono meno numerosi dovrebbero essere offerti più spesso, per equilibrarli.
3. Aggiungete agli esempi quelli che sono pochi, dando loro un po' di rumore.
4. più esempi per il down che per il up, quest'ultimo può essere aggiunto con esempi delle quotazioni inverse di USDEUR invece di EURUSD

Ora analizzerò questi esempi in ordine decrescente di figaggine :)
4. L'ideale Non ci sono figure di sinistra, tutto è carne e sangue del mercato. Ma è noioso da scrivere, dovrò ricalcolare un sacco di indici da solo + calcolarli da solo.
3. È un po' peggio, perché diamo almeno un po' di leggerezza alla griglia sotto forma di quel rumore che aggiungiamo.
2. Se mostriamo alla griglia molte volte la stessa cosa, la ricorderà semplicemente e non generalizzerà.
1. Anche se per la formazione di prendere enormemente lunga storia (per garantire che dopo lo scarto di esempi rimanenti abbastanza) - poi questo metodo prende tutti e tre Potentemente batte tutti gli altri tre Per tutti i parametri :)


Quindi va più o meno così. A proposito, il mio Expert Advisor è un mix dei punti 1 e 2.
 
maveric:

Non solo normale. Come minimo, anche i set di esempi dovrebbero essere coerenti.
In generale si presenta così.
Troviamo l'inizio del primo trend ("up down flat") Un certo numero di barre prima di questo inizio sarà un'entrata nella griglia, l'intero trend che lo segue sarà arrotolato nella forma 1 0 0 200 6 i primi tre numeri sono identificatori di trend gli ultimi due sono il cambiamento generale del prezzo e la lunghezza (in barre) del trend. Il prossimo esempio si forma non prima della fine di questa tendenza.
Non è possibile prevedere la lunghezza della tendenza, ma solo il cambiamento assoluto del prezzo su di essa.
Questo renderà gli insiemi di esempi (più) coerenti.
Otterremo N1 N2 N3 esempi per tre tipi di tendenze.
per esempio
UP ( 1 0 0 0 ) - 100
flat( 0 1 0 ) - 200
down( 0 0 1 ) - 250
La distribuzione normale è la distribuzione di probabilità di una variabile casuale. Un insieme di dati non può essere contraddittorio o non contraddittorio - è il valore di una funzione f che descrive un processo fisico e semplicemente è. Solo la nostra interpretazione dei suoi valori può essere contraddittoria.

Non riesco a capire una cosa: cosa volete che faccia una rete neurale? Approssimare una serie o ottenere una classificazione della situazione del mercato? Per come la vedo io, sono compiti fondamentalmente diversi, quindi i dati di input e di output dovrebbero essere preparati in modo completamente diverso.

Definiamo un po' i termini:
1. L'approssimazione di una serie è la costruzione di una mappatura multidimensionale F: x->y che generalizza un dato insieme di esempi {xt, yt}. Sulla base di questa mappatura, si sta realizzando una visione in H del futuro basata su una certa dipendenza latente nei termini della serie. Cioè può essere generalizzato - stiamo cercando di operare con il valore dei membri della fila stessa così come con qualche insieme di valori che descrivono la fila - sono estremi locali ecc. (definiamo un corridoio di prezzi per qualche intervallo, diciamo)
2. Classificazione - cioè si forma un'immagine di mercato - diciamo una tendenza ascendente. È necessario riconoscere questa immagine.

Cosa ne pensi di questo? A giudicare dal tuo codice - stai cercando di prevedere i punti di entrata e di uscita del mercato. Francamente, dubito profondamente della correttezza di
per un tale compito.

Vi sarei grato - se potete dimostrare che ho torto.

--
rip
 
rip:
Maveric:

Non solo normale. Almeno anche i set di esempi dovrebbero essere coerenti.
In generale va così.
Troviamo l'inizio della prima tendenza ("up down flat") Un certo numero di barre prima di questo inizio sarà un'entrata nella griglia, l'intera tendenza che lo segue sarà arrotolata nella forma 1 0 0 200 6 i primi tre numeri sono identificatori di tendenza gli ultimi due sono il cambiamento generale del prezzo e la lunghezza (in barre) della tendenza. Il prossimo esempio si forma non prima della fine di questa tendenza.
Non è possibile prevedere la lunghezza della tendenza, ma solo il cambiamento assoluto del prezzo su di essa.
Questo renderà gli insiemi di esempi (più) coerenti.
Otterremo N1 N2 N3 esempi per tre tipi di tendenze.
per esempio
SU ( 1 0 0 ) - 100
piatto( 0 1 0) - 200
giù( 0 0 1) - 250
La distribuzione normale è la distribuzione di probabilità di una variabile casuale. Un insieme di dati non può essere contraddittorio o non contraddittorio - è il valore di una funzione f che descrive un processo fisico e semplicemente è. Solo la nostra interpretazione dei suoi valori può essere contraddittoria.

Non riesco a capire una cosa: cosa volete che faccia una rete neurale? Approssimare una serie o ottenere una classificazione della situazione del mercato? Per come la vedo io, sono compiti fondamentalmente diversi, quindi i dati di input e di output dovrebbero essere preparati in modo completamente diverso.

Definiamo i termini:
1. L'approssimazione delle serie è una costruzione di mappatura multidimensionale F: x->y, che generalizza un dato insieme di esempi {xt, yt}. Sulla base di questa mappatura, possiamo immaginare il futuro in H passi sulla base di certe dipendenze nascoste dei termini della serie. Cioè può essere generalizzato - stiamo cercando di operare con il valore dei membri della fila stessa così come con qualche insieme di valori che descrivono la fila - sono estremi locali ecc. (definiamo un corridoio di prezzi per un certo intervallo, diciamo).
2. Classificazione - cioè si forma un'immagine di mercato - diciamo una tendenza ascendente. Questa immagine deve essere riconosciuta.

Cosa ne pensi di questo? Da quello che ho capito nel tuo codice - stai cercando di prevedere i punti di entrata e di uscita del mercato. Francamente, ho i miei dubbi sulla validità
del compito.

Vi sarei grato - se potete dimostrare il contrario.

--
rip


Per i problemi di classificazione, è la nostra interpretazione dei dati che conta. In parole povere, in un compito di riconoscimento di lettere, in un insieme di esempi della lettera A non si dovrebbero trovare le lettere X e U, ecc.)

Voglio fare entrambe le cose. Forse due griglie, forse una sola, a quanto pare. Il primo passo della griglia è classificare la situazione attuale. Se dà un segnale sufficientemente chiaro dell'inizio di una tendenza, allora il secondo passo è un tentativo di guardare nel futuro per stimare quanti soldi si possono fare su questa tendenza.

Suppongo che l'approssimazione delle serie finanziarie sia peggiore della classificazione.

 
maveric писал (а):

La mia ipotesi è che le serie finanziarie si prestano peggio all'approssimazione che alla classificazione.

Le serie dei prezzi, come qualsiasi altra serie continua, possono essere approssimate senza problemi. Basta non confondere l'interpolazione con l'estrapolazione. L'interpolazione con un neurone multistrato può essere fatta come due dita sull'asfalto. L'estrapolazione di serie non periodiche da parte delle reti neurali è una perdita di tempo.