"New Neural" è un progetto di motore di rete neurale Open Source per la piattaforma MetaTrader 5. - pagina 23

 
Urain:
Dai, vediamo cosa sai fare.

Anche fortemente interessato a Sparse Nets.

E i modelli legati alla logica fuzzy -- urrà!!! Mi sono ricordato il nome di uno dei modelli, ecco un link alla descrizione. Il modello Tsukamoto.

____

Questi saranno probabilmente un po' una bomba se implementati con successo.

 
Non sono sicuro di come SVN = Support Vector Machine sia fondamentalmente diverso da MLP?
 

TheXpert:

...


Il prodotto deve essere al livello dei neuro-pacchetti tipo NSDT per questo, niasilim.

...

Peccato)) Questo è il programma che attualmente è il più adatto agli utenti di qualsiasi livello. Primo nella classifica di 9 anni della rivista Stocks & Commodities dei migliori software analitici secondo i sondaggi di opinione dei trader. Ma è troppo figo per l'OpenSource. ))

Renat 2011.10.18 00:45 #

Ho un'idea per sviluppare un motore di rete neurale di diversi tipi, che qualsiasi trader può utilizzare con il minimo sforzo.

Ilcodice sarà fornito nel codice sorgente di MQL5 e distribuito come parte del terminale.

Penso che se è un codice, qualsiasi commerciante non sarebbe più in grado di usarlo. Qualsiasi trader-programmatore, sì. Per qualsiasi trader sarebbe adatto per includere il neuronet in un sistema di trading attraverso MQL5 Wizard, ma suppongo che il Wizard dovrebbe essere significativamente modificato.

Sto leggendo questo topic e almeno ora comincio a capire quanto sia complicato tutto)).

Мастер MQL5: Создание эксперта без программирования
Мастер MQL5: Создание эксперта без программирования
  • 2010.12.15
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы хотите быстро проверить торговую идею, не тратя времени на программирование? Выберите в "Мастере MQL5" нужный тип торговых сигналов, подключите модули сопровождения позиций и управления капиталом - на этом вся работа закончена. Создайте свои реализации модулей или закажите их через сервис "Работа" - и комбинируйте новые модули с уже существующими.
 

Propongo, però, chiedere una sezione separata del forum, tutti in un unico argomento è l'inferno. Come deposito di pensieri ammucchiati va bene, ma quando inizia la discussione...

Che sia pubblico, chi vuole partecipare. Fare dei thread su singoli aspetti del sistema, e gli amministratori dei thread prenderebbero le decisioni finali nel primo post man mano che vengono discussi. Se necessario, organizzare una votazione pubblica in thread individuali, ecc.

Sarebbe bello, tra l'altro, se ci fosse una funzionalità di un post appuntato (indicato dall'admin), su tutte le pagine del ramo, in modo che davanti ai vostri occhi fosse sempre una sorta di riassunto della discussione.

 

Per coloro che sono interessati, cercherò di spiegare in diversi brevi post-lezioni perché considero le reti neurali basate su metodi biologici di trasformazione dell'informazione e utilizzando il principio di sparsità come molto promettenti.

Lezione 1: Fondamenti biologici della sparsità nelle reti neurali.

Il cervello del bambino in via di sviluppo attraversa una fase di costruzione di un gran numero di sinapsi (connessioni tra neuroni) seguita da una fase di rimozione di quasi la metà delle connessioni entro l'adolescenza. Molti scienziati ipotizzano che questa rimozione di sinapsi sia necessaria per ridurre l'energia utilizzata dal cervello a causa del metabolismo più lento e dei cambiamenti ormonali. Il gran numero di sinapsi permette al cervello del bambino di ricordare molte informazioni, il che spiega perché le lingue straniere sono più facili da imparare prima dell'adolescenza. Rimuovere la metà delle connessioni entro l'adolescenza aiuta il cervello a riassumere meglio le informazioni. Il meccanismo di rimozione della metà delle connessioni nel cervello adolescente in via di sviluppo è ancora sconosciuto. Molti credono che i cambiamenti metabolici riducano la quantità di biogeni (nutrienti) necessari per mantenere le sinapsi. La quantità limitata di queste sostanze provoca una competizione tra le connessioni di ingresso del neurone per la sua esistenza. Questa competizione è modellata da metodi di apprendimento competitivo, in cui la somma dei valori assoluti dei pesi di ingresso del neurone o la somma dei loro quadrati è mantenuta costante. Questi metodi sono utilizzati nelle reti di autoapprendimento. Nelle reti di apprendimento assistito dall'insegnante (ad esempio le reti a propagazione diretta), la competizione tra i pesi di ingresso dei neuroni di solito non viene presa in considerazione. In tali reti, le connessioni tra i neuroni sono rimosse dopo che i loro pesi sono stati addestrati. I pesi rimossi sono o i pesi più piccoli, o i pesi che hanno poco effetto sull'errore medio di apprendimento.

