L'apprendimento automatico nel trading: teoria, modelli, pratica e algo-trading - pagina 251

 
Top2n:

Cos'è R?

Ecco il modo russo.

R è un linguaggio algoritmico, che non è molto interessante. Il più interessante: R è un software statistico e di grafici.

Anche se come linguaggio algoritmico R non è molto interessante, tra i linguaggi algoritmici di uso generale è saldamente al 5° posto

Ecco una foto.

R è una divisione di Microsoft. Dovete scaricarlo da qui.

R stesso consiste di due parti: il linguaggio algoritmico stesso e i pacchetti.

Ecco una lista alfabetica dei pacchetti. Qui avete Fourier e wavelets e molta (anche molta) altra roba.

Ecco un raggruppamento dei pacchetti elencati nel link precedente per aree tematiche.

Quando vedete tutto questo, non spaventatevi. È un sistema estremamente comodo.

1. Il linguaggio R in sé è molto avanzato, ma il primo minimo può essere padroneggiato in un paio d'ore se si possiede almeno MKL

2. R è un interprete, quindi il debug è estremamente facile. Puoi sempre provare una o più linee. L'installazione e l'esecuzione delle prime linee di codice richiedono al massimo mezz'ora.

3. l'enorme numero di pacchetti non lo rende difficile da usare, perché basta trovare un pacchetto che ti interessa, per esempio per le wavelet, trovare una funzione in esso ed eseguirla. Questo è di solito una o più righe di codice.

A livello di "prova", le cose sono estremamente semplici.

Buona fortuna.

Tufte in R (примеры для всех вариантов графических подсистем R)
  • 2016.12.03
  • p2004r
  • r-statistics.livejournal.com
Классическая книга о отображении количественных данных в графическом виде получила сборник открытых примеров реализации рецептов отображения информации на языке R. Книга (надо покупать) https://www.edwardtufte.com/tufte/books_vdqi...
 
ivanivan_11:
ma nessuno ha provato ad applicare le conoscenze in questo campo per prevedere le scommesse sportive - tennis, calcio, ecc.? o per scrivere bot per il poker/pref?

C'è un grande campione?

o un qualsiasi campione...?

stessa cosa...?

 
mytarmailS:

C'è un grande campione?

o un qualsiasi campione...?

la stessa cosa...

Se non ce l'hai, non significa che non ce l'hai. c'è una risorsa online di previsioni di tennis a rete neurale. dicono di aver analizzato oltre 800k risultati di partite.

Infatti, anche ibm e i software non si tirano indietro nel presentare tali progetti.

Per il poker, penso, si possono anche ottenere risultati di diversi tornei.

stessa cosa...

 
ivanivan_11:

Se non ce l'hai, non significa che non ce l'hai affatto. c'è una risorsa online per le previsioni di tennis basate su reti neurali. dicono di aver analizzato oltre 800k risultati di partite.

Per il poker, penso che si possano ottenere anche i risultati di diversi tornei.

stessa cosa...

))) bene insegnare, buona fortuna ))))
 
ivanivan_11:

Se non ce l'hai, non significa che non ce l'hai affatto. c'è una risorsa online per le previsioni di tennis basate su reti neurali. dicono di aver analizzato oltre 800k risultati di partite.

Per il poker, penso che si possano ottenere anche i risultati di diversi tornei.

stessa cosa...

Per me la prevedibilità dipenderà dalla composizione dei partecipanti. Se l'intera formazione cambia, allora tutte le statistiche guadagnate possono essere buttate via.
 
ivanivan_11:
Ho molta esperienza in questo campo, ma hai mai provato ad applicarlo per prevedere le scommesse sportive - tennis, calcio, ecc. o per scrivere bot per il poker/pref?

Nel poker, penso che il machine learning sarebbe troppo complicato e incomprensibile, è un gioco a informazione chiusa.

Ma la semplice statistica dovrebbe essere sufficiente per vincere.

Conoscendo le tue carte e quelle dei tuoi avversari, puoi passare in rassegna le opzioni delle carte dei tuoi avversari e stimare le tue possibilità di vittoria. Inoltre, sulla base del denaro investito (proprio e degli avversari) - per valutare se la prossima mossa pagherà. Allo stesso modo si può aggiungere una simulazione di eventi per alcune mosse in avanti per valutare le migliaia di diverse situazioni possibili, e calcolare il profitto medio. Fattori di correzione per il bluff e la sfortuna. Inoltre, profilare gli avversari per conoscere la loro tendenza a bluffare. Questo dovrebbe bastare.

 
Prima di tutto avete bisogno di ciò che non c'è, avete bisogno di un campione
 
fxsaber:
Per Pitone

Complicato e antiquato.

Attraverso "PythonInR" qualsiasi codice .py viene eseguito senza problemi.

A proposito, per il debug in RStudio NotebookR esegue il codice Python come nativo.

Buona fortuna

 
Vladimir Perervenko:

Complicato e antiquato.

Attraverso "PythonInR" qualsiasi codice .py viene eseguito senza problemi.

A proposito, per il debug in RStudio NotebookR esegue il codice Python come nativo.

Buona fortuna

Python è fantastico, ma hai bisogno di MKL4.

C'è un pacchettoRserve. Ecco la mia traduzione dell'annotazione

Rserve è un server TCP/IP che permette ad altri programmi di usare strumenti R da diversi linguaggi senza dover inizializzare R o collegarsi a una libreria R. Ogni connessione ha uno spazio di lavoro e una directory di lavoro separati. Sono disponibili implementazioni client per linguaggi popolari come C/C++ e Java. Rserve supporta la connessione remota, l'autenticazione e il trasferimento di file.

