Come formare correttamente i valori di input per il NS. - pagina 23

 
StatBars писал (а) >>

Non sto sviluppando NS, attualmente sono alla ricerca di input e output ottimali per costruire un campione di allenamento, penso che il campionamento corretto sia più importante di NS, ci sono un sacco di varianti di NS in diverse lingue sul web...

Giusto. L'architettura con buoni ingressi non è un problema. Si potrebbe dire: gli input sono tutto, l'architettura è niente.


Qui, i signori hanno raccolto input normali e hanno ottenuto risultati adeguati con MTS "Сombo":




--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Questo è quando l'EA lavora con un lotto fisso. Non ho ancora aggiunto una MM.
risposta 11.05.2008 14:17 zxc
Valio:

Ho anche cercato di mettere la mano su questo miracolo. L'ho provato per una settimana, ho debuggato l'algoritmo nella versione base e ho aggiunto alcune funzioni mie nel basicTradingSystem, cioè ho rifatto il "BTS base" nel linguaggio dell'autore. I risultati sono fantastici sui dati storici: redditività da 8 a 12, il payoff atteso è di circa 1000, ma è reale con il mio indicatore. L'ho testato su 1H EUR, l'intervallo di tempo è di circa mezzo anno. Il mese prossimo dopo - risultato

"il mese dopo - il risultato"?

Valio, quindi quale risultato si ottiene in avanti? Molto interessante!

È solo che ho rifatto anche questo EA, e all'inizio la redditività su euromoney (nemmeno per mezzo anno, ma per un anno) di H1 era superiore a 18 (e superiore)!!! Ma in avanti si è rivelato non così buono, per usare un eufemismo...

Ora, dopo un'altra revisione, la redditività durante l'ottimizzazione è più bassa (circa 10), ma ora il forward tiene decentemente (più di 3 mesi). In forward più di 3 mesi, la redditività è più di 2,5. Ci sto ancora lavorando, penso che possa essere un Expert Advisor molto interessante.

risposta
 
Reshetov писал (а) >>

Giusto. L'architettura, con i giusti input, non è più un problema. Si potrebbe dire: gli input sono tutto, l'architettura è niente.


Qui, i signori hanno preso gli input giusti e hanno ottenuto i risultati appropriati con MTS "Combo":

Sono d'accordo con te in una certa misura. Ma l'architettura di rete gioca un ruolo importante... Ad esempio, le reti RBF sono molto meglio nel risolvere alcuni problemi di interpolazione.

 
rip писал (а) >>

Sono d'accordo con te su alcuni punti. Ma l'architettura di rete gioca un ruolo importante... Le reti RBF, per esempio, sono molto migliori nel risolvere alcuni problemi di interpolazione.

Quando si applica al trading, i problemi di interpolazione e di approssimazione sono assolutamente inutili, perché il mercato cambia continuamente e le quotazioni non sono funzioni lisce. Qui abbiamo bisogno di risolvere i problemi di estrapolazione, in modo che la strategia di trading possa superare con successo i test in avanti, piuttosto che essere limitata ad adattarsi alla storia. Non abbiamo bisogno di sapere che valore aveva il prezzo tra la data così e così e così, perché è già noto senza alcuna interpolazione.


Quindi non perdete il vostro tempo con interpolazioni e architetture. Inoltre l'interpolazione e l'approssimazione possono essere fatte usando diversi metodi ed è molto più facile e più accurata.


Scegliere input adeguati in modo che la classificazione dei pattern possa essere eseguita anche su un'architettura elementare. Dopo di che non c'è più bisogno di selezionare l'architettura corrispondente. Cercare di fare il contrario è solo una perdita di tempo.


Per costruire una casa, la cosa più importante sono le fondamenta, non le finiture. Anche se la finitura sembra più attraente del fondotinta.


E anche l'architettura di NS. Aggiunge certamente funzionalità, ma solo se gli input sono adeguati. Se inadeguato, l'intonaco non salverà la casa dal crollo, se le fondamenta crollano.

 
Reshetov писал (а) >>

La cosa più importante per costruire una casa sono le fondamenta, non le finiture. Anche se la finitura sembra più attraente del fondotinta.

Lo stesso vale per l'architettura del NS. Aggiunge certamente funzionalità, ma solo se gli input sono adeguati. Se sono inadeguati, l'intonaco non salverà la casa dal crollo se le fondamenta crollano.

OK, sono d'accordo - i segnali di ingresso e di uscita sono importanti. Questa è la dichiarazione del problema che definisce l'architettura NS. La classificazione dei modelli è uno di questi.

Diciamo, perché un segnale di entrata non può essere la determinazione del segno della prossima barra + la determinazione degli estremi della stessa barra? Cosa c'è che non va?


