Ricerca in pacchetti di matrici - pagina 5

 
Alexey Volchanskiy:

Grande, è il mio primo giorno di apprendimento di R, rispondete alle domande per favore, voglio confrontare le caratteristiche di R e Matlab. Ma senza chiacchiere, in modo equilibrato e calmo :).

  1. R è un linguaggio con capacità OOP?
  2. Posso usare R per fare una DLL a 32 bit e una a 64 bit da usare direttamente da MQL4/5? Se sì, quale pacchetto di dimensioni devo installare per usare queste DLL sul computer del mio utente?
  3. Posso collegare le DLL comuni per l'accesso diretto da R?
  4. Esiste un analogo di Simulink in R?
  5. Perché tutte le recensioni sottolineano che R è un programma di statistica? Sono interessato al DSP, R ha pacchetti per l'elaborazione del segnale digitale?
  6. R ha un formato compatto integrato per la memorizzazione dei dati, simile ai file .mat in Matlab?

1. Sì.

2. Perché? Avete bisogno di un singolo MT4R.dll che è il gateway per trasferire i dati a R e ottenere i risultati indietro.

3. A tutti i database esistenti. Non solo, ma sia Microsoft che Oracle hanno integrato R nei loro database.

4. R ha varie opzioni per interfacciarsi con Matlab, dal semplice scambio di file Matlab all'esecuzione di funzioni Matlab da R. Se avete esperienza in questo campo, potete implementare un'eccellente interfaccia Matlab-MTterminal con R.

5. In R sono realizzati i pacchetti per tutte le direzioni di una scienza e di una tecnica e tenendo conto delle ultime conquiste. Potete iniziare da qui.

6. Ce n'è più di uno. Il più comune è ff.

In generale sono sorpreso. Sei in mezzo al nulla. Guarda gli articoli 1 e 2 su questo sito e non capirai molto, ma ti farai un'idea di come funziona il linguaggio.

Sto finendo il secondo articolo sull'apprendimento profondo che si spera sarà sottoposto a revisione domani e conterrà esempi di esperti... Se c'è interesse, penso che scriverò diversi articoli sul livello iniziale (filtraggio, decomposizione, previsione ecc.). E, naturalmente, continuare a scavare sull'apprendimento profondo, soprattutto perché Google ha aperto la sua libreria TensorFlow per tutti. E ce ne sono altri non meno interessanti e promettenti (mxnet, pyBrain).

Se un gruppo di appassionati si riunisce, possiamo organizzare un ramo di utenti del linguaggio R.

Buona fortuna

 
Alexey Volchanskiy:
Per favore, descrivi il processo di lavoro attraverso questa DLL in modo più dettagliato. E dove prenderlo?
Ho dato alcuni link ad articoli nella mia risposta. Ci sono degli esempi.
 
Ho trovato del buon materiale in russo nell'archivio
Введение в R
  • Alexander Novopoltsev
  • rstudio-pubs-static.s3.amazonaws.com
Установить среду R Установить графическую оболочкуRStudio. Установка R Markdown (для создания автоматически генерируемых отчетов): в RStudio автоматически при первом создании файла с расширением “.Rmd”. Установка библиотек расширений: набрать в консоли install.packages(“pname”), где “pname” - название библиотеки. Полный список библиотек по...
 
Renat Fatkhullin:

Discutiamo come possiamo fare una migliore integrazione con R?

  1. Integrazione a livello di API in R
  2. supporto nativo per i pacchetti R in MQL4/MQL5, in modo che qualsiasi funzionalità dei pacchetti possa essere chiamata direttamente
  3. qualcos'altro

È un argomento interessante e può essere ben sviluppato.

Ciao.

Aggiungo a ciò che è stato detto prima.

L'opzione1 è preferita per diverse ragioni:

  • Non richiede cambiamenti drastici nel terminale e nell'editor.
  • Non richiederà molto tempo e sforzo da parte vostra e potremo usare rapidamente e facilmente il linguaggio R nei nostri sviluppi.
  • vi darà l'opportunità di studiare la domanda (necessità) per i vostri clienti. Nel segmento di lingua inglese, secondo me, questa necessità è alta.
  • Saremmo ancora in grado di usare i normali strumenti di sviluppo e debug (Rstudio, Jupiter, Knitr).

In questa variante forniamo semplicemente il trasferimento di dati al processo R e riceviamo dati da esso. Ciò che è fornito in MT4R.mqh è più che sufficiente per ora.

L'unica cosa che vorremmo vedere in aggiunta è l'ottenimento di preventivi su richiesta dal processo R bypassando il terminale. Non importa se da file/buffer locali del terminale o direttamente dal server di una società di intermediazione. Ma non è un desiderio cruciale.

La mia opinione non professionale è che lavariante 2 richiede cambiamenti cardinali non solo nel terminale, ma anche nell'editor. E ricordo con un brivido l'ultima riprogettazione cardinale del terminale. Questa variante può essere sviluppata simultaneamente alla realizzazione della prima variante e implementata quando la maggior parte dei clienti si abitua ad essa, e soprattutto quando vedono i benefici dell'uso di questo linguaggio. Naturalmente, la piena integrazione del terminale e dell'editor con il linguaggio R è l'ideale.