Lo scopo principale di Rserve è quello di fornire un'interfaccia che può essere utilizzata dalle applicazioni per fare calcoli in R. La nostra esperienza con altre modalità di comunicazione ha dimostrato che ci sono tre cose principali da considerare quando si sviluppa un nuovo sistema: separazione, flessibilità e velocità.

È importante separare il sistema R dall'applicazione stessa. Una ragione è quella di evitare qualsiasi dipendenza dal linguaggio di programmazione dell'applicazione, dal momento che la propria interfaccia diretta a R (Chambers, 1998) è applicabile solo con C (R Working Group Development, 2003). Un altro aspetto deriva dal fatto che una stretta integrazione con R è più soggetta a errori, perché l'applicazione deve tenere conto degli interni di R. D'altra parte, gli sviluppatori di applicazioni vogliono che l'interfaccia sia molto flessibile e che usi la maggior parte delle caratteristiche di R. Infine, la velocità è un elemento chiave perché l'obiettivo è quello di fornire all'utente i risultati desiderati rapidamente senza dover iniziare una sessione R da zero.

Il concetto di client-server ci permette di soddisfare tutti e tre i requisiti chiave. Il calcolo è fatto dal nucleo di Rserve, che è il server, rispondendo alle richieste dei clienti come le applicazioni. La comunicazione tra Rserve e il client avviene tramite socket di rete, di solito TCP/IP, ma sono possibili anche altri cambiamenti. Questo permette l'uso di un Rserve centrale da computer remoti, l'uso di più Rserve da un client remoto per distribuire il calcolo, ma anche la comunicazione locale su una singola macchina.

Un singolo Rserve può servire più clienti allo stesso tempo. Ogni connessione Rserve ha il suo spazio dati e la sua directory di lavoro. Questo significa che l'oggetto creato da una singola connessione non influenza mai altre connessioni. Inoltre, ogni connessione può produrre file locali, come le immagini create dal dispositivo bitmap Rserve, senza interferire con altre connessioni. Ogni applicazione può aprire più connessioni per gestire compiti paralleli.

Il trasferimento dei dati tra l'applicazione e Rserve avviene in forma binaria per ottenere velocità e minimizzare la somma dei dati trasferiti. Gli oggetti intermedi sono memorizzati in Rserve, quindi solo gli elementi di interesse devono essere trasferiti al client

Oltre a comunicare con il kernel R, Rserve ha anche protocolli integrati di autenticazione e trasferimento di file che rendono Rserve adatto all'uso su macchine individuali. L'autenticazione dell'utente è fornita per aggiungere un livello di sicurezza per l'uso remoto. Il trasferimento di file permette di copiare i file necessari al calcolo o prodotti R dal client al server e viceversa.

Rserve attualmente supporta due gruppi principali di comandi per comunicare con R: creare oggetti in R e valutare il codice R. La maggior parte degli oggetti di base come i numeri, le stringhe o i vettori possono essere creati attraverso la creazione diretta dell'addizione. Il contenuto degli oggetti è inviato in forma binaria dal client al server.

Questo fornisce un modo efficiente per trasportare i dati necessari per la valutazione. Tutti gli oggetti sono sempre trasferiti per valore per separare gli spazi dati del client e del server. In questo modo sia il client che il server sono liberi di sbarazzarsi dei dati in qualsiasi momento, evitando i fallimenti catastrofici che sono inerenti ad altri metodi di comunicazione in cui i sistemi condividono fisicamente gli stessi dati.

Il secondo grande gruppo di comandi è la valutazione del codice R. Invece di creare un oggetto, tale codice viene inviato in chiaro a Rserve e gestito come se il codice fosse stato inserito nella console di R. L'oggetto di valutazione risultante può essere passato indietro in forma binaria al cliente, se necessario. La maggior parte dei tipi di R sono supportati, inclusi numeri scalari, stringhe, vettori, liste (quindi classi, data frame, ecc.), oggetti lessicali, ecc. Questo permette a Rserve di restituire tutti i modelli al cliente. Il cliente può decidere di non ottenere oggetti utili impostando oggetti intermedi in R che non sono direttamente legati al cliente.

Rserve fornisce due servizi di base per la gestione degli errori. I tre possibili risultati della valutazione sono una valutazione di successo, un errore di esecuzione per errore del parser e un errore di codice. Lo stato ritorna sempre all'applicazione client per permettere l'azione appropriata. Poiché Rserve è solo un livello tra l'applicazione e R, è ancora possibile influenzare la gestione di un errore di esecuzione in R stesso, ad esempio con un'opzione errata o un comando di tentativo.

Un uso tipico degli strumenti Rserve è quello di caricare tutti i dati necessari in R, eseguire i calcoli in base all'input dell'utente, come la costruzione del modello, e passare i risultati all'applicazione per la visualizzazione. Tutti i dati e gli oggetti sono persistenti fino alla chiusura della connessione. Questo permette all'applicazione di aprire presto la connessione, per esempio quando l'utente ha specificato per la prima volta un set di dati, trasferire tutti i dati necessari al server e rispondere all'input dell'utente calcolando prontamente i modelli o le stime desiderate. Poiché i risultati non sono in forma di testo, non c'è un noioso parsing dei risultati.

L'interfaccia di Rserve è modulare e documentata, dando accesso a Rserve da qualsiasi linguaggio applicativo o di programmazione che supporti i socket, compresi i linguaggi di scripting e di programmazione attuali. Abbiamo implementato il client per Rserve in puro Java, che comunica attraverso un'interfaccia alla maggior parte delle strutture di Rserve e mappa tutti gli oggetti disponibili per Rserve nei propri oggetti o classi Java. L'uso del client Java è illustrato nella sezione come esempio.


C'è un pacchettoJava che dà accesso a questo server.

Se riscriviamo questo pacchetto daJava a MKL4...., otteniamo un vero accesso a R da EA