Anche per la classificazione, la questione importante sarà quale NS si prende e come si preparano i dati. Una rete non è uno strumento preciso, non può

Per dare il risultato ai centesimi, ma può dare i criteri ... rispetto al quale un altro strumento darà il calcolo.

 
Reshetov писал (а) >>

Per il trading, i problemi di interpolazione e di approssimazione sono assolutamente inutili, perché il mercato cambia continuamente e le quotazioni non sono funzioni lisce. Qui abbiamo bisogno di risolvere i problemi di estrapolazione, in modo che la strategia di trading superi con successo i test in avanti, piuttosto che limitarsi ad adattarsi alla storia. Non abbiamo bisogno di sapere quale era il valore del prezzo tra la data così e così e così, perché è già noto senza alcuna interpolazione.

Quindi non perdete il vostro tempo con interpolazioni e architetture. Inoltre, l'interpolazione e l'approssimazione possono essere fatte con vari altri metodi ed è molto più facile e molto più accurata.


Scegliere input adeguati in modo che la classificazione dei pattern possa essere eseguita anche su un'architettura elementare. Dopo di che non c'è bisogno di selezionare l'architettura corrispondente. Cercare di fare il contrario è solo una perdita di tempo.


Per costruire una casa, la cosa più importante sono le fondamenta, non le finiture. Anche se la finitura sembra più attraente del fondotinta.


Lo stesso vale per l'architettura del NS. Aggiunge certamente funzionalità, ma solo se le entrate sono adeguate. Se inadeguato, l'intonaco non salverà la casa dal crollo se le fondamenta crollano.

Sono assolutamente d'accordo. Come mi ha detto uno stimato compagno (Steve Ward) - "Cerca le entrate" )))))

 
TheXpert писал (а) >>

Fermo!!! Ho già una libc VC++ pronta.

Solo che ci sono 2 problemi:

1. vincolante a Boost, voglio sbarazzarmene, è meglio serializzarlo manualmente, fa glitch comunque.

2. qualcosa con un passo adattivo.


Perché fare una bicicletta? Soprattutto lì

1. MLP con possibilità di creare una struttura ad albero.

2. std::valarray + ottimizzazione aggressiva delle operazioni per un conteggio più veloce.

3. c'è un passo adattivo

4. modelli con auto-normalizzazione.

5. ampie opportunità di espansione.



Ы ?

Sì, va benissimo, grazie per il suggerimento. Ma come si dice è meglio farlo una volta per se stessi :)

Ho davvero imparato molto in questo fine settimana.

Soprattutto quando sono riuscito a ridurre il numero di cicli da 10e7 a circa 10e4.

L'ho fatto in due modi.

1. Il neurone con l'errore più grande viene corretto a velocità doppia. (provato a sostituirlo con un neurone con errore minimo - peggio)

2. Se la correzione di un neurone è inferiore a un minimo (per esempio, 10e-6), la sua correzione aumenta di 10 volte.

Mi è piaciuto molto. :)

Beh, per quanto riguarda l'uso di quello di qualcun altro, finché non capisci il bisogno di qualcosa tu stesso, non ne hai ancora bisogno.

Soprattutto perché la velocità è importante qui, e aumentare la funzionalità a spese della velocità è inaccettabile. Secondo me, è meglio scrivere una griglia per un compito specifico. Certo, non senza avere oggetti normali e una struttura ben studiata, ma...

Sul punto 2 e 3 è già interessante. C'è un modo per scoprire i metodi che usa?

-----------------------------------

Ho letto i messaggi. Peccato che siamo ancora qui. :) Tutto quello che sto facendo è scrivere QUANTO IMPORTANTE SONO GLI INGRESSI!!!.L'architettura non è niente - gli ingressi sono tutto, Cercare gli ingressi. ecc.

Ma non c'è nulla di concreto. Forse i guru vogliono condividere? А?

 
rip писал (а) >>

>> Cos'è un lib?

Il mio, l'ho già postato su RSDN. Non sono ancora arrivato a SourceForge, e ha bisogno di altro lavoro...

 
sergeev писал (а) >>

Ho fatto questo in due modi.

1. Il neurone con l'errore più grande viene corretto con doppia velocità. (provato a sostituirlo con un neurone con errore minimo - peggio)

2. Se la correzione di un neurone è inferiore a un minimo (per esempio, 10e-6), la sua correzione aumenta di 10 volte.

Mi è piaciuto molto. :)

Sì, bene, perché non lo costruisco io?

Beh, per quanto riguarda l'uso di quello di qualcun altro, finché non capisci il bisogno di qualcosa tu stesso, non ne hai ancora bisogno.