Sono contento che tu abbia prestato attenzione a questa direzione.

Buona fortuna

 
Renat Fatkhullin:

Discutiamo come possiamo fare una migliore integrazione con R?

  1. Integrazione a livello di API in R
  2. supporto nativo per i pacchetti R in MQL4/MQL5, in modo che qualsiasi funzionalità dei pacchetti possa essere chiamata direttamente
  3. qualcos'altro

Questo è un argomento interessante e potrebbe essere ben sviluppato.

Mi sono sempre chiesto perché MT non è incluso in R?

Se si guarda a 15 anni di MT, si tratta di uno sviluppo evolutivo, quando la funzionalità cresceva, ma la cosa principale - il cliente - rimaneva la stessa. È uno pseudotrader che usa l'AT come strumento.

1. L'inclusione della MT in R vi permetterà di unirvi alla comunità professionale dei trader, quelle organizzazioni con non solo centinaia ma migliaia di trader che utilizzano strumenti professionali sotto forma di statistiche, econometria, machine learning ....

2. Non è indifferente che l'inclusione della MT in R renderà possibile l'uso della MT nel processo di insegnamento. Una volta, insegnando sistemi di trading meccanico come strumento, ho scelto Quick e Metastock, anche se conoscevo MT, ma aveva un linguaggio che doveva essere insegnato agli studenti, e non era fornito nel programma. Incorporando la MT in R con il linguaggio algoritmico R come strumento di scrittura EA, si eliminano tutti i problemi di apprendimento - R viene appreso al di fuori della connessione ai terminali.

Per come la vedo io:

1. MT stesso deve essere una GUI in R (sono disponibili esempi, così come uno strumento per costruire tale GUI - shiny). è molto auspicabile che questa GUI sia una copia di uno dei terminali, o meglio entrambi

2. Linguaggio algoritmico R. Gli Expert Advisors sono scritti nel linguaggio R, e tutte le funzioni di trading specifiche sono implementate come un pacchetto. In questo caso, per quanto ho capito, la sintassi per chiamare le funzioni speciali rimarrà la stessa. Questa è una soluzione standard, poiché le prestazioni saranno determinate dal linguaggio e dalla qualità della scrittura di queste funzioni, ed esse, essendo scritte in C, e testate per molti anni, daranno risultati di prestazioni comparabili a quelle esistenti. Voglio prestare attenzione che la velocità di esecuzione di altri algoritmi computazionalmente intensivi in R sarà massima e non inferiore alla loro implementazione in altri linguaggi algoritmici, poiché un programma in R è di solito chiamate a pacchetti, che per algoritmi computazionalmente intensivi non sono implementati in R. A questo si deve aggiungere che la pratica abituale di realizzazione di algoritmi computazionalmente intensivi richiede il caricamento di tutti i core del computer.

3. Secondo la mia opinione non professionale, il costo del lavoro non sarà grande, dato il rapporto molto amichevole tra R e C e la cucina interna, che non possiamo vedere, può essere trasferita dal terminale esistente al nuovo terminale.

4. la parte del terminale detenuta dai broker rimarrà invariata.

Non appena i pacchetti menzionati sono inclusi nei mirror CRAN, le metacitazioni guadagnano una pubblicità ristretta in circoli ampi invece di una pubblicità ampia in circoli ristretti. Il terminale Metakvot non avrà concorrenti, poiché l'unico terminale R disponibile è IBrokers, che è legato a certi broker a pagamento.

 
СанСаныч Фоменко:

Mi sono sempre chiesto perché MT non è incluso in R?

E mi sono sempre chiesto perché hanno iniziato a sviluppare da soli un compilatore simile al C (intendo il primo MQL4) invece di prendere un compilatore C++ gratuito già pronto come GCC.

Ho lavorato per grandi aziende occidentali e nessuno ha mai pensato di sviluppare da zero il proprio compilatore C++ per varie applicazioni embedded. Hanno sempre preso gcc e fatto un port per un processore specifico.
E a giudicare dal fatto che nel 2006 è stato fatto un porting di grande successo a 4 processori DSP con architettura NEON (fino a 6 istruzioni per clock per core), questo compilatore è piuttosto flessibile per l'adattamento. Cioè il compilatore ha davvero parallelato le operazioni con una media di 2-4 operazioni per clock per core, solo i colli di bottiglia dovevano essere ottimizzati su asm.

E ora ricordiamo quella cosa schifosa che era MQL4 fino alla versione 600.

Ora sull'argomento. Come ha spiegato Renat, la ragione era un desiderio maniacale di fare un compilatore con la protezione degli sciocchi e degli intrusi. Anche se non aveva questo odore nemmeno prima della versione 600, è stato un inconveniente su un inconveniente.

