Biblioteca di Roffild - pagina 3

 
Roffild:

Perché dovrei inventare qualcosa di complicato?

L'esempio dimostra non l'indicatore, ma la possibilità di emettere le informazioni da Expert Advisor sotto forma di un indicatore senza la necessità di creare codice esterno.

Se ToIndicator_Example.mq5 non ha funzionato, allora il codice nella cartella Indicators\Roffild\ non deve essere stato costruito quando il terminale è stato lanciato. Il registro sarebbe utile.

Certo, siamo tutti abituati a creare tutto da zero, quindi nessuno vuole imparare nuove librerie, ma nel mondo di oggi, usare codice di terze parti è una pratica comune...

Gli sviluppatori della piattaforma stanno sistematicamente migliorando il sistema di classificazione dei moduli software per funzionalità, e tu e le tue librerie state andando nella direzione opposta e volete spersonalizzare tutto di nuovo...))
 
Ivan Negreshniy:
Gli sviluppatori della piattaforma migliorano sistematicamente il sistema di classificazione dei moduli software per funzionalità, e tu e le tue librerie andate nella direzione opposta e volete spersonalizzare di nuovo tutto...))

Per dividere in moduli, avete bisogno di un sistema di gestione delle dipendenze. Ora non c'è un sistema simile per MQL ed è improbabile che ci sia.

Nello sviluppo normale non c'è una chiara divisione in Expert Advisor, Librerie, Indicatori e Script - tutto è interconnesso. In MQ hanno deciso di separarli. Questa divisione è adatta a piccoli progetti che inondano CodeBase.

La ragione principale dell'assenza di questa libreria in CodeBase è l'incapacità di pubblicare tutti i file in un archivio o attraverso il sistema di controllo delle versioni. Ora devi aggiungere ogni file individualmente al database - ma è una sciocchezza... Quindi non ci possono essere progetti medi e grandi in CodeBase a causa di queste limitazioni.

 
Ciao, puoi codificare l'uso della libreria per il log(Log4MQL.mqh eLog4MQL_tofile.mqh+ modulo perLogMX) come scrivere nel log.
 

Biblioteca Roffild

Sono conosciuto nella comunità di programmazione MQL5 come Roffild e questa è la mia libreria open-source per MQL5. È un tentativo di implementare caratteristiche in MQL5 che sono diventate uno standard per i linguaggi di programmazione popolari molto tempo fa. Un'idea è implementata in ogni file. La libreria viene rifornita man mano che sono necessarie nuove funzioni.

Poche persone hanno provato a pubblicare il progetto su Github. Non c'è uno standard unificato. MetaQuotes non tiene conto dell'uso del sistema di controllo delle versioni quando si crea un progetto. Per qualche ragione, i programmatori di MetaQuotes pensano che un progetto debba essere di un solo tipo. Per i piccoli progetti, che sono pubblicati in CodeBase su MQL5.com, questa divisione è ragionevole. Per i progetti medi e grandi, è impossibile selezionare un solo tipo di progetto.

Ho sperimentato diverse strutture di costruzione di progetti. Ho dovuto spostare i file fuori dalla struttura standard delle cartelle di MetaQuotes per poter usare Git. Creare un collegamento a una cartella intermedia (in questa libreria la cartella "Roffild") è l'opzione migliore.

MetaEditor può salvare il codice in UTF-16, ma è supportata anche la codifica UTF-8 con BOM. Per convertire il file del codice sorgente è necessario utilizzare un editor di terze parti (consiglio Notepad++).

La biblioteca può essere suddivisa in interessi:

  • compiti comuni (ArrayList, Log4MQL, ToIndicator, ecc.);
  • esperimenti con AlgLib nell'apprendimento automatico;
  • usando Apache Spark con Amazon Web Services (EC2 e EMR), quando le caratteristiche di AlgLib non sono sufficienti.

Documentazione

MQL5
Java

Riferimenti

Roffild.com
Github
MQL5.com: argomento di discussione in inglese
MQL5.com: argomento di discussione in russo


Installazione di

(Opzionale)

mklink /j link dove - non richiede diritti di amministratore.

Ha senso mettere la cartella %APPDATA%\MetaQuotes nella root di una partizione o in una partizione più grande. Windows ha un limite di 255 caratteri per il percorso dei file. Ho un percorso completo della cartella MQL5 che contiene 88 caratteri. Durante i test, il terminale copia la storia per il numero di agenti locali, il che aumenta la dimensione di questa cartella di diversi Gbyte.

  1. Sposta la cartella %APPDATA%\MetaQuotes in D:\MQLProjects
  2. mklink /j %APPDATA%\MetaQuotes D:\MQLProjects
  3. mklink /j D:\MQLProjects\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\ D:\MQLProjects\MQL5

(Importante)

Esegui create_links.bat dalla cartella MQL5\MyProjects\RoffildLibrary dopo aver clonato il progetto.

Stile del codice

Google Java Style

Tab = 3 spazi

Limite della colonna = 110

Licenza

Licenza Apache 2.0

 
Библиотека Roffild’a
Библиотека Roffild’a
  • roffild.com
Я известен сообществу программистов на MQL5 под ником Roffild и это моя библиотека с открытым кодом для MQL5. Попытка реализовать возможности на MQL5, которые уже давно стали стандартом для популярных языков программирования. В каждом файле реализована одна идея. Библиотека пополняется по мере необходимости в новых возможностях. Мало кто...
 
C'è"Write data to MySQL format file", perché non si legge da questo formato?
 
Aleksey Vyazmikin:
C'è"Write data to MySQL file format", ma perché nessuna lettura da questo formato?
Perché è facile scrivere in un formato di testo, ma per leggere da questo formato bisogna usare un parser. https://en.wikipedia.org/wiki/Parsing
Parsing - Wikipedia
  • en.wikipedia.org
The term has slightly different meanings in different branches of linguistics and computer science. Traditional sentence parsing is often performed as a method of understanding the exact meaning of a sentence or word, sometimes with the aid of devices such as sentence diagrams. It usually emphasizes the importance of grammatical divisions such...
 
Roffild:
Perché è facile scrivere in un formato di testo, ma bisogna usare un parser per leggere da questo formato. https://en.wikipedia.org/wiki/Parsing

Per esempio, creare 1000 colonne con MQL non è affatto facile...

 
Aleksey Vyazmikin:

Chi può e chi non può, per esempio creare 1000 colonne con MQL non è affatto facile...

Ehm... MQL non ha alcuna colonna. E MQL = SQL sono linguaggi completamente diversi.

È più facile per chi conosce l'SQL setacciare i migliori passaggi dopo l'ottimizzazione quando il loro numero supera i 5000 passaggi. Implementato in TesterSql.mqh