Riferimenti:

https://en.wikipedia.org/wiki/Synaptic_pruning

Huttenlocher, P. R. (1979).
Densità sinaptica nella corteccia frontale umana - cambiamenti di sviluppo ed effetti dell'età.
Brain Res, 163, 195--205.

Braitenberg, V., Schuz, A. (1998).
Corteccia: statistica e geometria della connettività neuronale.
Berlino: Springer.

LeCun, Y., Denker, J. S., Solla, S. A., Howard, R. E., Jackel, L. D. (1990).
Danno cerebrale ottimale.
In Touretzky, D. S. (Eds), Advances in Neural Information Processing Systems 2, NIPS*89, Morgan Kaufmann, Denver, CO, 598--605.

Hassibi, B., Stork, D. G., Wolff, G. J. (1993).
Chirurgo del cervello ottimale e potatura generale della rete.
Proc. IEEE Int. Conf. Neurale. Reti, 1, 293--299.

Miller, K D., & MacKay, D. J. C. (1994).
Il ruolo dei vincoli nell'apprendimento hebbiano.
Neural Computat, 6, 100--126.

Miller, K. D. (1996).
Economia sinaptica: competizione e cooperazione nella plasticità sinaptica.
Neuron, 17, 371--374.

Synaptic pruning - Wikipedia, the free encyclopedia
Synaptic pruning - Wikipedia, the free encyclopedia
  • en.wikipedia.org
In neuroscience, synaptic pruning, neuronal pruning or axon pruning refer to neurological regulatory processes, which facilitate changes in neural structure by reducing the overall number of neurons and synapses, leaving more efficient synaptic configurations. Pruning is a process that is a general feature of mammalian neurological development...
 
Mischek:
Più imho. È improbabile trovare all'esterno un consulente specializzato che soddisfi le tue esigenze. Se avete un budget, non importa quale, è più efficiente dividerlo tra voi alla fine del progetto, equamente o non equamente, sulla base di una valutazione soggettiva dei meta-quote.

Io sosterrò uno specialista esterno. In primo luogo, mi sembra che ne avrete bisogno di almeno due (idealmente anche di più), e in secondo luogo, non è detto che almeno un paio di utenti del forum qui siano più qualificati.

sergeev:

Si può fare ancora più semplice.

In questa situazione si passa dallo speciale al generale, con un tentativo di astrazione verso modelli universali.

1. Disegnare (su carta + algoritmo verbale del matmodello) le reti che potremmo realizzare (topologie e metodi di insegnamento per esse).
2. Trova punti di aggancio comuni nei modelli disegnati per creare classi astratte di motori.


Questo è probabilmente l'approccio più appropriato.
 

tol64:

Penso che se fosse un codice, qualsiasi commerciante non sarebbe più in grado di usarlo. Qualsiasi trader-programmatore, sì. Per qualsiasi trader l'opzione di includere il neuronet nel sistema di trading attraverso MQL5 Wizard sarebbe adatta, ma allora suppongo che il Wizard dovrebbe essere significativamente modificato.

Sto leggendo questo argomento e almeno ora comincio a capire quanto sia complicato tutto)).

1. A mio parere, deve essere, in primo luogo, una libreria abbastanza potente e versatile per un trader-programmatore (o solo programmatore MQL) per creare una rete neurale di complessità e funzionalità necessarie. In questa fase penso che dovrebbe essere creata una libreria di base composta da un piccolo numero di oggetti (qui è importante la massima astrazione e universalità).