Tanto più che la velocità è importante qui, e l'aumento della funzionalità a scapito della velocità è inammissibile. Secondo me, è meglio scrivere una griglia per un compito specifico. Certo, non senza avere oggetti normali e una struttura pensata, ma...

Per quanto riguarda la velocità - ho fatto del mio meglio, penso di poter accelerare il mio codice del 3-5% al massimo. E non sarà facile :).

Per quanto riguarda i punti 2 e 3, sono già curioso. C'è un modo per scoprire quali metodi vengono utilizzati?

2. "C++ language", Bjorn Straustrup, cerca un'ottimizzazione aggressiva, il punto è ridurre le operazioni di copia.

3. Gli appunti delle lezioni di V. Golovko, provate a cercare i suoi lavori o cercate su Google "adaptive step learning", ora non posso dare un link particolare.

5. Estensione non a scapito della velocità, regola dei modelli :).

 
sergeev писал (а) >>

-----------------------------------

Ho letto i messaggi. È un peccato che sia ancora lì. :) Tutti scrivono solo COME IMPORTANTE creare ingressi!!! L'architettura non è niente - gli ingressi sono tutto, Cercare gli ingressi, ecc.

E c'è zero specificità. Forse i guru possono condividere? А?

Più specificamente, posso consigliarvi su come cercare input adeguati.


Prendiamo il perceptron più semplice (vedi Come trovare una strategia di trading redditizia ) e colleghiamo al suo input alcuni indukes e le loro combinazioni. Ciò che dà il maggior fattore di profitto su questo stesso perceptron, cioè il miglior adattamento nei test con lotto costante (senza MM), è molto probabile che superi i test in avanti su un'architettura più complessa. Perché, è facile da spiegare. Dopo tutto, il perceptron è una classificazione lineare. Il che significa che otterremo la separabilità lineare sugli ingressi per modelli. Con l'architettura aggiungeremo la classificazione per parametri non lineari e otterremo un risultato migliore.


Se fai il contrario, non ottieni nulla. Un'architettura sofisticata consuma risorse immense e cerca i segni dei modelli in una volta sola, con una separabilità non lineare che ignora la separabilità lineare. E la non linearità senza linearità non è altro che un semplice adattamento. Quello che otteniamo è una perdita di tempo.


Un altro spuntino. Se la griglia è allenabile, non dovrebbe mai essere allenata fino alla fine. Deve essere sempre sotto addestrato. Per esempio, per addestrare completamente ha bisogno di 1000 epoche, dividi per 3 e ottieni circa 300 epoche. Questo è abbastanza. Perché? Se sovralleniamo completamente la rete, essa sarà adatta solo per ambienti stazionari. E gli strumenti finanziari sono ambienti commutabili non stazionari. Cioè, può passare solo parzialmente da uno stato stazionario ad un altro in un certo tempo, mentre rimane nello stesso stato per la maggior parte del tempo. Oppure può anche tornare allo stato precedente. Quindi una riqualificazione completa della rete è un adeguamento nudo a qualche ambiente temporaneo commutabile.


E infine, per i nerd che pensano che le capacità di interpolazione NS siano necessarie per il trading, posso darvi una specifica controargomentazione. Basta prendere qualsiasi indicatore o oscillatore di ridisegno per ottenere un'interpolazione sorprendente sulla storia senza reti neurali e architetture complicate. Naturalmente i trader evitano di ridisegnare gli indici perché ciò che è adatto all'interpolazione o all'approssimazione non è adatto all'estrapolazione in condizioni di non stazionarietà.



 
Reshetov писал (а) >> Un altro spuntino. Se la rete è allenabile, non deve mai essere allenata fino alla fine. Deve essere sempre sotto addestrato. Per esempio, avete bisogno di 1000 epoche per allenarlo completamente, dividete per 3 e otterrete circa 300 epoche. Questo è abbastanza. Perché? Se sovralleniamo completamente la rete, essa sarà adatta solo per ambienti stazionari. E gli strumenti finanziari sono ambienti commutabili non stazionari. Cioè, può passare solo parzialmente da uno stato stazionario ad un altro in un certo tempo, mentre rimane nello stesso stato per la maggior parte del tempo. Oppure può anche tornare allo stato precedente.
Rafforzerei ulteriormente questo consiglio: dividere per 10. Per qualche motivo mi viene in mente un ramo sulla risonanza stocastica. L'apprendimento della maglia fino alla fine può portare la funzione obiettivo a un minimo profondo, cioè a uno stato stazionario. Gli stati stabili non sono affatto tipici dei mercati finanziari. Sono quasi stabili, cioè tali che sono pronti a trasformarsi in un disastro (tendenza) in qualsiasi momento sotto l'influenza di un "rumore" anche minimo. Ma questo è solo un pensiero filosofico...