Ma, se si prendono le sue parole al valore nominale, cosa significa R dal punto di vista della sicurezza? Sono abbastanza nuovo, lavoro con Matlab dal 2000, quindi per favore spiegatemi, se sapete qualcosa. Può criptare i file di output come i compilatori MQL4/5?

Inoltre, per quanto ho capito R rimane un interprete, significa che sarà ancora più lento del vecchio MQL4 e certamente più lento di ordini di grandezza rispetto all'attuale MQL5.

 
Alexey Volchanskiy:

Mi sono sempre chiesto perché hanno iniziato a sviluppare un compilatore simile al C (intendo il primo MQL4) invece di usare un compilatore C++ libero come GCC.

Ho lavorato per grandi aziende occidentali e nessuno ha mai pensato di sviluppare da zero il proprio compilatore C++ per varie applicazioni embedded. Hanno sempre preso gcc e fatto un port per un processore specifico.
E a giudicare dal fatto che nel 2006 è stato fatto un porting di grande successo a 4 processori DSP con architettura NEON (fino a 6 istruzioni per clock per core), questo compilatore è piuttosto flessibile per l'adattamento. Cioè il compilatore ha davvero parallelato le operazioni con una media di 2-4 operazioni per clock per core, solo i colli di bottiglia dovevano essere ottimizzati su asm.

E ora ricordiamo quella cosa schifosa che era MQL4 fino alla versione 600.

Ora sull'argomento. Come ha spiegato Renat, la ragione era un desiderio maniacale di fare un compilatore con la protezione degli sciocchi e degli intrusi. Anche se non aveva questo odore nemmeno prima della versione 600, è stato un inconveniente su un inconveniente.

Ma, se si prendono le sue parole al valore nominale, cosa significa R dal punto di vista della sicurezza? Sono abbastanza nuovo, lavoro con Matlab dal 2000, quindi per favore spiegatemi, se sapete qualcosa. Può criptare i file di output come i compilatori MQL4/5?

Inoltre, per quanto ho capito R rimane un interprete, ciò significa che sarà ancora più lento del vecchio MQL4 e certamente più lento di ordini di grandezza rispetto all'attuale MQL5.

Leggete i miei post sulla velocità. Brevemente. R è in gran parte una shell e le questioni che sollevi non hanno nulla a che fare con R - tutti questi problemi sono risolti all'interno delle funzioni implementate in altri linguaggi. Se stiamo parlando di crittografia, certamente non ha nulla a che fare con l'implementazione prevista del terminale - si può prendere qualsiasi cosa esistente.
 
СанСаныч Фоменко:
Leggete i miei post sulla velocità. Brevemente. R è in gran parte una shell e i problemi che sollevi non hanno nulla a che fare con R - tutti questi problemi sono risolti all'interno di funzioni implementate in altri linguaggi. Se stiamo parlando di crittografia, certamente non ha nulla a che fare con l'implementazione prevista del terminale - si può prendere qualsiasi cosa esistente.

Ho l'abitudine di leggere i post precedenti, quindi il consiglio non è per me ))

**************************

SanSanych Fomenko2016.02.12 15:18 RU
Alexey Volchanskiy:
Devo provare a tradurre alcuni dei miei programmi Matlab in R per confrontare la velocità. Se riesco a capirlo entro il fine settimana, lo farò e vi farò sapere. Matlab è piuttosto lento, faccio un sacco di cose in C# o C++ e lo inserisco come DLL per la velocità.

R stessa è tre volte ritardata. È un interprete. Nessun problema con il debugging, all'inizio ho iniziato a usare un debugger, e poi si è rivelato inutile.

Parlando di velocità R, ci sono diverse considerazioni qui.

1. si può tradurre in byte-code, ma è un impiastro

**************************

Vi rendete conto che MQL4/5 sono linguaggi compilabili? E per il tuo sogno di un terminale R simile a MT, Metakvotam dovrà fare un compilatore R?

 
Alexey Volchanskiy:

Ma, se si prendono le sue parole al valore nominale, cosa significa R dal punto di vista della sicurezza? Sono abbastanza nuovo, lavoro con Matlab dal 2000, quindi per favore spiegatemi, se sapete qualcosa. Può criptare i file di output come i compilatori MQL4/5?

Inoltre, da quanto ho capito, R rimane un interprete, il che significa che sarà ancora più lento del vecchio MQL4 e certamente più lento di ordini di grandezza dell'attuale MQL5.

1. tutto è criptato in diversi modi affidabili.

2) Questo è fondamentalmente sbagliato. Tutti i calcoli pesanti sono scritti in C più il parallelismo.

Prova e impara.

Buona fortuna

 
СанСаныч Фоменко:

Siamo realistici.

Oggi il terminale MT4 con l'EDITOR funziona senza problemi (almeno per me). Abbiamo solo bisogno di aggiungere la più piccola cosa per interagire con R.

Gli sviluppatori hanno un'idea migliore di come farlo. La cosa principale è farlo rapidamente e senza mal di testa per gli utenti.

Buona fortuna