2. Nel secondo passo è necessario scrivere la funzionalità della libreria in modo più dettagliato e approfondito (per determinare i tipi di reti, i metodi di formazione, le varianti di topologia, ecc.)

E al terzo passo penso che si debba decidere cosa esattamente sarà alimentato nell'input e come sarà addestrato.

4. Infine, la cosa più interessante, secondo me. Insieme a MQ sarebbe bello sviluppare una specie di "Neural Network Wizard" che permette di creare un modello di rete neurale, specificando coerentemente tutte le sue caratteristiche.

Da un punto di vista profano dovrebbe essere qualcosa del genere. Avviate il wizard e specificate in esso: una rete di tale e tale tipo, tanti strati, neuroni di tale e tale, processate i parametri di tale e tale tacchino (o semplicemente analizzate un certo flusso di informazioni), nell'uscita otteniamo un certo segnale.

Il risultato della procedura guidata dovrebbe (almeno mi sembra una buona idea) essere un modello che può essere utilizzato come modulo separato o può essere utilizzato per lo sviluppo di un modello EA in un VISARD esistente.

5. Se la domanda riguarda l'uso di una rete neurale per la creazione di un modello dell'esperto tramite Wizard, sarà necessario fornire il modulo in cui sarà possibile aggiungere una rete neurale (può essere più di una).

In questo caso, i modelli delle reti neurali dovranno essere in un certo posto (come i segnali, ecc.) e soddisfare certi requisiti.

PS

Sarebbe bene definire "l'importanza" dell'intera rete neurale, di un singolo strato (o parte di uno strato), e di un singolo neurone in un tale approccio.

 
gpwr:
È quello che stavo cercando di farti fare :) . Continuate a fare un buon lavoro.
 
Vigore:

Suggerisco, però, di richiedere una sezione separata del forum, è una rottura di palle avere tutto in un unico thread. Come deposito di pensieri ammucchiati va bene, ma quando inizia la discussione...

C'è un login per l'archiviazione.
 

Tutte queste reti complicate sono risolvibili - la cosa più importante è orientata al trading))) E questo significa integrazione in EAs funzionanti. Significa che per la maggior parte degli EA tipici non è necessario fare un mucchio di cose ausiliarie come la pre-elaborazione dei dati di input o la preparazione di un campione di formazione, e dovrebbe essere sistematizzato e automatizzato. Cioè, se qualcuno volesse inserire una maschera, non avrebbe bisogno di generare prima un certo numero di valori della maschera, poi generare un certo numero di valori predetti (per esempio, l'aumento del prezzo per alcune barre), normalizzare il tutto, ecc. e poi allenare la rete.

Da un punto di vista puramente tecnico può sembrare così: per i neuroni di ingresso abbiamo una funzione virtuale EnterData che restituisce doppio. Se volete inserire degli indicatori o qualsiasi altra cosa, basta scrivere tutto in questa funzione.

Lo stesso per il neurone di uscita è la funzione ExitData che calcola ciò che viene predetto.

Per esempio, voglio prevedere le variazioni del prezzo per 5 barre: ho ridefinito la funzione

doppio ExitData(){

return(Open[-5]-Open[0]) ;

}

O voglio prevedere la volatilità

doppio ExitData(){

return(High[iHighest(...,5,-5)]-Low[iLowest(....,5,-5)]) ;

}

ecc.

Inoltre, per impostare il periodo di apprendimento e l'out-of-sample come proprietà dell'oggetto rete. E dopo l'addestramento, potremmo ottenere le caratteristiche della curva di equità sul fuori campione (fattore di profitto per esempio)

cioè

Net.StartTime=2005

Net.FinishTime=2008 anno

Net.StartOutOfSamples=2009 anno

Net.FinishOutOfSamples=2011 anno

Net.Teach;

Net.OutOfSamples;

se (Net.PFOutOfSamples>3) Print("Good");

Oppure, se la rete non fa trading da sola ma prevede la volatilità, per esempio, l'utente ridefinisce la funzione che valuta la qualità della rete per OutOutOfSamples da solo.

Poi il tester e gli strumenti di ottimizzazione possono essere usati per cercare la migliore topologia o selezionare il tipo di rete e molte altre cose